Conditions Step
Route a run down one or more branches by testing your data with typed rules or plain-language AI conditions.
- 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)

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.
- 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.
- 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.
- 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:"" }}.
Text
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
Combining rules (AND / OR)
| Option | Behavior |
|---|---|
| AND rule | Joins the current group. Every rule in the group must pass. |
| OR rule | Starts 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
containschecks are case-sensitive by default (Activedoes not matchactive). 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
Route big leads
| Setting | Value |
|---|---|
| Data | {{ 2.ret.employee_count }} |
| Type | Number |
| Operator | is greater than |
| Value | 100 |
| Then go to | Enterprise sequence |
| ELSE | Self-serve sequence |
- 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.