I’m having trouble with a VAPI tool function that connects to an n8n workflow for checking appointment availability. The n8n workflow executes without issues and generates the correct available dates, but VAPI only shows “Success” instead of the actual data I’m sending.
What I’m sending to VAPI:
{
"name": "check_availability_tool",
"role": "tool_call_result",
"result": {
"available": false,
"suggested_dates": [ "{{ $json.response.result.available_slots[0] }}" ]
},
"toolCallId": "{{ $('Webhook').first().json.body.message.toolCalls[0].id }}"
}
What VAPI actually receives:
{
"name": "check_availability_tool",
"role": "tool_call_result",
"time": 1750086569063,
"result": "Success.",
"toolCallId": "call_H7ay2CXXXX1ALjCEZ25XXXXX",
"secondsFromStart": 24.924
}
I’ve tried different approaches including sending just the date string, restructuring the JSON format, and separating the result fields, but none worked. Has anyone encountered this issue before?
had the same frustrating issue last month! Turns out VAPI has strict validation on the result field - it defaults to “Success” if there’s any formatting issues. Try wrapping your entire response in quotes first, then gradually add complexity back. also double-check your n8n webhook response node settings - mine was set to “respond immediately” which caused data truncation.
I’ve hit this exact issue before with VAPI tool responses. VAPI’s treating your complex JSON like a basic success message instead of processing the actual data structure. Try flattening your response - send the result as a stringified JSON object, not a nested structure. What worked for me: put your JSON data in the result field as a single string, then let VAPI parse it on the other end. Also check that your n8n workflow’s outputting data in VAPI’s exact format. Sometimes the problem’s in the data transformation step, not the transmission. Since you’re getting the right toolCallId, the connection works - something’s breaking in the result parsing.
I’ve encountered similar issues with VAPI where the output is simplified to just ‘Success.’ from a more complex response. A common cause can be the formatting of the response from the n8n workflow. Ensure that the Content-Type header in your HTTP response node is set to application/json. It’s crucial to match the VAPI schema precisely. Nested objects in the result field can be problematic, so consider sending the entire result as a stringified JSON object. Additionally, verify that your n8n workflow actually sends the response to VAPI and isn’t just processing internally. Starting with a straightforward response might help isolate the issue.