PUT to a record URL, use a custom (advanced) webhook. You control the request and fill it with values from the call.
Two ways to build a custom request
Create a custom webhook
Open the webhook picker

Create Custom Webhook in the Add Webhook window
Set the method, URL, headers, and query parameters
Authorization for the receiving API) and Query params as key-value pairs.
Method, URL, headers, and query parameters
Build the body

Body types

Inserting call variables into the body
Choose how to sign the request
Send a test request

Test response
Choose events and save

Choosing the call outcomes that send the webhook
Import a cURL command
If the receiving API documents its requests as cURL commands, click Import next to cURL, paste the command, and click Import again. The method, URL, headers, query parameters, and body are filled in for you.
Importing a cURL command

Request fields filled from the cURL command
Advanced mode on an agent webhook
In the agent’s Webhooks settings, switch a webhook’s Mode to Advanced to open the Advanced Webhook editor. Set the method and URL, use the Headers, Query Parameters, and Body tabs, insert variables, and click Test Request to check the response. Requests from advanced mode aren’t signed. Protect your endpoint with a secret you add yourself, such as anAuthorization header or a token query parameter, and allow only the Callers IP addresses.
Template syntax
In the dashboard you insert values with the variable picker. Underneath, and when you create advanced webhooks through the API, a placeholder is the path to a payload field wrapped in double angle brackets:<<path>>.
[0] for array items.
How values are inserted:
- In a JSON body, a placeholder that is the entire string value (
"answer": "<<summary.Budget approved>>") is replaced with the value itself, keeping its type: booleans, numbers, objects, and arrays stay as JSON, not strings. - A placeholder inside longer text (
"note": "Call with <<contact.name>>") is converted to text. - Values that don’t exist resolve to
null.
Advanced webhooks through the API
SetisAdvanced: true and describe the request in advancedWebhook when you subscribe a webhook or create, replace, or patch an agent:
advancedWebhook.url must be HTTPS. The top-level url is still required and identifies the webhook (subscribing the same url again merges events). Webhooks created this way work like advanced mode and aren’t signed.
Troubleshooting
A placeholder arrives as null
A placeholder arrives as null
HANG_UP fires before analysis, so summary and successCriteria are empty then.The receiving API rejects the body
The receiving API rejects the body
Content-Type or an API token.Signature doesn't verify
Signature doesn't verify