> For the complete documentation index, see [llms.txt](https://docs.ilert.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ilert.com/call-routing/call-flows/ivr-menu-node.md).

# IVR menu node

The **IVR menu** node plays a menu to the caller and routes them based on the key they press (DTMF input) — for example *"Press 1 for production incidents, press 2 for billing."* It adds one branch per key you enable — the digits `0`–`9`, `*`, and `#` (up to 12) — plus a `No input` branch.

## Select the menu keys

1. *(Optional)* In the **Optional title** field, enter a name to label the node on the canvas.
2. Under **Select menu items**, tap the keys the caller is allowed to press (`1`–`9`, `0`, `*`, `#`). Each key you select becomes its own branch in the flow.

## Record the menu prompt

1. Under **Message type**, choose how the prompt is delivered:
   * **Text to speech** – type the prompt in the **IVR instructions** field and it is spoken using the call flow's selected [voice](/call-routing/call-flows.md#use-ilert-ai-to-turn-text-into-speech).
   * **Sound file** – upload your own audio recording.
2. Use the **Preview** player to listen to the prompt before saving.

<figure><img src="/files/Goou6NpA1MQJAACRk8iv" alt="IVR menu node configuration" width="375"><figcaption><p>IVR menu node configuration — keypad, message type, instructions and retries</p></figcaption></figure>

## Set retries

Use the **Retries** setting to control how many times the menu prompt is replayed if the caller provides no input or an invalid key before the flow follows the `No input` branch (default: `1`, maximum `3`).

## Branches

The IVR menu node adds one branch per selected key, plus a fallback branch. Click the **+** icon under each branch to define what happens next.

| Branch                                         | Taken when                                                   |
| ---------------------------------------------- | ------------------------------------------------------------ |
| One branch per selected key (`1`, `2`, `*`, …) | The caller presses that key.                                 |
| `No input`                                     | The caller presses nothing valid within the allowed retries. |

<figure><img src="/files/XYtBH9867JPuWxfxHJVf" alt="IVR menu branches per selected key plus No input"><figcaption><p>Each selected key becomes a branch, plus a "No input" branch</p></figcaption></figure>

## Example

A first-level menu that splits by team:

* **1** → [Route call](/call-routing/call-flows/route-call-node.md) to the infrastructure on-call schedule.
* **2** → [Route call](/call-routing/call-flows/route-call-node.md) to the billing schedule.
* **No input** → **Audio message** ("We didn't receive a selection") → **Voicemail**.

## FAQ

**How many options can one menu have?**\
Up to 12 — the digits `0`–`9`, plus `*` and `#`.

**Can I build multi-level menus?**\
Yes. Add another IVR menu node on any key's branch to create a sub-menu.

**What happens if the caller doesn't press anything?**\
The prompt is replayed according to the **Retries** setting; once retries are exhausted, the call follows the `No input` branch.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ilert.com/call-routing/call-flows/ivr-menu-node.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
