> ## Documentation Index
> Fetch the complete documentation index at: https://docs.get2dial.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IVR menus

> How an IVR menu plays a greeting, listens for a digit, and sends the call somewhere based on what the caller pressed.

An IVR menu plays a greeting, waits for the caller to press a digit, and sends the call
somewhere based on what they pressed — "Press 1 for sales, 2 for support."

## How it works

A menu has a **greeting**, up to twelve **options** (digits `0`–`9`, `*`, and `#`), and a
**timeout action** for when the caller presses nothing or something unmapped. Each option
sends the call to a **queue**, an **extension**, another **menu** (a submenu, for nesting), or
**hangs up**. A menu also has its own dial-in extension, so it can be a
[routing rule](/inbound/route-an-inbound-number) destination itself.

```mermaid theme={null}
flowchart LR
    A[Caller reaches the menu] --> B[Greeting plays]
    B --> C{Digit pressed?}
    C -->|Matches an option| D[Queue, extension, submenu, or hang up]
    C -->|No match or no input| E[Timeout action]
```

## When to use it

Use an IVR menu when callers need to self-select where they're going — different departments,
different languages, or an after-hours message. Skip it and route straight to a queue when
there's only one place a call can go; an extra menu step adds friction without adding routing
value.

## What it affects

An IVR menu is only reachable once something points to it — a [routing
rule](/inbound/route-an-inbound-number), a [caller ID rule](/voice/caller-id-rules), or another
menu's option. Building a menu with nothing pointing to it doesn't do anything.

## Limits and constraints

There's no limit on how many menus a workspace can create, or how deep menus can nest. See
[Limits and quotas](/reference/limits-and-quotas).

## Next steps

<CardGroup cols={2}>
  <Card title="Build an IVR menu" href="/inbound/ivr/build-a-menu" />

  <Card title="Test an IVR menu" href="/inbound/ivr/test-an-ivr" />
</CardGroup>
