Concepts

Execution Model

What happens between a trigger firing and the run turning green.

From trigger to finish

A trigger fires and hands its payload to the nodes wired to it. The engine then launches every node whose upstream sources have finished — so two independent branches run at the same time, not one after the other, and a node with several wires in waits for all of them. When every reachable node is done, the run completes; if any node failed, the run reads as failed.

A Condition splits the run: the Yes outlet notifies, the No outlet writes to a log.
A Condition splits the run: the Yes outlet notifies, the No outlet writes to a log.

Branching, loops and errors

A Condition routes its payload out Yes or No. The untaken outlet's whole downstream is marked skipped — it never receives a payload at all.

For Each runs the nodes after its Loop outlet once per item, adding item (rename it under Each Item As), _forEach_index and _forEach_count each pass; the Done outlet continues afterwards. While repeats until its condition is met, capped by Max Iterations — 20 by default.

When a node throws, everything downstream of it is skipped. Other branches carry on. AI nodes are the exception: wire their Failure outlet and the error becomes a branch instead, carrying error and errorType, and the run does not fail.

Watching it run

Every node writes a timeline row with its status, duration and the exact payloads in and out. Loop passes are numbered and rows appear as they finish, so a long run can be read while it happens. Replay re-runs a past run on its captured input; a Breakpoint node pauses mid-flow so you can inspect the payload first.

A circular flow will not run. Watchflows refuses to draw a wire that closes a loop, and a graph containing one fails before any node executes. Use While or For Each to repeat work.

Cancelling is not a rollback. Stop interrupts the node in progress and marks the run cancelled. Nodes that already finished stay done — files stay moved, notifications stay sent.