flow_data graph.
There are 10 node types usable inside the builder: one Trigger plus nine action nodes. A further three node types exist in the source but are not exposed in the builder today — they’re documented at the end of this page for completeness.
Graph shape
Every flow is stored as a single JSON object with two keys —nodes and edges — following Vue Flow’s native format:
- Each
nodehas anid(string), atype(one of the names below), aposition, and adata.outputarray that holds its properties. - Each
edgelinks a node’s output handle to the next node’s input. A Button Message has three output handles —button-0,button-1,button-2— referenced bysourceHandle.
Active nodes
1. Trigger
- Internal type:
trigger - Purpose: the flow’s entry point. Every flow has exactly one Trigger, and it’s always the first node. You cannot delete it; you configure its rules to decide when the flow runs.
- Output handles: 1 — the Trigger can connect to exactly one next node.
Parameters
The four reply types
Example
2. Text Message
- Internal type:
textMessage - Purpose: send a plain text reply.
- Output handles: 1.
Parameters
Merge fields (
{contact_first_name} etc.) are supported inside reply_text.
Example
3. Button Message
- Internal type:
buttonMessage - Purpose: send a text message with up to three quick-reply buttons. This is how flows branch — each button is a separate output handle.
- Output handles: up to 3 —
button-0,button-1,button-2.
Parameters
Example
Branching
Connect an edge from each button handle to a different downstream node:4. Call To Action
- Internal type:
callToAction - Purpose: send a message with a single URL button — a button that opens a web link when tapped.
- Output handles: 1.
Parameters
Example
5. List Message
- Internal type:
listMessage - Purpose: send a WhatsApp list picker. Customers tap the list button, see grouped sections, and pick one item.
- Output handles: 1.
Parameters
Example
6. Media Message
- Internal type:
mediaMessage - Purpose: send an image, video, audio clip, document, or sticker.
- Output handles: 1.
Parameters
Example — document
Example — image
7. Location
- Internal type:
locationMessage - Purpose: send a location pin the customer can tap to open in their maps app.
- Output handles: 1.
Parameters
Example
8. Contact Card
- Internal type:
contactMessage - Purpose: send one or more vCard contacts the customer can save directly to their phone.
- Output handles: 1.
Parameters
Example
9. API Request
- Internal type:
webhookApi - Purpose: call an external HTTP endpoint mid-flow. Use it to push flow context to your own system, or fetch data to log against the contact.
- Output handles: 1.
Parameters
Example — POST JSON
10. AI Personal Assistant
- Internal type:
aiAssistant - Purpose: hand the conversation over to an AI assistant you’ve configured in the AI Assistant module. From this point, the assistant takes over the conversation until a human intervenes.
- Output handles: 1.
- Availability: only appears in the builder when the AI Assistant module is enabled on the workspace.
Parameters
Example
If the AI Assistant module is disabled, the builder offers 9 action nodes instead of 10 — everything above except this one.
Internal / future nodes
These node types exist in the source code but are not currently exposed in the builder menu. They’re documented here because you may see them referenced in older flows or during support sessions. Don’t rely on them in new flows — they may change shape before they ship.Condition Node
- Internal type:
conditionNode - Purpose: evaluate a condition (contains, equals, starts with, ends with, or regex) and branch accordingly.
- Status: source exists but not wired into the builder. Branching today is done with Button Message handles.
Template Message
- Internal type:
templateMessage - Purpose: send an approved WhatsApp template from inside a flow (which would allow a flow to respond outside the 24-hour session window).
- Status: source exists but not in the builder menu. Use a Template Bot instead for now.
Reaction Message
- Internal type:
reactionMessage - Purpose: react to the customer’s last message with an emoji.
- Status: source exists but not in the builder menu.
Node type summary
What to read next
Bot Flows overview
How flows run, how triggers work, and how to activate them.
Automations overview
Compare Bot Flows to Message Bots and Template Bots.