Call Status Update
Called when the call status changes. Use this to track call lifecycle. **Statuses:** - `in-progress`: Call connected, conversation started - `ended`: Call ended normally (customer hung up) - `ended-with-error`: Call ended due to an error ### Assistant Object The payload includes the full `assistant` object containing: - All resolved configuration (after any overrides from `assistant-request`) - Any custom `metadata` you passed in the `assistant-request` response The response body is ignored.
Called when the call status changes. Use this to track call lifecycle.
Statuses:
in-progress: Call connected, conversation startedended: Call ended normally (customer hung up)ended-with-error: Call ended due to an error
Assistant Object
The payload includes the full assistant object containing:
- All resolved configuration (after any overrides from
assistant-request) - Any custom
metadatayou passed in theassistant-requestresponse
The response body is ignored.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
Example Requests
/status-update/status-update/status-updateTool/Function Call Webhook
Called when the AI needs to execute a tool/function during the conversation. **Sync tools:** Must respond within **10 seconds** with the result. **Async tools:** Respond immediately with `200 OK` (fire-and-forget). Tools are defined in `llm_config.tools[]` with optional per-tool URL override. ### Assistant Object The payload includes the full `assistant` object containing: - All resolved configuration (after any overrides from `assistant-request`) - Any custom `metadata` you passed in the `assistant-request` response ### Response Formats Multiple response formats are supported: 1. **Object format** (recommended): ```json {"results": [{"tool_call_id": "tool_abc123", "result": {"name": "Jan"}}]} ``` 2. **Simple format**: ```json {"result": {"name": "Jan"}} ``` 3. **Direct format** (your data directly): ```json {"name": "Jan"} ``` 4. **Error format**: ```json {"error": "Contact not found"} ```
End of Call Report Webhook
Called after the call ends with a summary and optional structured analysis. This is the most commonly used webhook for integrating call data into CRM systems. **Payload includes:** - Call duration in seconds - AI-generated call summary - Full conversation transcript (messages array) - Structured analysis result (if `analysis_plan` was configured on the agent) - Full assistant configuration including any custom metadata - Recording URL (if recording is enabled) ### Assistant Object The payload includes the full `assistant` object containing: - All resolved configuration (after any overrides from `assistant-request`) - Any custom `metadata` you passed in the `assistant-request` response This is especially useful for correlating call reports with your CRM records using the metadata you passed during `assistant-request`. The response body is ignored.