Condition Node
The Condition Node checks a property in the dictionary and branches the flow based on the result.
What it serves
It accepts a one-line expression in its Condition field. When the flow reaches the node, the expression is evaluated:
- If the result is truthy → the flow continues out the TRUE edge.
- If the result is falsy → the flow continues out the FALSE edge.
That's the whole node. One expression, two outputs.
Visual
The node renders as a yellow diamond labelled Condition with three dots:
- Top — input
- Right — TRUE output
- Left — FALSE output
When no condition is configured, the node displays "No condition specified".
Settings
Click the node to open Condition Node Settings. Two fields plus Apply:
| Field | Purpose |
|---|---|
| Condition | The one-line expression to evaluate. |
| Node Description | Free-text — for other developers. Doesn't affect execution. |
| Apply | Saves the settings. |
Examples
!!${dictionary.test}
${dictionary.test} === 123
Condition expressions must reference dictionary or session values through ${...} placeholders, which are substituted to JSON literals before the expression is parsed — so you compare resolved values. The evaluator is a strict allow-list (only binary/unary/ternary/short-circuit operators); raw member access like dictionary.test is not substituted and throws (surfaced as an engine error, E6001). Always brace your references: !!${dictionary.test}, ${dictionary.test} === 123, and so on.
When to reach for a Script Node instead
If a one-liner isn't expressive enough — multiple steps, string manipulation, calls to system APIs — use a Script Node and route via its next_1 / error edges.
Routing
┌──── TRUE ──► <next node when truthy>
│
[Condition Node] ───┤
│
└──── FALSE ──► <next node when falsy>
Evaluated once when the flow reaches the node. One edge is followed; the other isn't visited.