IVR (Interactive Voice Response) menus let callers route themselves by pressing keys on their phone. Instead of answering every call yourself, you can play a greeting like "Press 1 for sales, 2 for support" and send each caller exactly where they need to go.
dialnote's IVR system is built into the visual call flow builder, so you can set up menus, connect them to actions, and even nest menus inside each other — all without writing any code.
Setting up an IVR menu#
IVR menus live inside the call flow builder. To add one:
- Go to Settings → Phone Numbers and select a number.
- Open the Call Flow section and click Configure call flow (or View Complete Flow if the number already has a flow).
- On the canvas, click the + tile and pick Phone Menu in the Select Node Type picker.
- A short two-step wizard ("Phone Menu") walks you through the setup.
Step 1 — Options. Add the choices callers can pick. Click Add your first option, then choose a key from the Pick a key menu (0–9, *, #). Each option shows a "Press N" chip and a label field — type a short label like "Sales" or "Support". Add as many rows as you need. Below the options, two toggles let you handle the edge cases (see Handling errors below).
Step 2 — Voice Prompt. Write the message callers hear (up to 2,000 characters of text-to-speech) or switch to a pre-recorded audio file by pasting an HTTPS URL. dialnote can pre-fill a draft prompt from your option labels, which you can edit. Set Wait for input (seconds) — how long to wait for a key press before the no-input fallback runs. The range is 1–60 seconds and it defaults to 5.
Click Create Phone Menu to add the node. You then wire each option to a destination on the canvas. Every enabled key shows up as its own branch (like "Press 1 · Sales") that ends in a + tile. Click the tile to pick the next step (Ring Team, Voicemail, another Phone Menu, and so on).
Connections happen on the canvas
The wizard only sets up the prompt and the keys. Where each key sends the caller is wired afterward on the canvas. Connect every key and every fallback you turned on: a key with no connection is treated as an invalid key, and an unconnected fallback acts like it's off. Don't forget to click Save Flow when you're done — the builder doesn't save automatically.
Pro tip
Turn on both fallback toggles. A good default is to replay the menu or send the caller to a live agent. With the toggles off, callers who don't press anything — or who press an unmapped key — are disconnected.
What each key press can do#
Every key you enable can connect to any action in the call flow builder:
- Ring Team — connect the caller to your team (Everyone at once or One by one), with an optional waiting call queue
- Voicemail — send to voicemail with a custom greeting
- Play a Message — play a message, then continue to the next action
- Phone Menu — play another IVR menu for sub-menus
- Go To Menu — jump to a Phone Menu that's already in the flow, like replaying this one
- AI Agent — hand off to an AI voice agent
- Business Hours — route differently based on your schedule
- End Call — hang up after an optional message
A single IVR menu can handle everything from simple two-option routing to multi-department flows.
Building multi-level menus#
Need more than a flat menu? Add a Phone Menu step on a key's branch to create nested IVR trees. For example:
Main Menu: "Press 1 for sales, 2 for support"
├── Key 1 → Ring sales team
└── Key 2 → Sub-Menu: "Press 1 for billing, 2 for technical help"
├── Key 1 → Ring billing team
└── Key 2 → Enter support queue
Each sub-menu gets its own prompt, timeout, and key mappings. The editor doesn't set a depth limit, but very deep or wide trees can grow too large to run. So keep it practical: most callers won't navigate more than two or three levels before getting frustrated.
Keep menus short
Aim for 3–5 options per menu. Long menus with 8+ choices make callers lose track and hang up. If you need many options, split them across nested sub-menus instead.
IVR settings and limits#
Here's a quick reference for what you can configure:
| Setting | Range | Default |
|---|---|---|
| Prompt length | Up to 2,000 characters | — |
| Timeout | 1–60 seconds | 5 seconds |
| Input type | DTMF (keypad) | DTMF |
| Digits per press | 1 | 1 |
| Available keys | 0–9, *, # (12 total) | None enabled |
| Minimum keys required | 1 | — |
The prompt uses built-in text-to-speech. You can also point it at a pre-recorded audio file by pasting an HTTPS URL if you'd rather use a custom voice recording.
Single-digit input
Each menu collects one key press at a time. Call flows can't collect multi-digit input (like an account number). IVR menus are designed for quick routing choices.
Handling errors gracefully#
The Options step has two toggles for catching edge cases. When a toggle is on, you wire its destination on the canvas after saving — the same way you wire your regular keys.
- If the caller doesn't press anything — fires when the timeout expires and no key was pressed. Good options: replay the menu, transfer to a live agent, or send to voicemail.
- If they press a key that isn't in the menu — fires when a caller hits an unmapped key. You might replay the menu with a message like "That wasn't a valid option, please try again."
With a toggle off, that path behaves like a hang-up — the caller is disconnected. That's almost never what you want, so turn both on when you build the menu.
What's Next#
- Call flows — the full builder that holds your IVR menus
- Ring groups — connect a menu option to a team
- Business hours — route by time of day
- Call routing overview — how all the pieces fit together