Skip to main content

Flows

A flow is a graph of steps that runs when something triggers it. Each step does one thing — call an API, run an assistant, reshape data, decide what happens next — and stores its result where later steps can read it.
  • A trigger starts the run. Whatever it receives becomes $.trigger.
  • Steps do the work. Each stores its result under its own step ID.
  • Steps read each other’s results with variable mapping — any string beginning with $..

How a run behaves

Four things are worth knowing before you build anything.
The runner is a concurrent graph executor. Every step with no incoming edge starts at once, and a step starts as soon as all of its predecessors have finished. Independent branches run in parallel.
Arrows in the editor are not routing. A Condition step names the step IDs to run — one, several, or the reserved RESOLVE_SUCCESS / RESOLVE_ERROR to end the run. A line no outcome names is decoration.
There is no per-step error branch. The failing step records the error, the run is cancelled, and anything still in flight is abandoned. Results from steps that already finished are kept. See Building Reliable Flows.
Save keeps your work. Publish is what makes it take effect. Testing in the editor runs the draft, so a flow that behaves correctly under test can still be running its old published version until you publish.

What a step can read

Every step payload is resolved before the step runs. The data it can select from has these top-level keys and nothing else:
A path that matches nothing resolves to an empty array, not null. $.trigger.nope becomes [].

Building one

1

Create a flow

Flows live in collections. Create one from the Flows list.
2

Add a trigger

Pick how the flow starts — a URL, a schedule, an email address, a form on your site. See Triggers.
3

Add steps

Drag in the steps that do the work and wire them together. See Steps.
4

Test the draft

Test runs the draft against a payload you type, standing in for $.trigger.
5

Publish

Publishing is what makes the flow live. Watch the first real runs under Monitoring.

Where to go next

Triggers

Every way a flow can start, and which ones can lose an event

Steps

The step types and how a run moves between them

Built-in Functions

Storage, streams, encoding and templating

Variable Mapping

The $. syntax, in full

Rules Engine

Deriving values and decisions from a rule set

Building Reliable Flows

Failures, retries, timeouts and recovering a part-completed run