🇪🇸 Español 🇬🇧 English 🇧🇷 Português
Guides

How to build an IVR step by step: a DTMF options menu

Step-by-step tutorial to build an IVR in Omnifox: Play audio, Wait for DTMF digit, Transfer to team, Voicemail and Submenu, with pre-generated TTS audio.

July 11, 2026

A good IVR (phone menu) answers the call, greets the caller, offers options and routes each person to the right place without leaving them waiting. In Omnifox the IVR is built in its own visual editor, under Channels -> Calls, separate from the chat workflow editor. Here is how to build an IVR step by step by chaining real nodes: Play audio, Wait for DTMF digit, Transfer to team, Voicemail and Submenu.

Keep in mind that call nodes require a plan with the calling feature enabled. With that in place, let's begin.

Step 1: the entry node and the greeting

Every IVR starts at an entry node that fires on the incoming call. The first thing you connect is a Play audio: the greeting the caller hears.

This node does multi-language TTS (text to speech) or plays a custom audio you upload, and it supports barge-in, meaning the caller can interrupt the message by pressing a key without waiting for it to finish. A typical script:

"Thanks for calling Omnifox. For sales press 1, for support 2, for billing 3, or stay on the line to leave a message."

Flow so far: entry -> Play audio (greeting with options).

Step 2: the menu with Wait for DTMF digit

The heart of the menu is the Wait for DTMF digit node. It captures the key the caller presses and opens one edge (exit) per digit: one for 1, one for 2, one for 3, and so on. Each exit leads to a different destination.

Also configure:

  • Timeout: how long it waits before giving up on a response.
  • Retries: if nothing is pressed, you can loop back to Play audio with the menu.
  • Default exit: where it goes if the digit matches no option.

Flow: Play audio -> Wait for DTMF digit with edges 1, 2, 3 and a timeout exit.

Step 3: route each option

Now connect each digit to its destination. The three most common patterns:

a) Transfer to a team. The Transfer to team node spreads the call across a team's agents with strategies like round_robin, ring_all or first_available. Ideal for the "sales" or "support" option.

  • Digit 1 (sales) -> Transfer to team Sales (round_robin).
  • Digit 2 (support) -> Transfer to team Support (first_available).

If you prefer a specific agent over SIP, use Transfer to agent instead of the team node.

b) Voicemail. For the "leave a message" case or when no one is available, connect a Voicemail. This node records the message, transcribes it with AI, sends an email to the admin and creates a conversation in the inbox for follow-up. Perfect for after-hours or overflow.

c) Submenu. If an option has sub-options (for example, billing -> payments / subscriptions), use the Submenu node, which reuses another IVR you already built. That keeps each menu small and modular instead of one giant tree.

  • Digit 3 (billing) -> Submenu -> "Billing" IVR (with its own Play audio + Wait for DTMF digit).

Step 4: tie up the loose ends

A professional IVR never leaves calls hanging. Wire the remaining exits:

  1. Timeout / no digit -> loop back to Play audio once or twice, and if still no answer, to Voicemail.
  2. Invalid digit -> Play audio "Invalid option" -> back to Wait for DTMF digit.
  3. End of call -> a Hang up node where appropriate.

The full flow at a glance

Entry
  -> Play audio (greeting + options)
  -> Wait for DTMF digit
       1 -> Transfer to team (Sales, round_robin)
       2 -> Transfer to team (Support, first_available)
       3 -> Submenu (Billing IVR)
       timeout -> Play audio (repeat) -> Voicemail
       invalid -> Play audio (error) -> Wait for DTMF digit

Publishing: TTS audio is pre-generated

When you publish the IVR, Omnifox pre-generates the TTS audio for every Play audio node. This avoids latency on the live call, because the audio is ready and not synthesized on the fly. If you edit a text, republish to regenerate that audio.

Common mistakes and tips

  • Long menus tire callers. Do not put more than 4 or 5 options per Wait for DTMF digit; if you need more, split into a Submenu.
  • Use the barge-in in Play audio: frequent callers appreciate not hearing the whole menu.
  • Always keep a "human or voicemail" exit for anyone who fits no option.
  • Test with a real call before calling the IVR done; the flow feels different when you hear it.
  • Name reusable IVRs clearly so you can wire them as a Submenu.

With these five nodes you already have a complete, professional phone menu. You can design it by dragging boxes in the Omnifox call editor and publish it in minutes. Start simple with three options and grow toward submenus as your phone operation demands.

Comentarios (0)

Todavía no hay comentarios. Sé el primero en compartir tu opinión.

Dejá un comentario

Tu email nunca se publica. Los comentarios se moderan antes de aparecer.

Soporta markdown. El HTML se elimina.