Expressions
Expressions let you reference dynamic values — data from previous nodes, workflow variables, and secrets — inside node property fields.
The {{ }} syntax
Wrap any expression in double curly braces:
{{ expression }}
Expressions are evaluated using a JavaScript interpreter (Jint). You can use standard JavaScript inside the braces.
Templates vs. pure expressions
Template — one or more expressions embedded in a string:
Hello {{ user.name }}, you have {{ count }} notifications.
The surrounding text is kept; only the {{ }} portions are replaced with their evaluated values.
Pure expression — the entire field value is a single expression:
{{ user.email }}
When the whole value is a single expression, the result is returned as its native type (object, number, boolean). This matters when passing a number or object to a node that expects one.
Where expressions are supported
Most string properties support expressions. Fields that support expressions show a {{ }} indicator. Fields that do not (such as dropdowns and toggles) accept only static values.
Engine constraints
| Limit | Value |
|---|---|
| Memory | 4 MB |
| Execution timeout | 2 seconds |
| Recursion depth | 64 levels |
If an expression exceeds these limits it fails, and the node is marked as failed.
Next steps
- Syntax reference — operators, built-in functions, and examples
- Context variables — what variables are available in expressions