ronnypg
06/18/2025, 5:11 PMa028a49f-13a1-4a07-8c9b-143675f83290
with a #
at the end, code 1234#
- 38a9f402-8d7b-42d4-960c-05d694d0e205
without a #
at the end, code 1234
Timestamp:
- Roughly 16:57:23:938
(June 18, 2025)
Response expected:
- "You have entered 1234."
Response received:
- Nothing (silence)
- Call ended after silence timeoutVapi Support Bot
06/18/2025, 5:13 PMjson
{
"keypadInputPlan": {
"enabled": true,
"delimiters": "#",
"timeoutSeconds": 2
}
}
Make sure your webhook or assistant logic is set up to handle keypad input events and respond accordingly. If you still get silence, double-check that keypadInputPlan
is enabled and review your webhook logs for incoming keypad input events.
[See more details in the Vapi changelog.](https://docs.vapi.ai/changelog/2025/2/27)
Sources:
- [Vapi Changelog: February 27, 2025](https://docs.vapi.ai/changelog/2025/2/27)
- [Vapi Default Tools: DTMF/Keypad Input](https://docs.vapi.ai/tools/default-tools)ronnypg
06/18/2025, 5:16 PMkeypadInputPlan
enabled as such:
keypadInputPlan: {
enabled: true,
timeoutSeconds: 0.5,
},
ronnypg
06/18/2025, 5:16 PMmessages: [
{
role: "system",
content: `You are a helpful customer support assistant for ACME Corporation.
[Identity]
- You are friendly, efficient, and knowledgeable
- You help customers with product information, order status, and basic troubleshooting
[KEYPAD INPUT HANDLING]
- Monitor for keypad inputs from the user
- Capture the keypad input and save it as the variable 'code'.
- If the user presses '#' at any time, then they are done entering their code. Store the keypad input as 'code', excluding the '#' keypress.
- Once the keypad input is complete, repeat back the 'code' to the user.
- If the user does not press '#' within 2 seconds, then assume they are done entering their code and repeat back the 'code' to the user.
[Important]
- When a user's keypad input is detected, it will appear in the conversation as: "User's Keypad Entry: X" where X is the digit pressed`,
},
]
ronnypg
06/18/2025, 5:18 PMVapi Support Bot
06/18/2025, 5:19 PMronnypg
06/18/2025, 5:23 PMVapi Support Bot
06/18/2025, 5:25 PMKyle
06/19/2025, 8:39 PM{
"keypadInputPlan": {
"enabled": true,
"timeoutSeconds": 2,
"delimiters": []
}
}
ronnypg
06/23/2025, 5:08 PMKeypadInputPlan
, which also state that the delimiter is an optional field. Is it actually a required field?
export interface KeypadInputPlan {
/**
* This keeps track of whether the user has enabled keypad input.
* By default, it is off.
*
* @default false
*/
enabled?: boolean;
/**
* This is the time in seconds to wait before processing the input.
* If the input is not received within this time, the input will be ignored.
* If set to "off", the input will be processed when the user enters a delimiter or immediately if no delimiter is used.
*
* @default 2
*/
timeoutSeconds?: number;
/**
* This is the delimiter(s) that will be used to process the input.
* Can be '#', '*', or an empty array.
*/
delimiters?: Vapi.KeypadInputPlanDelimiters;
}
/**
* This is the delimiter(s) that will be used to process the input.
* Can be '#', '*', or an empty array.
*/
export type KeypadInputPlanDelimiters = "#" | "*" | "";
export declare const KeypadInputPlanDelimiters: {
readonly Hash: "#";
readonly Asterisk: "*";
readonly Empty: "";
};
ronnypg
06/24/2025, 4:28 PM#
or empty ""
, and it's still failing to acknowledge any keypad input.Kyle
06/24/2025, 10:00 PMronnypg
06/25/2025, 1:33 PMc1fa8414-00d1-423d-b142-f5693289fca1
with the delimiter set as ""
2. f9768ff3-e48b-42f1-b018-7a8a0c4ade51
with the delimiter set as #
Keypad Input Config
keypadInputPlan: {
enabled: true,
timeoutSeconds: 0.5,
delimiters: "#",
},
ronnypg
06/25/2025, 1:34 PMKyle
06/26/2025, 10:55 PMronnypg
06/27/2025, 2:55 PM*
and #
- Is the "keypad-input" a valid option? It didn't exist in the server message dropdown or in the Node SDK Typings
Here are three call IDs for the Assistant I created in the dashboard:
- cc0bf13c-d293-4c5a-bcce-92105bc447fe
(Jun 27, 2025, 09:53)
- a3ccd2e1-2330-4690-85d3-870d14bd9128
(Jun 27, 2025, 09:44 )
- 18b8e014-dc5e-4224-88c5-b8f453356334
(Jun 27, 2025, 08:51)ronnypg
06/27/2025, 2:55 PMronnypg
06/27/2025, 3:01 PMKyle
06/29/2025, 9:05 PMronnypg
06/30/2025, 2:40 PMc25654ef-1a8e-44ab-b6ae-9b2dd9a34707
(Jun 30, 2025, 09:34)
- 7e9301dc-6126-4be2-b891-43d1280bc8b2
(Jun 30, 2025, 09:32)
- 11c6da0b-83f0-4563-999f-a392fd07c18b
(Jun 30, 2025, 09:27)ronnypg
06/30/2025, 9:10 PM[Identity]
- You are a customer service assistant for ACME Corporation, providing professional and clear support.
- You are friendly, efficient, and knowledgeable.
- You assist customers with product information, order status, and basic troubleshooting.
- You speak in a clear, calm, and professional manner.
[Style]
- Maintain a friendly and supportive tone.
- Use polite and professional language.
- Keep responses concise and to the point.
[Response Guidelines]
- Use plain language to confirm information and ask clarifying questions if needed.
- Monitor for and accurately capture keypad inputs.
- If numbers are mentioned, ensure clarity by spelling them out when necessary.
[Task & Goals]
1. Greet the user warmly and request their identity verification code, which is a 4-digit number.
<wait for keypad input>
2. Monitor and record the user's 4-digit keypad input as `code` once received. Listen for input completion either by `#` or `*`, or an absence of input within 3 seconds.
3. Politely confirm and repeat the `code` back to the user by saying: "The code you entered is: [code]. Thank you."
4. If incomplete after 3 seconds, repeat the code received thus far.
[Error Handling / Fallback]
- If no response is received, gently remind the user to enter their code.
- If an error occurs in capturing the input, apologize and request the user to enter their code again.
[Additional Instructions]
- Capture keypad input and log any sequence of pressed numbers, disregarding `#` or `*`, as `User's Keypad Entry: X` (where 'X' is the digit pressed).
- Provide confirmations promptly to maintain an efficient flow of interaction.
ronnypg
06/30/2025, 9:11 PMKyle
07/01/2025, 11:21 PMronnypg
07/02/2025, 4:26 PMKyle
07/03/2025, 2:40 AM