AN45
04/02/2026, 2:52 PMAI Evy
04/02/2026, 2:52 PMAI Evy
04/02/2026, 2:52 PMX-Retell-Signature for request verification and Content-Type: application/json
- **body**: Includes name (function name) , call (call object with context) , and args (the arguments as a JSON object)
However, there's an important configuration option called "Payload: args only" . When this is enabled, the JSON body contains only the function's arguments at the top level, not nested under args, and without the name and call wrapper .
Key consideration for your use case:
The LLM decides which parameters to include based on your JSON schema's required fields and the conversation context . If you're seeing all variables sent every time, this is likely because:
1. Your schema marks fields as required
2. The LLM is interpreting the conversation to include all available parameters
Recommended approach:
To achieve true PATCH behavior where only modified fields are sent, consider:
- Remove required constraints from fields that should be optional in your parameter schema
- Use clear descriptions in your schema to guide the LLM on when to include each field
- Implement server-side logic to handle the full payload by only applying non-null or explicitly changed values
If you need to verify the request is from Retell, you can check the X-Retell-Signature header using the verification methods documented for Node.js and Python .AI Evy
04/02/2026, 2:52 PMAI Evy
04/02/2026, 2:52 PMAN45
04/02/2026, 3:25 PMAI Evy
04/02/2026, 3:25 PMAI Evy
04/02/2026, 3:25 PMjson { "type": "object", "properties": { "field_name": { "type": "string", "description": "ONLY include if user explicitly provided or changed this value" } } }AI Evy
04/02/2026, 3:25 PMAI Evy
04/02/2026, 3:25 PMAI Evy
04/02/2026, 3:25 PMAI Evy
04/02/2026, 3:27 PMAN45
04/02/2026, 3:27 PMAI Evy
04/02/2026, 3:27 PMAI Evy
04/02/2026, 3:27 PM"type": "object" at the top level [(1) ]() [(2) ]() . A common mistake is not adding this, which can cause validation issues .
2. Use const values strategically - In your parameter schema, you can use "const" for fields that should have fixed values or dynamic variables . This might help control which fields are included.
3. Backend-side filtering - Since the LLM ultimately decides what to include, implement server-side logic to:
- Parse the incoming payload
- Compare against your existing database record
- Only apply fields that differ from current values
4. Consider Custom LLM integration - If you need more precise control over function calling behavior, you could explore integrating your own LLM via the LLM WebSocket [(3) ]() , which gives you complete control over how function calls are constructed and handled [(4) ]() [(5) ](AI Evy
04/02/2026, 3:27 PMAI Evy
04/02/2026, 3:28 PMAI Evy
04/02/2026, 3:28 PMAI Evy
04/02/2026, 3:28 PMAN45
04/02/2026, 3:29 PM