Flow Node Reference
Trigger Nodes
On Message Node
The entry point of every flow. Defines what messages activate the bot.
| Setting | Options |
|---|---|
| Trigger Type | Any Message / Specific Keywords / Any CTWA Ad / Specific CTWA Ads |
| Keywords | Comma-separated keywords (case-insensitive match) |
| Source IDs | CTWA ad source IDs for ad-specific triggers |
| Behavior | Normal / Only once per new contact / Only if resolved |
Send Message Nodes
Send Text
Sends a plain text WhatsApp message.
- Supports
{{variable_name}}placeholders - Supports emoji
Send Image / Video / Document / Audio
Sends a media file.
- URL: Direct link to the media file
- Caption: Optional text below the media
Send Button Message
Sends an interactive message with up to 3 quick reply buttons.
| Field | Description |
|---|---|
| Body text | The main message |
| Footer | Optional sub-text below body |
| Buttons | Up to 3 button labels |
Each button connects to a separate output handle for branching.
Send List Message
Sends an interactive list picker with sections and rows.
| Field | Description |
|---|---|
| Header | Optional header text |
| Body | Main message |
| Button Label | Text of the “View Options” button |
| Sections | Up to 10 sections, each with up to 10 rows |
Send Template Message
Sends an approved WhatsApp message template.
| Field | Description |
|---|---|
| Template | Select from approved templates |
| Variables | Map template variables to contact attributes |
Ask / Input Nodes
All Ask nodes send a question and wait for the user’s reply before proceeding.
| Node | Validates |
|---|---|
| Ask Question | Any text |
| Ask Number | Numeric input |
| Ask Phone | Valid phone format |
| Ask Email | Valid email format |
| Ask Date | Date format |
| Ask URL | Valid URL |
| Ask Media | Image / Video |
| Ask File | Document / File |
| Ask Location | GPS location share |
| Ask Choice | Buttons (up to 3 choices) |
Ask Node Settings
| Setting | Description |
|---|---|
| Question text | The message sent to the user |
| Save to variable | Variable name to store the answer |
| Invalid response message | Sent if the user’s input fails validation |
Logic Nodes
Condition Node
Branches the flow based on a condition.
| Field | Description |
|---|---|
| Variable | The variable or contact attribute to check |
| Operator | equals / not_equals / contains / starts_with / ends_with |
| Value | The value to compare against |
Outputs:
- True handle → path taken when condition is met
- False handle → path taken when condition is not met
Delay Node
Pauses the flow for a specified duration before executing the next node.
| Field | Options |
|---|---|
| Duration | Any number |
| Unit | Seconds / Minutes / Hours |
Action Nodes
HTTP Request Node
Calls an external API and optionally stores the response in a variable.
| Field | Description |
|---|---|
| Method | GET / POST / PUT / DELETE |
| URL | The API endpoint |
| Headers | Key-value pairs |
| Body | JSON body (for POST/PUT) |
| Save response to | Variable name |
Update Contact Column
Sets a custom attribute on the contact.
| Field | Description |
|---|---|
| Column | The custom attribute to update |
| Value | Static value or {{variable}} |
Update Contact Tag
Adds or removes a tag from the contact.
| Field | Options |
|---|---|
| Action | Add tag / Remove tag |
| Tag | Select from existing tags |
AI Agent Node
Hands off the flow to another Workflow Bot (sub-flow).
| Field | Description |
|---|---|
| Select Bot | Choose a published Workflow Bot |
AI Generate Node
Generates dynamic text using AI based on a prompt.
| Field | Description |
|---|---|
| Prompt | Instruction for the AI (can include {{variables}}) |
| Save to variable | Where to store the generated text |
Assign Agent Node
Assigns the conversation to a specific team member.
| Field | Description |
|---|---|
| Agent | Select a team member |
Resolve Conversation Node
Marks the conversation as resolved. Useful at the end of a flow.