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

Filter step being configured

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 step with multiple branches

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_source field.

How it works

  1. Add a Paths step.
  2. Name each path (Install / Repair / Other).
  3. Give each path a condition. Paths are evaluated top to bottom — the first matching path runs.
  4. 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 step configuration

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.