Router
A Router sends each run down one of several paths (“flows”) based on conditions. Example: leads from companies with more than 200 employees go to Flow 1 (book a demo), everyone else goes to the fallback (nurture email).Add a Router
Set each flow's conditions
Add more flows if you need them
Add steps under each flow
- Any value: Exists, Does not exist, Is empty, Is not empty, Equals, Not equals.
- Text: Contains, Does not contain, Starts with, Ends with, Matches regex, Does not match regex.
- Yes/no: Is true, Is false.
- Numbers: Greater than, Less than, Greater or equal, Less or equal.
- Dates: Is before, Is after, Is on or before, Is on or after, Is between, Is within last N days, Is within next N days, Is more than N days ago.
- Lists: Array length equals, Array length greater than, Array length less than. Equals and Contains on a list match if any item matches.
- AI Analyzer: describe in words what to check (“Describe what AI should check…”), and AI answers true or false.
- A router’s flows (its branches) are checked in order, top to bottom, and only the first matching flow runs. Turn on Allow multiple matching routes to run every flow that matches.
- The fallback runs only when nothing else matched. If nothing matches and there’s no fallback, the flows show Condition not matched and the steps after them show Skipped.
- Text comparisons are case-sensitive. “Yes” doesn’t equal “yes”.
- A flow with no conditions matches everything. An empty flow near the top catches every run. The builder flags it: “This route needs at least one filter”.
- A missing value is an error, not “false”. If a condition such as Equals or Contains points at a value that doesn’t exist for this run, the run fails. Check with Exists or Is not empty first. See Why is my variable empty?
AI Analyzer
“Evaluate data with an AI and branch on the result.” Write an Analysis Prompt in plain language, for example “Is this email a meeting request?”, and insert the variables it should look at. The step always has two branches, True and False: “The AI decides true/false based on the analysis prompt above. No manual conditions needed.” Use it when the decision needs judgement that’s hard to express as rules.For each
“Run every item in the array.” A For each repeats the steps inside it once for every item in a list. Example: an AI Agent step returns five competitor websites; a For each runs Scrape Web on each one.Add a For each
Choose what to loop over
Add steps inside the Body
- Items are processed one after another, not all at once. A Delay inside the loop is repeated for every item.
- Every paid step inside the loop is charged once per item. Five items × a 1-credit step = 5 credits for that row.
- An empty list means zero iterations; the Body shows Skipped.
- Loops can be nested.
- The cell shows a summary such as “Success: 12 of 12” or Partial (“5 of 6”). A failed iteration shows “An iteration failed”.
- With Stop flow if node fails on, the first failed item stops the loop and the run. Re-running with Run only empty cells carries on from the failed item.
- If a single-value field gets a list, you’ll see “Arrays are not supported for this field. You must group this node to For each node to use it.” Click Wrap in For Each.
Delay
“Pause the flow for a specified duration.” Choose a Time Unit (Seconds, Minutes, Hours, Days) and a Duration (default 5 minutes). The card shows “Waits 2 days before continuing” and, during a run, a countdown such as “3 days left”.- Delays survive restarts; a 3-day wait really waits 3 days.
- A Delay ends early if the lead replies or their outreach is stopped. The cell then reads “Skipped due to lead replied to msg” and the rest of that sequence doesn’t run. This is on purpose, so you don’t follow up with someone who already answered.
LinkedIn checks
Filter
Filter Records by condition (in Data & Logic) is a gate: later steps only run when its condition is true. Outside a For each, a false result ends the whole run. Inside a For each it skips just that item. The cell reads “Condition met” or “Condition not met”.Formula
Formula “Calculate a value from row data or upstream node results.” Write a formula such asadd({{Amount}}, {{Tax}}) and choose a Return type (Auto, Text, Number, Currency, Date, Boolean, JSON). It’s free. There’s no separate code step: use Formula for calculations and Api Call to call another app.
Require approval
Make a run stop and wait for a person before a step runs, for example before sending an email to a big account.Turn it on
Choose how reviewers hear about it (first time only)
Approve or reject during a run
- Reject stops that row’s path; later steps show Skipped.
- Approvals expire after 3 days and then count as rejected. Deciding after that shows “This approval has expired: the workflow stopped waiting for a decision, so yours was not recorded. Run the workflow again to request a new approval.”
- Inside a For each, the waiting item pauses while other items carry on.
- Not available on the trigger, Routers, branching steps, For each or Delay (“This node type cannot require approval.”).
When a step fails
By default, a failed step stops the rest of that run, and the steps after it show Skipped. You can change this:- For the whole workflow: Stop flow if node fails (on by default) in Workflow settings, or on the Schedule trigger card.
- For one step: step ⋯ → Continue run on error or Stop run on error. The step’s setting wins over the workflow setting.
Deactivate a step
Step ⋯ → Deactivate skips the step in every run (dashed, dimmed card; cells read Node deactivated). Later steps still run, with blanks where its data would be. Deactivating a Router or For each skips everything under it (“Skipped because an upstream node is deactivated”). Activate turns it back on.Variants (A/B tests)
Step ⋯ → Create Variant adds an alternative version of a step, such as a second email wording. You can have up to 5 variants (A–E) per step. Not available on triggers, Routers, branching steps or For each.Good to know
- Credits: Router, For each, Delay and the LinkedIn checks are free. AI Analyzer and AI conditions use AI, which is billed by usage. Paid steps inside a For each are charged once per item. See Credits.
- There’s no Merge step: to join branches, connect both to the same next step.
- There’s no “End” step: a branch ends after its last step.
Troubleshooting
The Router takes the wrong branch
The Router takes the wrong branch
The Router failed instead of going to the fallback
The Router failed instead of going to the fallback
Everything after one failed step was Skipped
Everything after one failed step was Skipped
The run stopped even though Continue run on error is on
The run stopped even though Continue run on error is on
The Delay ended early
The Delay ended early
My For each is slow
My For each is slow
I ran out of credits halfway through a loop
I ran out of credits halfway through a loop
The Filter step stopped the whole run
The Filter step stopped the whole run
A deactivated step's later steps ran with blanks
A deactivated step's later steps ran with blanks
This approval has expired
This approval has expired
Related
- Variables — the values conditions compare
- Build a workflow — add, move and delete steps
- Test and run — run, retry and workflow settings
- Approvals — where approvals appear and who’s notified