Menu Node
Node | Menu Node |
|---|---|
Description | The Menu Node is one of the core interactive components in an IVR (Interactive Voice Response) system. It plays a voice prompt to the caller, listens for DTMF (digit) input, and then routes the call based on the user’s selection. |
Purpose
This node allows you to:
Prompt the caller with a menu (e.g., "Press 1 for Sales, 2 for Support")
Accept user input through keypad (DTMF)
Route the flow dynamically based on the input received
Store the input for further logic or processing
Configuration Options
Field | Description |
|---|---|
Name | Friendly identifier for readability within the flow |
Prompt | The main audio/message played to the caller (e.g., "Press 1 for sales, 2 for support") |
Invalid | Audio/message played when an invalid digit is entered |
No Input | Audio/message played when no input is received within the timeout window |
Exit | Final prompt that plays after max retries are exhausted, after which the call will hang up |
Iterations | Number of retries allowed in case of no input or invalid input |
Timeout | Duration to wait for the caller to enter a digit |
Options | A key-value mapping of digit presses to option labels Key = expected digit (e.g. 1) Each option will result in a separate output in the visual flow editor |
Digit | The name of the Session Data Object (SDO) key where the digit and value will be saved for later use |
Stored Output in SDO
When a user selects an option, the following values are stored in the SDO for future use:
SDO.{key}.digit→ The actual digit the user pressedSDO.{key}.value→ The label of the selected option as defined in configuration
Example:
You want to play a menu prompt and user will select the options
If user presses 1 and that corresponds to sales:
SDO.{key}.digit = "1"
SDO.{key}.value = "Sales"

Flow Behavior
If valid input is received: The corresponding output port (based on selected digit) is triggered
If invalid input: The Invalid prompt is played, and the user is prompted again (if retries remain)
If no input: The No Input prompt is played, and user gets another chance (if retries remain)
If all retries are exhausted: The Exit prompt is played and the call is terminated
Sample Configuration
Parameter | Example Value |
|---|
Parameter | Example Value |
|---|---|
Name | Main Menu |
Prompt | "/prompts/main_menu.wav" |
Invalid | "/prompts/invalid_option.wav" |
No Input | "/prompts/no_input.wav" |
Exit | "/prompts/exit_prompt.wav" |
Iterations | 3 |
Timeout | 5000 |
Options |
|
Digit (SDO Key) |
|
Best Practices
Keep prompts short, clear, and informative
Always define an Exit scenario to avoid deadlocks
Use descriptive option labels for better downstream flow design
Ensure your Timeout is long enough for human interaction but short enough for good UX