Keypad input settings

Configure how an assistant collects keypad input from callers.

Keypad input settings let an assistant receive dual-tone multi-frequency (DTMF) input from a caller. Use them to collect account numbers, menu selections, confirmation codes, and other keypad entries.

How keypad input works

The assistant processes keypad input when the configured timeout expires or the caller enters a delimiter, whichever happens first. Set the timeout to 0 when input should only be processed after the caller enters a delimiter.

When Vapi processes the collected digits, it adds them to the conversation as a user message, for example, User's Keypad Entry: 1234. The entry is available to the model and is saved in the call’s messages and transcript when transcript artifacts are enabled. See Handle sensitive input before collecting confidential values.

Keypad input receives tones from the caller. The DTMF tool does the opposite: it lets the assistant send keypad tones to another phone system, for example, when navigating an interactive voice response (IVR) menu.

Configure via Dashboard

1

Select an assistant

Open the Dashboard. Select Assistants, then select the assistant you want to configure.

2

Open Keypad Input Settings

Select the Advanced tab, then locate Keypad Input Settings.

3

Enable keypad input

Select Enable Keypad Input.

4

Set the input timeout

Set Timeout from 0 to 10 seconds. Set it to 0 to wait for a delimiter.

5

Choose a delimiter

Under Delimiter, choose # or *.

6

Publish the assistant

Select publish in the unsaved-changes message to apply the update.

API fields

Configure caller keypad input with keypadInputPlan when you create or update an assistant:

FieldTypeBehavior
enabledbooleanEnables caller keypad input. Default is false.
timeoutSecondsnumberWaits 0–10 seconds before processing the collected input. Default is 2 seconds. Set it to 0 to wait for a delimiter.
delimitersstring enumProcesses input when the caller enters # or *. Allowed values are #, *, and "".

This example processes input after 2 seconds or when the caller enters #:

1{
2 "keypadInputPlan": {
3 "enabled": true,
4 "timeoutSeconds": 2,
5 "delimiters": "#"
6 }
7}

Handle sensitive input

Keypad input can collect general caller data, but sensitive values need additional controls. For payment information, follow the PCI compliance guide to isolate collection and prevent sensitive artifacts from being recorded or logged.

Troubleshoot keypad input

SymptomLikely causeWhat to check
Input is processed before the delimiterThe timeout expires first.Increase Timeout, or set it to 0 to require a delimiter.
Input is never processedThe timeout is 0 and the caller did not enter the configured delimiter.Confirm the caller enters the selected Delimiter.
The assistant does not send tones to another systemKeypad input only receives tones from callers.Add the DTMF tool when the assistant must send tones.

Keypad input does not have a dedicated call-ended reason. Review the call transcript and logs to confirm whether the assistant received and processed the caller’s input.