Theme
IVR Menu Node
The IVR Menu node presents an interactive voice response (IVR) menu to the caller. It speaks a prompt using text-to-speech, then waits for the caller to press a DTMF key (touch-tone digit). Each key maps to a different output handle, allowing you to branch the flow based on the caller's selection.
When to Use
- You are building a voice bot and need a phone menu ("Press 1 for Sales, Press 2 for Support").
- You want structured input from voice callers before routing them.
- You need a fallback for callers who cannot use free-form speech input.
Configuration
| Property | Description | Default |
|---|---|---|
| Prompt Text | The text spoken to the caller as the menu prompt. Supports {{variable}} interpolation. | Empty |
| SSML Enabled | Whether the prompt text uses SSML markup for advanced speech control (pauses, emphasis, pronunciation). | false |
| Voice Integration | Optional TTS integration override. If not set, uses the tenant's default voice. | Tenant default |
| Voice Name | Optional voice name override (e.g., en-US-Wavenet-D). | Tenant default |
Menu Options
Each option maps a DTMF key to a labeled output handle on the node:
| Property | Description |
|---|---|
| DTMF Key | The key the caller presses: 0 through 9, *, or # |
| Label | Display label for this option (e.g., "Sales", "Support", "Billing") |
| Description | Optional spoken description appended to the prompt |
You can add up to 12 options (digits 0-9, star, and hash). Each option creates a separate output handle on the node, so you can connect each key to a different branch of your flow.
imageIVR Menu node config panel showing prompt text field, SSML toggle, and a list of DTMF menu options with key, label, and description columns for keys 1 through 4
Error Handling
| Property | Description | Default |
|---|---|---|
| Max Retries | How many times to re-prompt on invalid input before following the no-match handle. | 3 |
| Retry Message | Message spoken when the caller presses an invalid key. | "Sorry, I didn't understand. Please try again." |
| Timeout (ms) | How long to wait for DTMF input before treating it as no input. | 10000 |
| No Input Message | Message spoken when no input is detected within the timeout. | "I didn't hear anything. Please press a key." |
| Output Variable | Variable where the selected key is stored. | ivr_selection |
Output Handles
The IVR Menu node has dynamic output handles:
- One handle per configured DTMF key option (labeled with the key and label, e.g., "1 - Sales").
- A no_match handle that fires after all retries are exhausted with no valid selection.
Connect each handle to the appropriate next step in your flow.
imageIVR Menu node on the flow builder canvas showing dynamic output handles labeled '1 - Sales', '2 - Support', '3 - Billing', and 'no_match', each connected to different downstream nodes
Chat Mode Fallback
When an IVR Menu node is reached in a chat (non-voice) conversation, it automatically renders as a numbered list of options. The user can type the number or click a button to select an option. This lets you use the same flow for both voice and chat channels.
Please select an option:
1. Sales
2. Support
3. Billing1
2
3
4
2
3
4
TIP
Use descriptive labels for your menu options. In voice mode, you can combine the prompt text with option descriptions to create a natural-sounding menu: "For Sales, press 1. For Support, press 2."
WARNING
DTMF keys must be unique within a single IVR Menu node. You cannot assign two options to the same key.
Handles
| Handle | Direction | Description |
|---|---|---|
| Input | In | Receives execution from the previous node |
| Option handles | Out | One per DTMF key -- routes to the selected option's branch |
| no_match | Out | Fires when retries are exhausted with no valid input |
