Three control-flow steps shape how an automation runs: Filter, Paths, and Delay. Use them to react conditionally, split into branches, or wait between actions.
Filter

A Filter is a stop-if-not-met step. Add a condition; the flow continues past the filter only if the condition is true. Otherwise, the run stops silently — no error, no downstream steps.
Use cases
- Send a review-request SMS only if the job total is above $200.
- Send a follow-up email only if the customer has the tag "Warranty".
- Stop the flow when a job is cancelled instead of the expected status.
Building a condition
- Left side: a variable from the trigger or an earlier step (
{{job.total}},{{customer.tags}},{{steps.get_customer.output.email}}). - Operator:
equals,not equals,greater than,less than,contains,does not contain,is empty,is not empty. - Right side: a fixed value you type, or another variable.
Chain conditions with AND (all must be true) or OR (any one must be true).
Paths

Paths is a branch step — it splits the flow into multiple parallel branches. Each branch has its own condition; a matching branch runs its downstream steps. Non-matching branches don't run.
Use cases
- "If job type = Install → send install-day-of email; if job type = Repair → send repair follow-up email; otherwise → default email."
- Route webhook payloads to different downstream flows based on a
lead_sourcefield.
How it works
- Add a Paths step.
- Name each path (Install / Repair / Other).
- Give each path a condition. Paths are evaluated top to bottom — the first matching path runs.
- Add steps beneath each path — they only execute when that path matches.
You can add a catch-all path with no conditions (or a condition like 1 = 1) at the bottom as a default.
Delay

Delay pauses the automation for a fixed amount of time before continuing.
Use cases
- Wait 3 days after a job is completed, then send a review-request SMS.
- Wait 2 hours after an estimate is sent, then check whether the customer viewed it and follow up.
- Wait until tomorrow at 9 AM (approximately — see below) before sending an email.
Configuring
- Duration: any positive number of seconds, minutes, hours, or days.
- Delays wait in real elapsed time. A 24-hour delay is 24 hours regardless of business hours or timezone.
If you need "at 9 AM tomorrow" style behavior, add a Delay of 24 hours and time your trigger for the right start of day, or build the delay from the trigger's scheduled_start.
While a run is delayed
The run shows as Waiting in Automations → Runs. It resumes automatically when the delay expires.
Ordering steps around control flow
- Filter stops the whole flow if the condition fails. Steps below it don't run.
- Paths splits the flow. Steps inside a path only run if that path matches. Steps below the Paths node aren't reached — put common downstream steps inside every path if you need them.
- Delay pauses everything below it.
What's not supported today
- Loops — no "for each item in list" step. Each trigger fires one flow.
- Wait until condition true — no polling. Use Delay + a Get step + a Filter to approximate.
- Conditional inside a message body (
{{if VIP}} … {{else}} …) — use Paths and separate messages instead. - Business-hours-aware Delay — Delay is real-time only. If you need a 9 AM send, time it from a trigger you control.