1. Home
  2. Help Center
  3. Automations
  4. Branching & flow control

Branching & flow control

Why flow control

A plain list of steps runs straight through, top to bottom. Flow-control steps let a run take different paths, repeat, or stop early — so one automation can handle several outcomes.

If / else

Splits the flow in two. You write a condition; if it's true the then branch runs, otherwise the else branch runs. On the canvas each branch has its own chain of steps, and you add steps inside a branch with its own "+" buttons.

Example condition: event.metadata.priority == "high"

Stop if false

A simple guard. If its condition is false, every remaining step is marked skipped and the run ends cleanly. Use it as an early exit when there's nothing more to do — it's lighter than an If / else when you only care about one path.

For each

Loops over a list — event metadata, the output of an earlier step, or an expression. The steps nested inside run once per item. Inside the loop you can reference the current item as ${item} and its position as ${index}.

Fail run

Stops the run immediately and marks it failed, with a message you write. Pair it with If / else or Stop if false to enforce a guard clause — for example, fail the run when a required field is missing so it shows up clearly in your run history.

Run automation

Invokes another automation as a sub-routine. You can optionally wait for it to finish before continuing, and pass input into it. The engine refuses cycles, so an automation can't end up calling itself in a loop.

Tip: condition vs. branching

Use the trigger's condition to decide whether a run should happen at all. Use a branching step to make decisions within a run that's already underway.

Next

Continue with Using dynamic values to learn how steps read event data.