Will Santiago
09/28/2025, 3:39 PMjson
{
"success": false,
"speak": "Sorry. We don't have availability for that day",
"error": false
}
2. Request Failed configured in VAPI:
- Condition: $.results[0].result.success Equal false
- Content: {{ $.results[0].result.speak }}
3. PROBLEM: Instead of saying "Sorry. We don't have availability for that day", the assistant is speaking a completely different message: "Sorry, Will, we don't have availability for October 14th at 6 PM. Would you like to try another date or time?"
WHAT I'VE ALREADY TRIED:
- Verify that toolCallId is correct
- Confirm that webhook returns HTTP 200
- Validate JSON response
- Clear cache and redo tests
- Test different condition formats ($.success, $.results[0].result.success)
QUESTION:
Why is VAPI ignoring the speak field from the webhook response and using a message that I didn't configure anywhere? Is there some precedence between Request Failed and the speak field of the tool response that I don't know about?
SETUP:
- VAPI tool connected with n8n webhook
- Webhook returns standard structure with toolCallId and result
- Request Complete works normally for success: true
Has anyone experienced this before? Any help would be appreciated!Chiranjeet Mishra
09/28/2025, 3:39 PMVapi Support Bot
09/28/2025, 3:40 PMjson
{
"results": [
{
"toolCallId": "your-tool-call-id",
"result": "Sorry. We don't have availability for that day"
}
]
}
If your webhook response is not wrapped in a results array with a toolCallId and a single-line result, VAPI may ignore it and use a fallback message instead. Can you confirm if your webhook matches this format?
Sources:
- [Custom Tools Troubleshooting](https://docs.vapi.ai/tools/custom-tools-troubleshooting)
- [Custom Tools](https://docs.vapi.ai/tools/custom-tools)Chiranjeet Mishra
10/01/2025, 6:43 AM