Verbex sends real-time webhooks at Multiple key moments in a call’s lifecycle:
- Call Started (
CallHandler.CallStarted) - Call Ended (
CallHandler.CallEnded) - Call Transfer (
CallHandler.CallTransferred) - PCA Completed (
callAnalysis.pcaCompleted, typically 1–30s after end)
What You Get (Benefits)
- Instant awareness of live calls and completion (no polling).
- Actionable insights the moment PCA is ready.
- Automated workflows: kick off follow-ups, send SMS/email, open tickets, or route to a human agent using PCA outcomes.
- Operational visibility: power real-time dashboards for call status and PCA readiness.
When to Use Webhooks
Use these webhooks if you need to:- Show live call status in CRM/Helpdesk/BI dashboards.
- Automate post-call actions the moment PCA is available.
- Orchestrate follow-ups (e.g., schedule/trigger another outbound call).
- Sync data to external systems (CRM, ticketing, data warehouse) tied to
call_id.
Event Catalogue & Typical Client Actions
| Event | Purpose | Typical Client Action |
|---|---|---|
Call Started (CallHandler.CallStarted) | Signals a new call session has begun. | Create/attach a live engagement record; mark status = “In Progress”. |
Call Ended (CallHandler.CallEnded) | Signals call completion. | Mark record “Completed”; prepare to await PCA. |
PCA Completed (callAnalysis.pcaCompleted) | PCA is ready (1–30s post-end). | Fetch PCA by call_id; evaluate rules; trigger follow-ups/notifications/escalations. |
Call Transfer ( CallHandler.CallTransferred ) | Signals a call transfer has been initiated. Triggered when the AI agent transfers the call to a human agent or external number. | Route call to receiving agent using transfer_to destination; update CRM record with transfer status and reason; send context/transcript to receiving agent. |
traceId to deduplicate; treat call_id as the stable identity for your records.
Endpoint Settings
Basic Requirements
- HTTP Method: POST
- Protocol: HTTPS (required)
- Domain: Custom domain (required; IP addresses not allowed)
- Content-Type: application/json
Request Format
X-Webhook-Event: Event name (e.g.,CallHandler.CallEnded)X-Webhook-Traceid: Webhook unique identifier (same astraceIdin the body)X-Webhook-Timestamp: Timestamp in ISO 8601 format
How to Configure Webhook in Verbex:
-
Open the Verbex Dashboard. Go to Webhooks.

-
Click Add Webhook and enter your HTTPS endpoint (domain URL).

- Once the webhook endpoint is added, click on create webhook. That’s how the endpoint is registered in verbex.
Webhook Data Format
Call Started Event
Call Ended Event
PCA Completed Event
Call Transfer Event
The Call Transfer event is triggered when the AI agent initiates a transfer of the call to a human agent or external destination. This event provides comprehensive details about the transfer attempt, including the transfer destination, call summary, and transcript.Call Transfer Event Field Descriptions
| Field | Type | Description |
|---|---|---|
call_id | string | Unique identifier for the call. Used as a stable identifier for your records. |
agent_id | string | Unique identifier for the AI agent handling the call. |
status | string | Transfer status. Values: pending, initiated, success, failed. Indicates whether the transfer was successfully completed or failed. |
transfer_to | string | Destination of the transfer. Can be a SIP address, phone number, or internal extension. |
caller.phone_number | string | Phone number of the caller initiating the call. |
call_summary.duration_seconds | number | Total duration of the call in seconds before transfer was initiated. |
call_summary.topics_discussed | array | List of topics discussed during the call. |
call_summary.actions_taken | array | List of actions performed by the AI agent during the call. |
call_summary.transfer_reason | string | Reason provided for initiating the transfer. |
call_summary.customer_sentiment | string | Overall sentiment of the customer. Values: positive, neutral, negative. |
call_summary.unresolved_issues | array | List of issues not resolved before transfer. |
transcript | array | Complete transcript of the call conversation. |
transcript[].role | string | Speaker in the transcript. Values: user or agent. |
transcript[].content | string | Content of the message spoken. |
metadata.call_start_time | string | ISO 8601 timestamp of when the call started. |
metadata.call_end_time | string | ISO 8601 timestamp of when the call ended or transfer was initiated. |
metadata.language | string | Language code of the call (e.g., “en-US”). |
Implementation Notes
Important: The webhook payload structure may change without notice. On the receiving side, please note the following:- It is recommended to store the entire payload received as JSON data.
- Consider the possibility that new fields may be added.
- Implement it so that unknown fields do not cause errors.
Call Transfer Event Implementation Notes
Transfer Status Tracking: Monitor thestatus field to determine if a transfer was successful. Failed transfers may require fallback handling or alerting.
Transfer Destination Validation: Validate the transfer_to field format before routing. Ensure it matches your system’s expected destination format (SIP URI, phone number, etc.).
Preserve Call Context: Use call_id as the primary identifier to correlate this event with the original Call Started event for complete call lifecycle tracking.
Customer Sentiment Analysis: Consider the customer_sentiment field when prioritizing transfers or determining escalation urgency.
Unresolved Issues: Review the unresolved_issues array to ensure the receiving agent has context about what was not resolved.
Transcript Availability: The complete transcript is included to help the receiving agent understand the conversation history and customer needs.
Typical Client Actions:
- Route call to the receiving agent using the
transfer_todestination - Update CRM record with transfer status, reason, and customer sentiment
- Send complete transcript and unresolved issues to the receiving agent
- Track transfer success rates for quality assurance
- Log transfer reason and customer sentiment for analytics
Field Descriptions
| Field | Type | Description |
|---|---|---|
organizationId | string | Organization ID |
traceId | string | Webhook unique identifier (used for deduplication) |
eventName | string | Event type |
timestamp | number | UNIX timestamp (seconds) |
payload.call_id | string | Call ID |
payload.agent_id | string | AI agent ID |
payload.status | string | Status |
payload.reason | string | Reason (PCA only) |
payload.timestamp | number | UNIX timestamp (milliseconds, PCA only) |

