Conditional logic
The Condition node — branch a workflow on any expression, with True / False paths and stop-on-false safety.
The Condition node is the way to branch a workflow. It evaluates an expression and splits to a True or False branch.
Anatomy
Visually, a Condition node is a pill-shaped node with two outgoing handles drawn as SVG branch lines:
- True branch on the left (or top)
- False branch on the right (or bottom)
Each branch has an editable label so you can describe what each path means.
Inspector fields
The Condition inspector exposes the Condition expression itself — write a formula referencing upstream node outputs, variables, and formula functions via the ƒ binding modal.
Additional configuration lives on the node's data object and ships with
sensible defaults (set in AddNodeButton.jsx):
evalMode—'expression'by default (formula-style evaluation)trueLabel/falseLabel— branch labels rendered on the SVG branchesstopOnFalse— terminate the run when the False branch is taken
Most users only need to set the expression; the other fields are tunable on the data object but aren't all exposed as inspector controls yet.
Example expressions
{{Start.output.user.tier}} == "pro"
{{search_user_tables.result.count}} > 0
contains({{Prompt.output.text}}, "refund")
isAfter({{get_current_time.output}}, "2025-12-31")The formula engine (formulaEngine.js) ships with seven function
categories: comparison, text, math, date, array, logic, and type. Hover
each function in the modal for inline help.
Cascading conditions
Branches can themselves contain Condition nodes. The result is a decision tree — a common shape for routing automations (e.g. "is this email a support ticket?", then "is the customer on the Pro plan?", then "is the issue P0?").
Visualizing the path at runtime
When you run the automation, the Logs panel highlights which branch was taken. The skipped branch's nodes are marked as not-run rather than errored.