Skip to main content
Webhooks let your systems get real-time notifications from Verbex about call lifecycle and PCA availability. As events occur, Verbex sends POST requests with JSON payloads to your HTTPS endpoint so you can update CRMs, trigger workflows, and fetch PCA immediately.

Verbex sends real-time webhooks at three key moments in a call’s lifecycle:
  • Call Started (CallHandler.CallStarted)
  • Call Ended (CallHandler.CallEnded)
  • PCA Completed (callAnalysis.pcaCompleted, typically 1–30s after end)
These events let your systems react instantly—create or update CRM cases, trigger alerts, and (most importantly) fetch PCA to automate next steps such as follow-up outbound calls, notifications, or escalations.

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

EventPurposeTypical 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.
Note: Events can arrive out of order due to network conditions. Use 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


POST /your-webhook-endpoint HTTP/1.1
Content-Type: application/json
User-Agent: ReactorNetty/1.1.13
X-Webhook-Event: CallHandler.CallEnded
X-Webhook-Traceid: 94c950a0-1694-4b7c-9891-9364c261e4e1
X-Webhook-Timestamp: 2025-11-10T01:01:14.552985018Z
Custom Headers:
  • X-Webhook-Event: Event name (e.g., CallHandler.CallEnded)
  • X-Webhook-Traceid: Webhook unique identifier (same as traceId in the body)
  • X-Webhook-Timestamp: Timestamp in ISO 8601 format

How to Configure Webhook in Verbex:

  1. Open the Verbex Dashboard. Go to Webhooks. Hook1 Pn
  2. Click Add Webhook and enter your HTTPS endpoint (domain URL). Hook2 Pn
  3. 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


{
  "organizationId": "e654409f-0105-4c5e-8d67-c3c2998056c6",
  "traceId": "ff6e9643-994b-42fc-8a75-8c1a219243e4",
  "eventName": "CallHandler.CallStarted",
  "timestamp": 1762670195.24565582,
  "payload": {
    "call_id": "6910366f2dc3a75642b5a4c0",
    "agent_id": "c1b13ac3-aaf0-407f-8de2-19933d39afe0",
    "status": "success"
  }
}

Call Ended Event


{
  "organizationId": "d1c7159f-c2ec-4d24-9d1b-bdef8a2614c8",
  "traceId": "598ed907-1a67-492f-999f-d172e473c823",
  "eventName": "CallHandler.CallEnded",
  "timestamp": 1762408841.037144,
  "payload": {
    "call_id": "690c38dd1a470176859508ef",
    "agent_id": "97de52b5-ed58-4c2b-81c0-e756cb65c541",
    "status": "success"
  }
}

PCA Completed Event


{
  "organizationId": "d1c7159f-c2ec-4d24-9d1b-bdef8a2614c8",
  "traceId": "0d87d633-ce6b-40fb-a54f-722b1bbd8f8b",
  "eventName": "callAnalysis.pcaCompleted",
  "timestamp": 1762153092.920426,
  "payload": {
    "call_id": "690852542548d87bb5238118",
    "agent_id": "100fd531-5a50-4f69-9fb7-7e5e73640850",
    "status": "success",
    "reason": "success",
    "timestamp": 1762153092420
  }
}

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.

Field Descriptions

FieldTypeDescription
organizationIdstringOrganization ID
traceIdstringWebhook unique identifier (used for deduplication)
eventNamestringEvent type
timestampnumberUNIX timestamp (seconds)
payload.call_idstringCall ID
payload.agent_idstringAI agent ID
payload.statusstringStatus
payload.reasonstringReason (PCA only)
payload.timestampnumberUNIX timestamp (milliseconds, PCA only)