Expressions

Template syntax for wiring data between nodes

Expressions

Expressions let you pass data between nodes using template syntax. They are resolved at runtime before each node executes.

Basic Syntax

Reference any node's result with double curly braces:

text
{{nodeId.result.fieldName}}
{{trigger.result.amount}}

Special Variables

Access workflow-scoped and organization-scoped persistent storage:

{{$storage.key}}

Access template parameters (when workflow is used as a template):

text
{{$props.key}}

Inside a for-each node's loop body:

{{$item}}

For nested for-each nodes, access parent loop variables:

{{$parent_item}}

Type Preservation

Info

Expressions preserve types. If a referenced value is a number, the resolved value is a number, not a string. This matters for condition evaluation in if nodes and numeric comparisons.

Condition DSL

The if action uses a condition DSL that supports MongoDB-style operators:

json
{ "condition": { "$gt": ["{{action-1.result.price}}", 100] } }

Supported operators:

OperatorDescription
$eqEqual
$neNot equal
$gtGreater than
$gteGreater than or equal
$ltLess than
$lteLess than or equal
$inValue in array
$ninValue not in array
$andLogical AND (array of conditions)
$orLogical OR (array of conditions)

Filter DSL

The filter action uses the same DSL to filter arrays:

json
{ "array": "{{action-1.result.items}}", "filter": { "$gt": ["{{@price}}", 100] } }

Tip
Inside filter expressions, {{@field}} references fields on each array item.

Ask a question... ⌘I