Chatflows
Build WhatsApp chatbot graphs that handle customer conversations automatically.
A Chatflow is a visual conversation graph for building interactive WhatsApp (and Slack) chatbots. You connect a fixed set of conversation-oriented nodes — messages, decision branches, form prompts, HTTP calls, and scripts — to define what the bot says and how it reacts to user replies.
Chatflow vs. Workflow
Chatflows and Workflows are separate graph types that serve different purposes.
| Chatflow | Workflow | |
|---|---|---|
| Purpose | Interactive, turn-by-turn conversation with a user | Automated processing: calling APIs, sending messages, transforming data |
| Node palette | Conversation nodes (Message, Decision, Form, …) | Full node library (triggers, messaging, logic, HTTP, …) |
| Triggered by | A CHATFLOW node inside a Workflow | A trigger node (HTTP, cron, form, …) |
| Versioning | None — changes are saved directly | Branch, commit, and pull-request model |
| Session state | Maintains per-user conversation state across replies | Executes as a single Job run |
Use a Chatflow when your automation needs to ask questions, collect answers, and react to what the user types. Use a Workflow for everything else.
How a Chatflow runs
A Chatflow is started from inside a Workflow. When the CHATFLOW node fires, EzFlow:
- Creates a ChatflowSession linked to the recipient's phone number (WhatsApp) or channel (Slack).
- Translates the Chatflow's nodes and edges into orchestrator nodes that the execution engine can run.
- Pauses the parent Workflow and begins executing the conversation graph.
- Routes each inbound reply from the user back to the active session.
- On completion, resumes the parent Workflow with the collected variables.
The translation step is transparent: you design the conversation visually in the builder and EzFlow handles the mapping to its internal execution format.
Where Chatflows live
Chatflows are created and edited at Chatflows (app route /chatflows). Each Chatflow is scoped to your workspace.