> ## 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.

# Build an IVR menu

> Create an IVR menu with a greeting, an extension, and a destination for each digit a caller can press.

Create an IVR menu: a greeting, an extension for other things to route to, and a destination
for each digit a caller can press.

## Before you start

* [Upload the greeting audio you want](/inbound/prompts-and-audio-library) before you start —
  you can't record one in the builder.
* Decide each option's destination ahead of time — a queue, an extension, or another menu.

## Steps

<Steps>
  <Step title="Go to the IVR builder">
    In the left navigation, select **IVR builder**, then create a new menu.
  </Step>

  <Step title="Name it and set an extension">
    Enter a **Name** and an **Extension** — the internal number other things (routing rules,
    other menus) use to reach this one.
  </Step>

  <Step title="Set the greeting">
    Choose the **Greeting audio** to play when a caller reaches this menu.
  </Step>

  <Step title="Add an option for each digit">
    For each digit you want to handle, connect it to a destination: a **queue**, an
    **extension**, or **another menu** (to nest one menu inside another).
  </Step>

  <Step title="Set what happens on invalid input">
    Choose an **Invalid audio** to play when a caller presses something unmapped, and set the
    [timeout and retry behavior](/inbound/ivr/dtmf-and-timeouts) for silence.
  </Step>

  <Step title="Save the menu">
    Select **Save**.
  </Step>
</Steps>

## Verify

<Check>
  [Test the menu](/inbound/ivr/test-an-ivr) in the builder before pointing anything at it. Once
  it behaves the way you expect, route a phone number or caller ID rule to its extension and
  call in to confirm end to end.
</Check>

## Common problems

* **A caller presses a digit and nothing happens.** Confirm that digit has an option connected
  — an unconnected digit falls through to the timeout action, not an error.
* **The menu isn't reachable at all.** Nothing points to it yet — see [IVR
  menus](/inbound/ivr/overview#what-it-affects).

## Next steps

<CardGroup cols={2}>
  <Card title="DTMF and timeouts" href="/inbound/ivr/dtmf-and-timeouts" />

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