Tool Request Body Not Sending Parameters (Always {...
# support
j
Problems I’m experiencing: When I press Test Tool, the Request Body (auto-generated from variables) is always just: {} Even after filling all parameters and marking required ones, the request body does not include any values. In n8n, the incoming webhook request shows: { "body": "{}" } which means Vapi is not sending the parameters at all. When I manually test n8n with sample JSON, everything works correctly, so the issue is only coming from Vapi not generating the request body.
c
Hi there, Thank you for your message. Our team is currently out of the office. We operate Monday through Friday, from 9:00 AM to 8:00 PM Pacific Standard Time (PST). We’ll get back to you as soon as possible during our normal business hours. If your message is urgent, please mark it accordingly or include “URGENT” in the subject line, and we’ll do our best to respond promptly. Warm regards, Vapi Customer Support Team
v
To fix the empty
{}
request body, ensure your tool's configuration includes a properly defined
body
schema with the parameters you want to send. For example:
Copy code
json
{
  "type": "apiRequest",
  "method": "POST",
  "url": "https://your-n8n-webhook-url",
  "body": {
    "param1": "{{variable1}}",
    "param2": "{{variable2}}"
  }
}
Update your tool in the Vapi dashboard to match this structure—this will ensure parameters are included in the request body sent to n8n. For more details, see the [API reference](https://docs.vapi.ai/api-reference/tools/create?explorer=true). Source: - [API Reference: Create Tool](https://docs.vapi.ai/api-reference/tools/create?explorer=true)
r
Are you using AI for sending dynamic variables?
Please set a description for those fields so AI can be very clear about that field and pass that data. If you are able to share it, then please.
Is the problem not adding descriptions to each variables? it said optional
I have wrote down the descriptions but still same
@Vapi Support Bot
v
To resolve the empty
{}
request body, make sure your tool configuration explicitly defines the
body
property with all required parameters mapped to variables. For example:
Copy code
json
{
  "type": "apiRequest",
  "method": "POST",
  "url": "https://callivo.app.n8n.cloud/webhook/callivo-lead",
  "body": {
    "notes": "{{notes}}",
    "car_make": "{{car_make}}",
    "car_year": "{{car_year}}",
    "sheet_id": "{{sheet_id}}",
    "car_model": "{{car_model}}"
    // Add other fields as needed
  }
}
Descriptions are optional and not required for the body to populate. For more details, see the [API reference](https://docs.vapi.ai/api-reference/tools/create?explorer=true). Source: - [API Reference: Create Tool](https://docs.vapi.ai/api-reference/tools/create?explorer=true)
j
I have made variables using api request tool, when I press code, it shows all the variables but when i press test, it shows {} on request body and from n8n does not show
@Vapi Support Bot
v
To ensure your API request tool sends the correct parameters, explicitly define the
body
property in your tool configuration like this:
Copy code
json
{
  "type": "apiRequest",
  "method": "POST",
  "url": "https://callivo.app.n8n.cloud/webhook/callivo-lead",
  "body": {
    "notes": "{{notes}}",
    "car_make": "{{car_make}}",
    "car_year": "{{car_year}}",
    "sheet_id": "{{sheet_id}}",
    "car_model": "{{car_model}}"
    // Add all other fields as needed
  }
}
Descriptions are optional and do not affect the request body. Update your tool to match this structure and test again—this should resolve the
{}
body issue. For more details, see the [API reference](https://docs.vapi.ai/api-reference/tools/create?explorer=true). Source: - [API Reference: Create Tool](https://docs.vapi.ai/api-reference/tools/create?explorer=true)
j
@Vapi Support Bot does testing usually show {}?
v
No, the test function should not show
{}
in the request body if your
body
property is correctly defined and mapped to variables.
Make sure your tool configuration includes all required fields in the
body
section, like this:
Copy code
json
"body": {
  "notes": "{{notes}}",
  "car_make": "{{car_make}}"
  // Add all other fields as needed
}
If you still see
{}
during testing, double-check that your variables are properly set and referenced in the configuration. For more details, see the [API reference](https://docs.vapi.ai/api-reference/tools/create?explorer=true). Source: - [API Reference: Create Tool](https://docs.vapi.ai/api-reference/tools/create?explorer=true)
j
Do i need to use function tool or api request tool? I have made variables in request body for api request but still when i press test it shows {} @Vapi Support Bot
v
You should use the API request tool for sending HTTP POST requests with a custom body to n8n. Make sure your tool configuration includes a
body
property with all required fields mapped to variables, like this:
Copy code
json
"body": {
  "notes": "{{notes}}",
  "car_make": "{{car_make}}",
  "car_year": "{{car_year}}"
  // Add all other fields as needed
}
If you still see
{}
in the test, double-check your variable mappings and configuration. For more details, see the [API reference](https://docs.vapi.ai/api-reference/tools/create?explorer=true). Source: - [API Reference: Create Tool](https://docs.vapi.ai/api-reference/tools/create?explorer=true)
j
Even if i have all variables in request body, when I press test it still shoes {}. Do i need to also add variables on the 2nd request body section? @Vapi Support Bot
v
If your API request tool's test still shows
{}
in the request body, double-check that your tool configuration includes a
body
property explicitly mapping each field to its variable, like this:
Copy code
json
"body": {
  "notes": "{{notes}}",
  "car_make": "{{car_make}}",
  "car_year": "{{car_year}}"
  // Add all other fields as needed
}
You do not need to add variables in any "second request body section"—all variables should be mapped in the main
body
property as shown above. For more details, see the [API reference](https://docs.vapi.ai/api-reference/tools/create?explorer=true). Source: - [API Reference: Create Tool](https://docs.vapi.ai/api-reference/tools/create?explorer=true)
j
How do i check tool configuration to check body? @Vapi Support Bot
v
To check your tool configuration for the request body, open your tool's JSON definition and look for the
body
property. It should look like this:
Copy code
json
"body": {
  "notes": "{{notes}}",
  "car_make": "{{car_make}}",
  "car_year": "{{car_year}}"
  // Add all other fields as needed
}
If the
body
property is missing or empty, update it to include all required fields mapped to their variables. For more details, see the [API reference](https://docs.vapi.ai/api-reference/tools/create?explorer=true). Source: - [API Reference: Create Tool](https://docs.vapi.ai/api-reference/tools/create?explorer=true)
j
Hi team, I’m stuck with an API Request tool issue and need clarification. I am using the API Request tool (not function tool) to POST data to an n8n webhook. In the Request Body (schema builder), I have defined all fields correctly as an object with properties (customer_name, phone_number, damage_description, etc.). When I click Code, I can clearly see all variables correctly defined in the tool config. However, when I click Test, the Request Body still shows {} and says: “No variables detected in URL, headers, or body schema.” I have already: • Removed any {} or {{}} from property names (e.g. using sheet_id, not {sheet_id}) • Removed unnecessary required fields • Saved and refreshed the page My questions: 1. Should the Test tool always show a populated request body if the schema is correct? 2. Is there a known issue where Visual schema builder tools get cached or broken, requiring the tool to be recreated? 3. Is there any additional step required for schema-based body mapping (not template-based {{var}} mapping)? At this point, I want to confirm whether this is: • A UI / caching issue • A schema definition issue • Or expected behavior in Test mode Thanks — this is blocking production use. @Vapi Support Bot
v
If your API Request tool's Test function still shows
{}
despite a correct schema, try **deleting and recreating the tool from scratch**—sometimes the visual schema builder can cache old definitions and not update properly. After recreating, define your
body
property as shown below and test again:
Copy code
json
"body": {
  "customer_name": "{{customer_name}}",
  "phone_number": "{{phone_number}}",
  "damage_description": "{{damage_description}}"
  // Add all other fields as needed
}
This often resolves persistent
{}
issues caused by UI or caching glitches. For more details, see the [custom tools troubleshooting guide](https://docs.vapi.ai/tools/custom-tools-troubleshooting). Source: - [Custom tools troubleshooting](https://docs.vapi.ai/tools/custom-tools-troubleshooting)
j
I found why Test always shows {}. In my tool config, variableExtractionPlan.schema.properties is empty ({}), even though body.properties has fields (customer_name, phone_number, damage_description). Is Test reading variables only from variableExtractionPlan? How do I populate variableExtractionPlan from the dashboard UI, or is this a bug? Tool ID: 718c989a-994c-4706-a8a1-39815afad815 @Vapi Support Bot
v
The Test function appears to read variables from
variableExtractionPlan
, so if
variableExtractionPlan.schema.properties
is empty, the request body will show
{}
.
Currently, the documentation does not specify a way to populate
variableExtractionPlan
from the dashboard UI—this may be a limitation or a UI bug. Action: Try editing your tool via the API to manually set
variableExtractionPlan
as shown in the [API reference](https://docs.vapi.ai/api-reference/tools/create?explorer=true):
Copy code
json
"variableExtractionPlan": {
  "schema": {
    "properties": {
      "customer_name": { "type": "string" },
      "phone_number": { "type": "string" },
      "damage_description": { "type": "string" }
    }
  }
}
If this resolves the issue, report the missing UI support to Vapi support for a permanent fix. Source: - [API Reference: Create Tool](https://docs.vapi.ai/api-reference/tools/create?explorer=true)
j
Hi, confirmed root cause: Test reads variables from variableExtractionPlan.schema.properties, not from body.properties. In UI I can define body.properties, but variableExtractionPlan.schema.properties stays empty {} and Test body remains {}. Tool ID: 718c989a-994c-4706-a8a1-39815afad815 Is there any UI way to populate variableExtractionPlan? If not, can you confirm the correct API endpoint + payload to PATCH the tool config? This looks like missing UI support / bug. @Vapi Support Bot
v
To update your tool's
variableExtractionPlan
, use the following API call: Endpoint:
PATCH https://api.vapi.ai/tool/718c989a-994c-4706-a8a1-39815afad815
Payload example:
Copy code
json
{
  "variableExtractionPlan": {
    "schema": {
      "properties": {
        "customer_name": { "type": "string" },
        "phone_number": { "type": "string" },
        "damage_description": { "type": "string" }
        // Add other fields as needed
      }
    }
  }
}
This will populate
variableExtractionPlan
for your tool. See the [API reference](https://docs.vapi.ai/api-reference/tools/update) for more details. Source: - [Update Tool API Reference](https://docs.vapi.ai/api-reference/tools/update)
c
Just add default values to your request body properties. The UI will show the first value as the rest of the values, but at least you will be able to send the test to ensure the connection works.
j
I have added default values in request body properties but when I press test, it still shows {} for the request body