Flows
A flow is a conversational blueprint. It defines the entire conversation path a user can take, from the first greeting to the final action. Flows are built visually in the editor using nodes connected by edges. Each flow belongs to a workspace and is stored as a JSON structure containing:- Nodes (nodes) — the individual steps
- Edges — the connections between nodes
- Variables — data containers used throughout the flow
Nodes
Nodes are the building units of a flow. Each node has a specific type and behavior. WhataBot provides 18+ node types organized into categories:| Category | Nodes | Behavior |
|---|---|---|
| Messages | Message, Media, PIX | Send content to the user, then continue |
| User Input | Button, List, Message Menu | Send interactive content and wait for the user to respond |
| Logic | Condition, Jump To, Set Variable, Format | Evaluate conditions, set values, route the flow |
| Integrations | API Request, OpenAI Agent | Call external services |
| Data | Object Parser, Filter Parser, JS Code Runner | Transform and extract data |
| Actions | Transfer, Finish | End the flow or hand off to a human |
Execution types
Nodes behave in one of these ways:- Continue — Executes and immediately moves to the next node (e.g., Message, Media)
- Wait — Sends content and pauses until the user replies (e.g., Button, List, Message Menu)
- Transfer — Hands the conversation to a human agent and keeps the session alive
- Finish — Ends the session
Edges
Edges are the connections between nodes. They define the flow of the conversation. There are two types:- Simple edges — Connect one node to the next (used by Message, Media, etc.)
- Option edges — Connect a specific output handle to another node (used by Button, List, Condition, API Request)
Nodes like Button, List, and Condition have multiple output handles — one per option/branch plus a fallback handle for invalid selections.
Variables
Variables store data during a conversation session. There are two types:- System variables — available automatically in every flow (e.g.,
system.last_message.text,system.request.response,system.dateHour) - User variables — created by you in the editor to store collected data (names, emails, IDs, etc.)
{{variableName}} syntax.
See the Variables guide for the full list of system variables, template syntax, operators, and transformation functions.
Sessions
A session represents an active conversation between a contact and a flow. Sessions are:- Created via the API when a user starts a conversation
- Stored in Redis with a 24-hour TTL (refreshed on each interaction)
- Identified by a unique
sessionId - Linked to a specific flow and contact
Workspaces
Workspaces are organizational containers. Each workspace has its own:- Flows
- API keys
- OAuth clients
- AI agents
- Sectors