📋 Menu Node¶
Purpose¶
The Menu node presents a list of options that the customer can choose from. It's the primary navigation tool in your assistant — each option connects to a different path in the flow, letting you create branching conversations.
Business Scenario¶
Use the Menu node when you need to:
- Offer choices — "Would you like to know about our services, pricing, or support?"
- Create navigation — a main menu that branches into sub-topics
- Route customers — direct them to the right department or information based on their selection
- Build product catalogues — list products/services for customers to explore
Configuration¶
| Field | Description |
|---|---|
| Title | Internal name for the node (only visible in the designer) |
| Prompt Text | The message shown above the menu options (e.g., "Please choose an option:") |
| Menu Type | How the options are displayed on WhatsApp (see table below) |
| Options | The list of choices. Each option needs a label and a connection to a target node. |
Menu Types¶
| Type | Max Options | Max Label Length | Best For |
|---|---|---|---|
| Quick Reply Buttons | 3 | 20 characters | Simple yes/no or 2–3 choices |
| List Message | 10 | 24 characters | Standard menus with up to 10 items |
| Numbered Menu | 10 | 60 characters | Longer option labels that need more text |
Choosing a Menu Type
- Quick Reply Buttons appear as tappable buttons directly in the chat — great for simple choices like "Yes / No" or "Continue / Cancel".
- List Message shows a button the customer taps to see a dropdown list — ideal for 4–10 options.
- Numbered Menu sends options as a numbered text list (1, 2, 3...) — the customer replies with the number. Use when labels need more than 24 characters.
Properties¶
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
title |
Text | No | "" |
Internal node name |
body |
Text | Yes | "" |
Prompt message shown above the options |
menuType |
Select | Yes | list |
Display format: buttons, list, or numbered |
options |
List | Yes | [] |
Array of options, each with an id and label |
Option Properties¶
Each option in the list has:
| Property | Type | Description |
|---|---|---|
id |
Auto-generated | Unique identifier used for edge routing |
label |
Text | The text shown to the customer |
Inputs¶
| Handle | Type | Description |
|---|---|---|
| Top (↑) | Target | Receives a connection from any preceding node |
Outputs¶
| Handle | Type | Description |
|---|---|---|
| Per-option (→) | Menu Option | Each option gets its own output handle on the right side. Connect each one to the node that should follow when the customer picks that option. |
No bottom handle
Unlike most nodes, the Menu node does not have a "continue" output at the bottom. All routing goes through the individual option handles.
Connection Rules¶
- ✅ Can receive connections from any node type
- ✅ Each option must be connected to a target node (validation error if not)
- ❌ A Menu with zero options produces a validation error
- ✅ Different options can connect to the same target node
- ✅ Options can loop back to the same Menu (for sub-menu patterns)
Example Flow Diagram¶
flowchart TD
A["💬 Welcome"] --> B["📋 Main Menu<br/><em>How can I help?</em>"]
B -->|"1. Products"| C["📋 Products Sub-Menu"]
B -->|"2. Support"| D["🤖 AI Chat"]
B -->|"3. Agent"| E["👤 Human Handoff"]
C -->|"Widget A"| F["💬 Widget A Details"]
C -->|"Widget B"| G["💬 Widget B Details"]
C -->|"Back"| B
F --> B
G --> B
style B fill:#ede9fe,stroke:#8b5cf6,stroke-width:2px
style C fill:#ede9fe,stroke:#8b5cf6,stroke-width:2px
style D fill:#d1fae5,stroke:#34d399,stroke-width:2px
style E fill:#ffe4e6,stroke:#f43f5e,stroke-width:2px
Managing Options¶
Adding Options¶
Click "Add Option" in the Inspector. A new blank option appears at the bottom of the list.
Reordering Options¶
Use the ↑ / ↓ arrows next to each option to move it up or down in the list.
Removing Options¶
Click the ✕ button next to an option. This also removes any edge connected to that option.
Label Limits¶
The Inspector shows a character counter for each label (e.g., 12/24). Labels that exceed the limit are highlighted in red.
Best Practices¶
Keep option labels short and clear — customers should instantly understand each choice.
Always include an "Other" or "Talk to Agent" option for customers whose needs aren't covered.
Add a "Back" option in sub-menus so customers can navigate to the parent menu.
Limit to 3–5 options for the best experience, even if the menu type allows more.
Use the prompt text to set context (e.g., "Choose a department:" rather than just "Options:").
Use Quick Reply Buttons for binary choices (Yes/No, Continue/Cancel).
Common Mistakes¶
| Mistake | What Happens | Fix |
|---|---|---|
| Menu with no options | Validation error: "Menu has no options" | Add at least one option |
| Unconnected option | Validation error: "Option 'X' has no route" | Connect every option to a target node |
| Label exceeds character limit | WhatsApp may truncate or reject the message | Shorten labels to stay within limits |
| Too many options for the menu type | Options beyond the limit are ignored | Switch to List Message or Numbered Menu |
| No "back" or "escape" option | Customers get stuck in a sub-flow | Add a "Back to Menu" or "Talk to Agent" option |
Related Nodes¶
- 💬 Message — Common target for menu options (informational responses)
- 📥 Question — Capture input after a menu selection
- 🤖 AI Chat — Route a "FAQ" or "Ask AI" option to the AI Chat
- 👤 Human Handoff — Route a "Talk to Agent" option here
- 🔀 Condition — Use after a menu to add further routing logic