Implement phone menu navigation in call
# support
u
Is there a way to implement a way to combine phone menu navigation together with the live call? The agent might start saying something like.. press 1 for general info, press 2 for schedulling, etc. And then the convo would continue in that specific stream after the respective button is pressed.
v
I can help you set that up in VAPI by combining live voice interaction with keypad (DTMF) input, so when a caller presses a number, the agent automatically continues in that specific flow. It’s fully doable with event-based routing. Do you want the logic handled inside VAPI or through your backend webhook? Once I know that, I can guide you on the best structure for smooth transitions between menu options. @.hardboiledfish
u
ideally through Vapi
v
Perfect — yes, we can do all of this directly through Vapi. Each agent can be built and connected inside your Vapi setup, with clear logic for communication and DTMF triggers. Let’s hop on a quick call and I’ll walk you through setting it up step by step so it runs smoothly. @.hardboiledfish
c
Hi .hardboiledfish, For setting up actions when a call is ringing, you can use phone number hooks. This feature enables actions like playing a message or call transfer without needing extra server-side code. 1. To play a message when a call is ringing, define a hook with a
say
action:
Copy code
json
   {
     "hooks": [{
       "on": "call.ringing",
       "do": [{
         "type": "say",
         "exact": "inbound calling is disabled."
       }]
     }]
   }
2. To transfer a call immediately when it rings, define a hook with a
transfer
action:
Copy code
json
   {
     "hooks": [{
       "on": "call.ringing",
       "do": [{
         "type": "transfer",
         "destination": {
           "type": "number",
           "number": "+1234567890",
           "callerId": "+1987654321"
         }
       }]
     }]
   }
For more detailed information, you can refer to the [phone number hooks guide](https://docs.vapi.ai/phone-numbers/phone-number-hooks) and the recent [changelog updates](https://docs.vapi.ai/changelog/2025/4/17). If you have any further questions or need more assistance, feel free to ask!
u
I don't think you're answering my question!
I'm trying to build an inbound call receiptionist. I want the first message to say something like.. press 1 for X, press 2 for Y, press 3 for A. Caller will make the selection with keypad and the convo will continue from there.
c
Hi there, You can implement phone menu navigation directly in Vapi using a prompt-based routing approach, which is the simplest way to handle DTMF (keypad) inputs. Here’s an example setup you can use:
Copy code
{
  "model": {
    "provider": "openai",
    "model": "gpt-4o-mini",
    "messages": [
      {
        "role": "system",
        "content": "You are a customer service assistant. When the call starts, say: 'Welcome! Press 1 for Sales, Press 2 for Support, or Press 3 for Billing.'\n\nBased on the user's keypad input:\n- If they press 1: You are now a Sales specialist. Help them with product information and purchasing.\n- If they press 2: You are now a Support specialist. Help them troubleshoot technical issues.\n- If they press 3: You are now a Billing specialist. Help them with payment and account questions.\n\nAlways acknowledge their selection before proceeding."
      }
    ]
  },
  "firstMessage": "Welcome! Press 1 for Sales, Press 2 for Support, or Press 3 for Billing.",
  "keypadInputPlan": {
    "enabled": true,
    "timeoutSeconds": 5,
    "delimiters": [
      "#",
      ""
    ]
  }
}
Note: Setting
delimiters: [""]
(with an empty string) means single key presses are processed immediately, without needing to press
#
. This configuration allows the AI to interpret the caller’s selection and continue the conversation in the corresponding “flow” seamlessly.
u
that's wild that it can detect tones natively?
c
Yes, thats a feature that was implemented into our platform a while back.
2 Views