CatGPT
02/02/2026, 5:41 AMChiranjeet Mishra
02/02/2026, 5:41 AMVapi Support Bot
02/02/2026, 5:42 AMexact field instead of prompt to ensure the assistant speaks as expected. Here’s how you can update your hook:
json
{
"hooks": [
{
"do": [
{
"type": "say",
"exact": "Hello, are you still there?"
}
],
"on": "customer.speech.timeout",
"name": "customer_test",
"options": {
"timeoutSeconds": 7.5,
"triggerMaxCount": 3,
"triggerResetMode": "onUserSpeech"
}
}
]
}
This will reliably speak your message on timeout.
For more dynamic responses, use a detailed prompt with context.
Source: [Vapi Assistant Hooks Documentation](https://docs.vapi.ai/assistants/assistant-hooks)CatGPT
02/02/2026, 5:44 AMChiranjeet Mishra
02/02/2026, 6:03 AMCatGPT
02/02/2026, 6:59 AMCatGPT
02/02/2026, 3:14 PMCatGPT
02/03/2026, 3:21 AMChiranjeet Mishra
02/04/2026, 3:56 AMprompt in the say action, it’s producing empty output.
This happens because prompt triggers an LLM call to generate the speech dynamically, and in this case the LLM is returning nothing.
For reliable behavior, we recommend using exact instead of prompt, for example:
{
"hooks": [
{
"do": [
{
"type": "say",
"exact": "Hello"
}
],
"on": "customer.speech.timeout",
"options": {
"timeoutSeconds": 7.5,
"triggerMaxCount": 3,
"triggerResetMode": "onUserSpeech"
}
}
]
}
For logic like “if the user says wait, say nothing; otherwise say _hello_”, we recommend handling that in your system prompt instead. For example:
“If the user goes silent, ask if they’re still there. If the user says ‘wait’, remain silent and wait.”
Alternatively, you can route the hook to a webhook and handle the conditional logic server-side.
Let us know if you want help setting that up.CatGPT
02/04/2026, 4:10 AMChiranjeet Mishra
02/05/2026, 5:25 AM"hooks": [
{
"do": [
{
"type": "tool",
"tool": {
"type": "function",
"function": {
"name": "handleCustomerTimeout",
"description": "Handle customer speech timeout",
"parameters": {
"type": "object",
"properties": {
"transcript": {
"type": "string",
"description": "The conversation transcript"
}
}
}
},
"server": {
"url": "https://your-server.com/webhook/timeout-handler"
},
"messages": [
{
"type": "request-response-delayed",
"content": "One moment please..."
}
]
}
}
],
"on": "customer.speech.timeout",
"name": "customer_timeout_webhook",
"options": {
"timeoutSeconds": 7.5,
"triggerMaxCount": 3,
"triggerResetMode": "onUserSpeech"
}
}
]CatGPT
02/05/2026, 8:10 AMChiranjeet Mishra
02/09/2026, 3:19 AMGET https://api.vapi.ai/call/{callId}RyGuy
02/11/2026, 2:59 PMRyGuy
02/11/2026, 3:00 PM{
on: "customer.speech.timeout",
options: {
timeoutSeconds: 20,
triggerMaxCount: 3,
triggerResetMode: "onUserSpeech",
},
do: [
{
type: "say",
prompt: "....",
},
],
name: "idle_message_check",
}Chiranjeet Mishra
02/11/2026, 3:57 PM