Skip to Content
BuildAction StepsConditions

Conditions Step

Route a run down one or more branches by testing your data with typed rules or plain-language AI conditions.

At a glanceVerified in app · Oct 29, 2026
Use it to
Branch an automation into routes (every matching route runs, or Else)
Find it
Tools → Flow → Conditions
Cost
Free for typed rules · AI Condition rules use Glow AI tokens
Limits
Multiple independent routes plus an Else catch-all
Output
Routes the run to every connected branch whose rules pass
Instead
Switch (first matching branch only) or Filter (to split a list)
The Conditions step configured on the canvas, routing an incoming lead into four branches with the App drawer open showing route rules and target steps.
The Conditions step on the canvas: configure independent routing rules, set destination steps with Then go to, and catch unmatched data in the Else route.

Each condition is evaluated on its own, and every matching route runs (Switch takes only the first match by default). ELSE runs only when no condition matches. See Choosing a Flow Step.

A record arrives:
£24,000 · United Kingdom
  • runsDeal size is over 10,000Notify sales
  • runsCountry is United KingdomAdd to CRM
  • skippedELSE — none matchedLog for review

Both conditions are met, so both routes run. This is the part a first-match step cannot do.

Empty conditions pass everything through. A Step with no conditions set, or a route with blank rules, matches every run. Delete unused routes instead of leaving them blank.

Deterministic & freeTyped Rule
  • Pick a data type, operator, and comparison value.
  • Same input always yields the same verdict at 0 AI tokens.
  • Best for exact checks: status equals active, amount over 10,000.
Model-evaluated judgmentAI Condition (Default)
  • Describe a true/false test in plain words (e.g. 'asks for a refund').
  • Uses one model call per evaluation and can vary between runs.
  • Available in Conditions and Filter (Switch is typed-only).

Setting it up

Add a condition

Click Add new condition to create a route with its own Then go to target.

Pick the data to test

Click the left field to pick from System Variables, Team Variables and Secrets, or earlier Steps. Selecting from the picker inserts {{ 3.ret.email }} for HTTP Request and {{ 3.email }} for native app actions.

Choose the type and operator

Pick Text, Number, Yes/no, Record, List, or Date & Time, then select an operator and comparison value.

Point the route at a step

Select the target Step under Then go to, and wire ELSE for runs where no condition matches.

Operators

Every type includes exists, does not exist, is empty, and is not empty. On a missing field, exists is false while does not exist and is empty are true; other operators fail unless you add {{ 2.ret.email | default:"" }}.

is equal to · is not equal to · contains · does not contain · starts with · does not start with · ends with · does not end with · matches regex · does not match regex

Slow regex patterns time out and fail the rule rather than stalling the run.

Combining rules and AI Conditions

OptionBehavior
AND ruleJoins the current group. Every rule in the group must pass.
OR ruleStarts a new group. Any one passing group triggers the route.

What it passes on

Conditions records rule verdicts under rules, route matched and fired states under routes, and fired connectors under firedEdgeIds. Execution continues along every matching route, takes ELSE when none match, or stops as Passed if ELSE is unwired. Each route header accepts a canvas Branch name.

Limits

  • Case sensitivity: Text rules and List contains checks are case-sensitive by default (Active does not match active). Enable Ignore capitalisation per rule when needed.
  • Regex with Ignore capitalisation: Enabling Ignore capitalisation lowercases the input before matching. Write the regex pattern in lowercase, or leave the toggle off and use /pattern/i.
  • Broken branch connections: If a Condition Step’s branch connections break, the Step shows Setup required (Branch connections) on its card and only stops runs that reach that Step. Leftover connectors that belong to no branch can be deleted on the canvas.

Examples to copy

SettingValue
Data{{ 2.ret.employee_count }}
TypeNumber
Operatoris greater than
Value100
Then go toEnterprise sequence
ELSESelf-serve sequence
Verify it works
Run
Open Test & Debug on the Conditions Step and click Run step
You should see
The Output tab lists which route matched, and in a full Run only Steps on matching branches execute.

What’s Next?

  • Route to many named outputs with the Switch Step.
  • Keep or discard items in a list with Filter.
Last updated on

Search documentation

Start with a guide, or search by Step, task or error.