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

# Nested and conditional menus

> Build a menu inside a menu for a multi-level phone tree, and what Get2Dial can't branch on inside one.

A menu option can point to another menu instead of a queue or extension, which is how you build
a multi-level phone tree. There's no branching logic inside an IVR beyond that — no
time-of-day or caller-based conditions live in the menu itself.

## How it works

Connecting an option to another menu (a **submenu**) transfers the call to that menu's own
extension. The submenu then behaves exactly like a top-level menu — it plays its own greeting,
listens with its own timeout and retry settings, and has its own fallback. There's no built-in
"back to the previous menu" digit; if you want one, add an option on the submenu that connects
back to the parent menu's extension yourself.

There's no depth limit on nesting.

## When to use it

Use nesting when a caller's first choice narrows what their second choice can be — "Press 2
for support, then 1 for billing or 2 for technical". Keep menus shallow where you can: each
extra level is another chance for a caller to hang up before reaching an agent.

## What it affects

**IVR menus don't branch on anything other than the digit pressed.** There's no caller-ID or
business-hours condition inside a menu. To route different callers to different menus, use a
[caller ID rule](/voice/caller-id-rules) pointing at different menu extensions before the call
reaches the IVR — the closest equivalent Get2Dial has to conditional routing today.

## Next steps

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

  <Card title="Route inbound calls by caller ID" href="/voice/caller-id-rules" />
</CardGroup>
