Webhook to Vapi doesnt work, despite observing the correct setup

hey everyone
i have been trying to use the webhook function from VAPI, it doesn’t work for me for some reason. i have used the live workflow button, used the prod webhook URL, and tested the webhook, and it gives code 200, but i never get the webhook to get the data from vapi

no error messages whatsoever, just nothing happens.
i have 2 projects with this issue, so please read carefully and let me know if you don’t understand, cheers.
(i added both the workflows and the function tools setup from vapi for context)

  1. My first workflow (inbound calls to vapi and using a webhook to grab Email for interested leads)

this is my json setup function tool in VAPI

{
  "id": "34aa7f7b-4853-433b-8b7e-26ab1065ec4d",
  "createdAt": "2025-05-21T20:35:33.997Z",
  "updatedAt": "2025-05-21T20:40:28.590Z",
  "type": "function",
  "function": {
    "name": "Vapi-email",
    "description": "Send the email to the webhook to send the user a payment link.",
    "parameters": {
      "type": "object",
      "properties": {
        "email": {
          "description": "The email from the call to be parsed to n8n webhoook",
          "type": "string"
        }
      },
      "required": []
    }
  },
  "orgId": "3da6c047-ab8f-4dab-8e84-a0ec4abbeb45",
  "server": {
    "url": "https://deepay.app.n8n.cloud/webhook/vapi-email",
    "headers": {}
  }
}

i am trying to get output from vapi, i have set a function tool and used the prod URL in there.

  1. Here is a second workflow for outbound calls with vapi I am calling leads in a sheet

then i am using a webhook to grab the data from call(instead of polling)

but i never get any response from, the VAPI API,
here is my VAPI function tool setup json

{
  "id": "4ca5a2eb-d91f-4b94-97fb-cc9cacb599d5",
  "createdAt": "2025-05-22T21:43:09.140Z",
  "updatedAt": "2025-05-22T21:53:15.004Z",
  "type": "function",
  "function": {
    "name": "ApiCall",
    "description": "Grab Call data and return to the webhook.",
    "parameters": {
      "type": "object",
      "properties": {
        "Name": {
          "description": "Name of caller",
          "type": "string"
        },
        "Email": {
          "description": "User email address from the call ",
          "type": "string"
        },
        "LeadID": {
          "description": "Lead ID for each caller",
          "type": "string"
        },
        "status": {
          "description": "call status",
          "type": "string"
        },
        "outcome": {
          "description": "call outcome",
          "type": "string"
        },
        "Interest": {
          "description": "user interest in service",
          "type": "string"
        },
        "PhoneNumber": {
          "description": "Phone number of the user",
          "type": "number"
        }
      },
      "required": [
        "Name",
        "PhoneNumber",
        "status",
        "outcome",
        "Interest",
        "Email"
      ]
    }
  },
  "orgId": "3da6c047-ab8f-4dab-8e84-a0ec4abbeb45",
  "server": {
    "url": "https://deepay.app.n8n.cloud/webhook/Vapi-callWebhook",
    "headers": {}
  }
}

Information on your n8n setup

  • n8n cloud:
  • n8n EXECUTIONS_PROCESS setting (default: own, ):
  • **Running n8n via n8n cloud
  • Windows 11:

Hello @Mudy_Edogun welcome to n8n community!


Here are some tips for using the Webhook Trigger:

  • For the “Respond” setting, make sure to select “Using ‘Respond to Webhook’ Node”
  • Then, insert the “Respond to Webhook” node at the end of your workflow.

Also, in the last workflow you shared, it looks like the “Respond” option isn’t set up correctly., Make sure you’re using “Fixed” mode instead of “Expression”
image

Try these things and let me know if you still have any issues…

thank you for swift response Mohamed

i implemented this, still doesnt work, ialso observed that triggers dont work in my workflow, sheet triggers, shedule triggers, etc i have to execute manually before they work ,makes me wonder what i did wrong

for example:

use an http get request from vapi but the trigger doesnt go live after the call, how can i also fix this, thank you

Oh wait, @Mudy_Edogun , are you sure you’re copying the correct URL? If you’ve activated the workflow, you should be using the “Production URL”

yes i am using the prod url

Hmm, I’m out of ideas tbh,

Could you try testing this trigger using Postman or any other tool, to narrow down and identify where the issue is?

Assuming the workflow is set to Active since, if it weren’t, you’d get a message like “The requested webhook … is not registered.”

Assuming the http verb matches up since, if it didn’t, you’d get a message like: “This webhook is not registered for GET requests. Did you mean to make a POST request?”

Wondering if VAPI is properly adding the Content-Type: application/json header when it sends the POST request to n8n. If it doesn’t, n8n will receive the body/content as a binary item (nothing in $json). If this is the case, you might be able to override/mitigate that by adding and enabling the Raw Body option on the Webhook node and extracting the JSON content as the first step of the workflow.

Is this the documentation for setting up the callout from VAPI? Custom tools

1 Like

yes, that is the doc for the tool, the workflow is active
i also tested with a get request and it still doesnt work

when i send requests to the webhook i get code 200, but no data comes in

Are you getting the “Workflow was started” on the client side? Can you see logs in VAPI with the response it gets from n8n?

I got it to work by checking the executions and pinning the webhook, turns out it was working, but not visible in the editor, I don’t know why that happens, thank you very much @mohamed3nan & @hubschrauber

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.