IVR Applet Guide
The IVR (Interactive Voice Response) applet creates phone menus that let callers navigate options using DTMF (keypad) input. Callers hear a prompt and press a key to select their desired option, which routes them to the appropriate next step in the call flow.
For the API-level technical reference, see IVR Menu Applet.
How the IVR Applet Works​
- The caller hears an audio prompt (e.g., "Press 1 for Sales, Press 2 for Support")
- The caller presses a key on their phone (DTMF input)
- The IVR applet matches the input to a configured option
- The call is routed to the applet connected to that option
- If the input is invalid or no input is received, the fallback behavior is triggered
Caller hears menu ──► Presses key ──► Matched to option ──► Routed to next applet
──► No match / timeout ──► Replay or fallback
Configuration​
Basic Setup​
- Drag the IVR applet onto the Flow Builder canvas
- Click the applet to open the Properties Panel
- Configure the audio prompt
- Add menu options with DTMF key assignments
- Configure timeout and fallback behavior
- Connect each option's output to the next applet in the flow
Audio Prompt​
The IVR prompt is the audio that tells callers what options are available. Configure it the same way as the Greeting applet:
| Source | Description |
|---|---|
| Phone recording | Record the prompt by phone |
| File upload | Upload a pre-recorded WAV or MP3 file (8000 Hz Mono recommended) |
| Text-to-Speech | Enter text and select a language/voice |
Example prompt text: "Thank you for calling Acme Corp. Press 1 for Sales. Press 2 for Customer Support. Press 3 for Billing. Press 0 to speak to an operator."
Menu Options​
Each menu option maps a DTMF key to a specific flow path:
| Setting | Description |
|---|---|
| Key | The DTMF digit (0 -- 9, *, #) |
| Label | Description of what this option does (for your reference) |
| Next Applet | The applet to route to when this key is pressed |
Available DTMF Keys​
| Key | Commonly Used For |
|---|---|
1 | Primary option (Sales, English, etc.) |
2 | Secondary option (Support, Hindi, etc.) |
3 | Third option (Billing, etc.) |
4 -- 9 | Additional options |
0 | Speak to operator / agent |
* | Go back to previous menu |
# | Confirm selection or skip |
Timeout and Retry Settings​
| Setting | Default | Description |
|---|---|---|
| Input Timeout | 5 seconds | Time to wait for DTMF input after the prompt finishes |
| Max Retries | 2 | Number of times to replay the menu if no valid input is received |
| Retry Message | Replay original prompt | Audio to play before replaying the menu |
| Final Timeout Action | Hangup | What happens after all retries are exhausted |
Single-Level IVR​
A single-level IVR provides one menu with direct routing to each option:
Greeting ──► IVR Menu
├──► (Press 1) Connect Sales Group
├──► (Press 2) Connect Support Group
├──► (Press 3) Connect Billing
├──► (Press 0) Connect Operator
└──► (No input) Replay IVR / Hangup
Configuration Example​
| Key | Label | Routes To |
|---|---|---|
| 1 | Sales | Connect applet (Sales agent group) |
| 2 | Support | Connect applet (Support agent group) |
| 3 | Billing | Connect applet (Billing team) |
| 0 | Operator | Connect applet (Reception) |
Multi-Level IVR​
Multi-level IVR creates nested menus where one IVR leads to another:
IVR Level 1 ("Select department")
├──► (Press 1) IVR Level 2 ("Select Sales region")
│ ├──► (Press 1) Connect Sales India
│ ├──► (Press 2) Connect Sales APAC
│ └──► (Press *) Go back to Level 1
│
├──► (Press 2) IVR Level 2 ("Select Support type")
│ ├──► (Press 1) Connect Technical Support
│ ├──► (Press 2) Connect Account Support
│ └──► (Press *) Go back to Level 1
│
└──► (Press 0) Connect Operator
Limit IVR menus to a maximum of 2 -- 3 levels deep. Callers become frustrated with too many nested menus and may hang up. If your menu tree is growing beyond 3 levels, consider simplifying or using a Passthru applet for dynamic routing instead.
Building Multi-Level IVR​
- Place the first IVR applet (Level 1 menu)
- For each option that needs a sub-menu, place another IVR applet
- Connect the Level 1 option output to the Level 2 IVR input
- Configure the Level 2 IVR with its own options
- Use
*or#to allow callers to go back to the previous menu (connect to Level 1)
Advanced Features​
Dynamic IVR with Passthru​
Combine IVR with the Passthru applet to create data-driven menus:
IVR ("Enter your order number") ──► Passthru (look up order)
──► Greeting (read order status via TTS)
──► Connect (to support agent)
Collecting Multi-Digit Input​
For collecting account numbers, order IDs, or PINs:
- Configure the IVR to accept multi-digit input
- Set the termination key to
#(caller presses # after entering digits) - The collected digits are passed to the next applet (typically Passthru)
| Setting | Description |
|---|---|
| Multi-digit mode | Enable to accept more than one keypress |
| Max digits | Maximum number of digits to collect (e.g., 10 for a phone number) |
| Termination key | Key that signals end of input (typically #) |
DTMF During Greeting​
If a Greeting applet precedes the IVR and the caller already knows the menu options, they can press a key during the greeting to skip directly to their choice:
- On the Greeting applet, enable Interruptible
- The IVR applet receives the DTMF input and routes accordingly
- This speeds up the experience for repeat callers
IVR Best Practices​
- Keep it short -- Limit to 4 -- 5 options per menu level
- Put the most common option first -- If 70% of callers choose Support, make it option 1
- Always offer a human option -- Include "Press 0 to speak to an agent" as a fallback
- Allow back navigation -- In multi-level menus, use
*to go back - Handle invalid input gracefully -- Replay the menu with a helpful message
- Test with real users -- Have colleagues or test callers navigate the menu
- Review IVR analytics -- Track which options are selected most and optimize accordingly
Troubleshooting​
| Issue | Possible Cause | Resolution |
|---|---|---|
| Caller's input not detected | DTMF not transmitted properly | Test with different phones; check carrier support |
| Wrong option selected | Key mapping misconfigured | Verify the key-to-applet connections in the flow |
| Menu replays endlessly | Max retries set to 0 (infinite) or very high | Set max retries to 2 -- 3 |
| Caller hangs up during IVR | Menu too long or too many levels | Simplify the menu structure |
| Multi-digit input not working | Multi-digit mode not enabled | Enable multi-digit mode in IVR settings |
Related Topics​
- IVR Menu Applet API Reference -- Technical API details
- Greeting Applet Guide -- Play prompts before IVR
- Connect Applet Guide -- Route calls after IVR selection
- Passthru Applet Guide -- Dynamic routing after IVR input
- Flow Builder Guide -- Visual flow design