A flow is the diagram of an automation drawn on the canvas. A step is each box in that diagram: it sends a message, asks a question, splits the path in two or changes something about the person. The lines you draw between steps decide in what order the flow walks a customer through.
💡 To edit a flow, open the automation and stay on the Flow tab. Changes are saved to the draft by themselves; taking them live requires Publish.
In this article
- What a flow is, what a step is
- The start step
- Step types
- Outputs and connections
- Working on the canvas
- Limits
- Common mistakes
What a flow is, what a step is
A flow is made of two things: steps and the connections between them. When a run starts, the engine sets off from the start step, follows the connections from step to step, and stops when it reaches an output with no connection.
The order of steps is decided by the connections, not by where the boxes sit on the canvas. Arrange the boxes however you like; the lines are what define the flow.
The start step
Every flow has exactly one start step, labelled When…. It sends no message; it only carries the triggers that start the flow. A start step can hold up to 20 triggers.
The start step cannot be deleted and a second one cannot be added; the pre-publish check reports both cases as errors. The trigger types are described in Trigger.
Step types
The step palette is filtered by the account's channel: a step with no counterpart never appears in the menu.
Steps that send a message
- Message — Sends text and buttons. You can add alternative wordings (variants) of the same message, wait for a written reply, and save that reply into a field.
- Card — Sends a card made of an image, a title, a subtitle and up to three buttons.
- Gallery — Sends cards you swipe through sideways (up to 10 cards).
- Media — Sends an image, a video, audio or a file.
- List — Sends a list of options; it is specific to WhatsApp (up to 10 rows).
- Template — Sends a template approved by WhatsApp. It is the only form that can be sent while the 24-hour window is closed.
- Collect information — Asks a question, validates the answer against a format (text, e-mail, phone, number, date, address) and writes it to the contact card.
- Try it on — Puts the product image you chose onto the photo the person sends.
Steps that decide the path
- Condition — Looks at the person or the situation and splits the path into True and False.
- Random split — Divides people into branches by weight; used for A/B testing (up to 5 branches).
- Wait — Waits for a set period (minutes, hours or days).
- Another flow — Starts a different automation.
- End — Ends the flow there.
Steps that use data and the outside world
- Action — Changes a tag, a field, the assignee or the status; a single step can carry several actions in order.
- External request — Makes an HTTP request to another system, saves information from the response, and can branch on it.
- Send e-mail — Sends e-mail to the team, to the contact's own address, or to an address you type.
- Conversion — Records an outcome such as a sale, an appointment or a sign-up.
- AI — Produces an answer from your instruction; in chat mode it keeps talking until the task is done and writes what it learns to the contact card.
The Instagram-only step
- Reply to comment — Writes a public reply under the comment that started the flow. It sends the person no message, and the step is skipped when there is no comment context.
The step that never runs
- Note — Leaves a note on the canvas. It never runs; it exists so your team can follow the flow.
Outputs and connections
Every step has one or more outputs, and connections attach to them. The name of the output tells you in which case the flow continues from there:
- Next — Where to go when the step finishes.
- Button — Every button the person can tap gets its own output.
- Reply — If a message step is waiting for a written reply, the flow continues from here when it arrives.
- True / False — The two branches of a condition.
- Branch — The named branches of a random split and of an external request.
- No reply — When the expected reply or photo never arrives.
- Invalid answer — When a collect step runs out of retries.
- Could not generate — When AI or Try it on cannot produce a result.
- Unreachable / Timed out — When an external request fails or does not answer in time.
Three rules make life easier:
- Only one connection leaves an output. Draw a second and the first one stays in place.
- An unconnected output ends the flow. That is not an error; the run completes there and the reason is written to the log.
- A connection attaches to a step's input. The start step and the note have no input.
⚠️ Note: a link button on a card takes the person to a browser; it has no output and the flow does not continue through it. If you want the flow to carry on, use a reply button.
Working on the canvas
In the editor you can:
- Open the palette with Add step to place a new step; with a step selected, Add step and connect attaches the new one directly.
- Drag boxes to move them, and adjust the view with Fit all, Zoom in and Zoom out.
- Duplicate a step, or remove it with Delete.
- Undo and Redo your last changes.
- Copy and paste steps to reuse them.
Saving happens by itself and its state is shown at the top: Saving…, Saved or Could not save. If someone else changed the same flow, you see Changed elsewhere — refresh; you must refresh and work on the latest version.
The top bar also carries the Pre-publish check counter: it shows how many errors and warnings there are, and lists them all when you click it.
How steps appear in the logs
Every step a run executes leaves a line in the Logs tab. The lines let you read the flow step by step:
- Started, Message sent, Skipped, Could not send
- Tapped a button, Replied
- Condition, Action, Wait, Another flow
- Replied under the comment, External request, E-mail sent, Conversion
- Plan lock, Loop protection stopped this, Error, Interrupted, Finished
The "Skipped" line matters most: when a message could not be sent, the flow does not vanish silently and the reason is written there. Reading this log is the quickest way to understand why a flow did not do what you expected.
Limits
- A flow can hold at most 200 steps and 400 connections.
- A start step holds at most 20 triggers.
- A message step carries up to 5 variants, a gallery up to 10 cards, a list up to 10 rows, and a random split up to 5 branches.
- A condition step can hold up to 20 rules, and an action step up to 20 actions.
Common mistakes
- Laying boxes out and forgetting to connect them. Two boxes sitting side by side on the canvas are not connected, and the flow will not pass from one to the other.
- Leaving one branch of a condition empty. An empty branch ends the flow. If something should also go out on the "False" branch, connect a step to it.
- Not connecting the "No reply" and "Invalid answer" outputs. When the person does not answer, the flow simply ends; usually a reminder or a handover step belongs there.
- Treating a note as a working step. A note never runs.
- Adding a long wait and forgetting the window. The 24-hour window may have closed by the time the wait ends.
Reviewing once where every output leads cuts out most of the surprises you would otherwise meet in production.