Skip to content

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

PropertyDescriptionDefault
Prompt TextThe text spoken to the caller as the menu prompt. Supports {{variable}} interpolation.Empty
SSML EnabledWhether the prompt text uses SSML markup for advanced speech control (pauses, emphasis, pronunciation).false
Voice IntegrationOptional TTS integration override. If not set, uses the tenant's default voice.Tenant default
Voice NameOptional voice name override (e.g., en-US-Wavenet-D).Tenant default

Each option maps a DTMF key to a labeled output handle on the node:

PropertyDescription
DTMF KeyThe key the caller presses: 0 through 9, *, or #
LabelDisplay label for this option (e.g., "Sales", "Support", "Billing")
DescriptionOptional 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
IVR Menu configuration with DTMF options

Error Handling

PropertyDescriptionDefault
Max RetriesHow many times to re-prompt on invalid input before following the no-match handle.3
Retry MessageMessage 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 MessageMessage spoken when no input is detected within the timeout."I didn't hear anything. Please press a key."
Output VariableVariable 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
IVR Menu node on canvas with dynamic output handles per DTMF key

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. Billing

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

HandleDirectionDescription
InputInReceives execution from the previous node
Option handlesOutOne per DTMF key -- routes to the selected option's branch
no_matchOutFires when retries are exhausted with no valid input

OmniBots AI Bot Platform