Issue in function call in vapi
# support
r
Every time I try to call a function using Agent first time I get this type of error: No result returned for call_YAjKrcYLRDTCS59PFbFd554V, but booking is already done in google calnder
v
Thank you for sharing the error. To help diagnose the issue, could you please confirm if your server is returning the required JSON response with the correct "toolCallId" and "result" fields when the function is called? This is essential for Vapi to process the function result correctly. Sources: - [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools) - [Server Events & Function Calling](https://docs.vapi.ai/server-url/events)
r
Copy code
{
  "results": [
    {
      "toolCallId": "",
      "result": "Great, your appointment has been booked. "
    }
  ]
}
getting this in response
@Support.Voice-Agent
Copy code
{
  "results": [
    {
      "toolCallId": "",
      "result": "Great, your appointment has been booked. "
    }
  ]
}
{ "id": "5f99b6fd-8dfa-40e0-921f-86970838d5d8", "createdAt": "2025-07-25T10:22:19.789Z", "updatedAt": "2025-08-07T09:40:11.417Z", "type": "function", "function": { "name": "RoofingBookingUSA", "description": "Sends data from Vapi to a Make.com scenario via webhook.\n", "parameters": { "type": "object", "properties": { "BookingTime": { "description": "", "type": "string", "default": "" }, "ServiceType": { "description": "", "type": "string", "default": "" }, "CustomerName": { "description": "", "type": "string", "default": "" } }, "required": [ "BookingTime", "ServiceType", "CustomerName" ] } }, "messages": [ { "type": "request-start", "blocking": false } ], "orgId": "1db2c2ef-30ec-41ed-beea-19c90b6a217f", "server": { "url": "https://hook.eu2.make.com/opys292kb0x3o5y67ggi7sxk4w0p37no", "headers": {} } } here is tool code
@Vapi Support Bot please check and follow up
v
You must return the exact "toolCallId" you receive from Vapi in your response. Here's a code snippet to illustrate the correct pattern (in Node.js/Express style):
Copy code
js
// Example handler for Vapi tool call webhook
app.post('/your-webhook', (req, res) => {
  const toolCallId = req.body.message.toolCallList[0].id; // Extract from incoming request
  res.json({
    results: [
      {
        toolCallId: toolCallId,
        result: "Great, your appointment has been booked."
      }
    ]
  });
});
Update your server logic to extract and return the correct "toolCallId" as shown above. This should resolve the "No result returned" error. [See Vapi docs for details](https://docs.vapi.ai/tools/custom-tools#server-response-format-providing-results-and-context) Source: - [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)
r
where I need to put this code?
@Vapi Support Bot
v
You should place the provided code inside your backend server's route handler that receives POST requests from Vapi (i.e., the webhook endpoint you set in your tool's "server.url" field). For example, if you're using Express, add this to your server file:
Copy code
js
app.post('/your-webhook', (req, res) => {
  const toolCallId = req.body.message.toolCallList[0].id;
  res.json({
    results: [
      { toolCallId, result: "Great, your appointment has been booked." }
    ]
  });
});
Replace
'/your-webhook'
with the actual path you configured for Vapi to call. [See Vapi docs for details](https://docs.vapi.ai/tools/custom-tools#server-response-format-providing-results-and-context) Source: - [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)
r
using make.com @Vapi Support Bot
v
Thank you for clarifying that you're using Make.com as your webhook endpoint. Can you confirm if your Make.com scenario is set up to extract the "toolCallId" from the incoming request and include it in the JSON response back to Vapi, as required by the [Vapi custom tools documentation](https://docs.vapi.ai/tools/custom-tools#server-response-format-providing-results-and-context)? This step is essential for resolving the "No result returned" error. Source: - [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools)
r
che here @Vapi Support Bot
v
To resolve the "No result returned" error in Vapi when using Make.com, ensure your final Webhook Response module outputs the following JSON, mapping
toolCallId
from the incoming request:
Copy code
json
{
  "results": [
    {
      "toolCallId": "{{1.message.toolCallList[0].id}}",
      "result": "Great, your appointment has been booked."
    }
  ]
}
In Make.com, use the variable selector to insert the correct path for
toolCallId
from the incoming webhook payload into your response.
[See Vapi docs for details](https://docs.vapi.ai/tools/custom-tools#server-response-format-providing-results-and-context) Source: - [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools#server-response-format-providing-results-and-context)
k
To help track down this issue, could you share one or two: - The call ID - When exactly this happened (the timestamp) - What response you expected to get - What response you actually got instead This would really help us figure out what went wrong!
r
{ "results": [ { "toolCallId": "{{3.choices[].message.tool_calls[].id}}", "result": "Great, your appointment has been booked. " } ] } final webhook response is this @Vapi Support Bot
v
It looks like your webhook response is using
{{3.choices[].message.tool_calls[].id}}
for
toolCallId
, but Vapi expects
{{1.message.toolCallList[0].id}}
.
Can you confirm if you have mapped the
toolCallId
in Make.com exactly as
{{1.message.toolCallList[0].id}}
from the incoming webhook payload? Source: - [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools#server-response-format-providing-results-and-context)
r
Ok, sure, let me give more details about what happens. I have an inbound voice agent with VAPI and Make.com. In make.com, I have set up the EST time zone in my workflow so my booking is done accordingly. Now the first time when a customer asks for a time slot, the agent says the time slot is not available, but it actually books the appointment and gets this error. No result returned for call_YAjKrcYLRDTCS59PFbFd554V in vapi
Ok, sure, let me give more details about what happens. I have an inbound voice agent with VAPI and Make.com. In make.com, I have set up the EST time zone in my workflow so my booking is done accordingly. Now the first time when a customer asks for a time slot, the agent says the time slot is not available, but it actually books the appointment and gets this error. No result returned for call_YAjKrcYLRDTCS59PFbFd554V in vapi @Vapi Support Bot
v
To resolve the "No result returned" error, update your final Webhook Response module in Make.com to output the following JSON, making sure to map
toolCallId
as
{{1.message.toolCallList[0].id}}
from the incoming webhook payload:
Copy code
json
{
  "results": [
    {
      "toolCallId": "{{1.message.toolCallList[0].id}}",
      "result": "Great, your appointment has been booked."
    }
  ]
}
Use the variable selector in Make.com to insert this exact path. This should ensure Vapi receives the correct response and eliminates the error. [See Vapi docs for details](https://docs.vapi.ai/tools/custom-tools#server-response-format-providing-results-and-context) Source: - [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools#server-response-format-providing-results-and-context)
r
yes did it but now getting this { "results": [ { "toolCallId": "", "result": "Unfortunately, your chosen time slot was already booked. However, I can offer you these available alternatives: 6:31 to 6:46 AM, 7:01 to 7:16 AM, or 7:16 to 7:31 AM. Let me know which one works best for you!" } ] }
@Vapi Support Bot
v
It looks like your "toolCallId" is still coming through as empty, which means Make.com is not mapping it correctly from the incoming webhook. In your Make.com Webhook Response module, set the
toolCallId
field to
{{1.message.toolCallList[0].id}}
using the variable selector from the incoming payload (not a hardcoded or empty value):
Copy code
json
{
  "results": [
    {
      "toolCallId": "{{1.message.toolCallList[0].id}}",
      "result": "Unfortunately, your chosen time slot was already booked. However, I can offer you these available alternatives: 6:31 to 6:46 AM, 7:01 to 7:16 AM, or 7:16 to 7:31 AM. Let me know which one works best for you!"
    }
  ]
}
Double-check that the variable path matches the actual incoming payload structure in your scenario. If the path is different, use Make.com's variable selector to find the correct one from the webhook data. Source: - [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools#server-response-format-providing-results-and-context)
v
Message marked as helpful by @✞Penclone! 🎉
r
everything is okay but getting this first time No result returned for call_srOEj6zePSwRSFrU6vjOfqM6.
inspite of the error it book appoitments in google calendar but giving value iv vapi like I said No result returned for call_srOEj6zePSwRSFrU6vjOfqM6. @Vapi Support Bot
v
Quick check: In Make.com, when you test your scenario with a sample webhook payload, does the variable selector for
{{1.message.toolCallList[0].id}}
actually show a value (not empty) in the response preview? This will confirm if the mapping is correct or if the payload structure needs adjustment. Source: - [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools#server-response-format-providing-results-and-context)
r
Input Bundle 1Collection Body { "results": [ { "toolCallId": "", "result": "Great, your appointment has been booked. " } ] } Status 200 Custom headersArray this is the output of custom web hook, though it shows error in vapi but books in google calendar @Vapi Support Bot
v
Your webhook response is still missing the correct
toolCallId
value, which is why Vapi shows "No result returned."
In Make.com, open your Webhook Response module and use the variable selector to map
toolCallId
to the actual value from the incoming payload—**it should look like
{{1.message.toolCallList[0].id}}
only if that path exists and is not empty in your test data**.
Copy code
json
{
  "results": [
    {
      "toolCallId": "{{1.message.toolCallList[0].id}}",
      "result": "Great, your appointment has been booked."
    }
  ]
}
Test your scenario with a real webhook payload and confirm in the response preview that
toolCallId
is populated—if not, use the variable selector to find the correct path from the incoming data.
[See Vapi docs for details](https://docs.vapi.ai/tools/custom-tools#server-response-format-providing-results-and-context) Source: - [Custom Tools Documentation](https://docs.vapi.ai/tools/custom-tools#server-response-format-providing-results-and-context)
c
Share your call_id