Skip to main content

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:
CategoryNodesBehavior
MessagesMessage, Media, PIXSend content to the user, then continue
User InputButton, List, Message MenuSend interactive content and wait for the user to respond
LogicCondition, Jump To, Set Variable, FormatEvaluate conditions, set values, route the flow
IntegrationsAPI Request, OpenAI AgentCall external services
DataObject Parser, Filter Parser, JS Code RunnerTransform and extract data
ActionsTransfer, FinishEnd 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.)
Reference variables in text fields using the {{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
The session tracks the current position in the flow and all variable values.

Workspaces

Workspaces are organizational containers. Each workspace has its own:
  • Flows
  • API keys
  • OAuth clients
  • AI agents
  • Sectors
A single account can have multiple workspaces, and users can access workspaces based on their role.