Post Call Actions
This endpoint is used to send call related data, such as call details, recordings, and analysis to a predefined endpoint. It’s typically used to:
-
Push information into your CRM or internal database.
-
Trigger downstream actions, such as sending a follow-up message, email, or call summary with next steps.
This allows seamless integration of call events into your existing workflows.
Configure
-
Navigate:
Agents → Select Agent → Edit → Post Call API. -
Toggle to
enabled. -
Fill out the form and publish.
The Pre‑Call and Post‑Call APIs share UI and request settings. What differs is direction: Pre‑Call pulls data in, Post‑Call pushes data out.

|
Field |
What it does |
Tips |
|---|---|---|
|
Method |
HTTP verb used to call your endpoint. |
|
|
URL |
Full endpoint (e.g. |
Add query‑string params here: |
|
Timeout |
Max wait in ms before we give up (default 15000 = 15 s). |
Increase for slow servers; decrease to fail fast. |
|
Headers (optional) |
JSON object of HTTP headers. |
Must include |
|
Body (POST / PUT only) |
Raw JSON payload your endpoint expects. |
Use variable placeholders ( |
Body is optional and if not defined, we will send the entire default post-call object (see Available Information) as the request body.
We do not retry failed API calls so handle idempotency/replay your side if needed.
Available information
Every call finishes with the object below. Any property can be referenced in URL, headers, or body.
• Wrap variable names with ${ }. Use dot . notation for nested values.
• We stringify values by default. Omit quotes for numbers/booleans.
"duration": ${duration}
|
Variable |
Description |
|---|---|
|
|
Call summary, structured data, transfer department and reason, input params of tool calls |
|
|
Call details: from and to number, type (inbound or outbound), recording, callSid, campaignId, taskId, attempt, endReason. |
|
|
All the context variables passed in task or per-call API and system defaults |
|
|
Performance stats of the call: latency, interruption, turns, etc. |
|
|
Final outcome of the call (combined output of system defined and LLM defined) |
|
|
Agent Id |
|
|
Agent talk time in secs |
|
|
Call start timestamp is milliseconds |
|
|
Transcript of the conversation |
{
"analysis": {
"results": {
"summary": "...",
"...": "custom structured data"
}
},
"callInfo": {
"from": "+15551234567",
"to": "+15557654321",
"type": "inbound",
"recording": "https://...",
"callSid": "CA123...",
"endReason": "...",
"task": "...", // outbound only
"campaign": "...", // outbound only
"attempt": 1, // outbound only
"provider": "twilio"
},
"outcome": "qualified_lead",
"agent": "agent_id",
"duration": 42, // seconds
"price": 0.25, // INR
"beginTimestamp": 1722576050000,
"context": {
"...": "all keys you passed in task or pre call API when starting the call"
},
"stats": {
"cache": {},
"interruptions": {},
"latency": {},
"turns": 20
},
"transcript":[
{
"role": "user",
"content": "message from user",
"timestamp": 1722576050000
}...
]
}
Example body
{
"caller": "${callInfo.from}",
"callee": "${callInfo.to}",
"callType": "${callInfo.type}",
"summary": "${analysis.results.summary}",
"duration": ${duration},
"price": ${price},
"recordingUrl": "${callInfo.recording}",
"leadId": "${context.leadId}"
"disposition": "${outcome}"
}