Use webhooks to receive real-time notifications in your system whenever a call is completed or a WhatsApp message event occurs from our platform.
Webhook Endpoint
You are required to provide us with a publicly accessible HTTPS endpoint (e.g., https://yourdomain.com/webhook). Our system will send a POST request to this endpoint with the event data.
Request Method
All webhook notifications will be sent using the HTTP POST method with a JSON payload.
Secret Token Authentication
To ensure that the webhook request is coming from an authorized source, a secret token will be included in the request headers. This helps verify that the payload originated from our system and not from a third-party source.
The secret token will be shared with you securely during setup and must be validated on your server for every webhook request.
Header Example:
{
"Authorization" : "Bearer YOUR_SECRET_TOKEN"
}
On your server, you should verify the token before processing the payload. If the token is invalid, respond with an HTTP 401 Unauthorized status.
Expected Response
Your endpoint should respond with an HTTP 200 status code upon successful receipt and processing of the data. If the response code is not 200, our system may retry the webhook delivery.
Sample Payloads
Call Webhook Payload When a call is completed, the following payload will be sent to your webhook endpoint: {
"event_type" : "call" ,
"call_id" : "aerfttYRDwcdtr" ,
"agent_id" : "aiyvytyTFrduav" ,
"campaign_name" : "Loan Recovery - Nov" ,
"loan_id" : "LN1029384" ,
"name" : "Rahul Sharma" ,
"phone" : "9999999999" ,
"language" : "hindi" ,
"from_phone" : "+918888888888" ,
"status" : "Contacted" ,
"direction" : "outbound" ,
"duration" : 45 ,
"disposition" : "Hangup" ,
"summary" : "The user cut the call mid conversation" ,
"start_time" : "2025-11-01T13:26:27" ,
"end_time" : "2025-11-01T13:27:12" ,
"recording_id" : "63c30c3d-ce24-4c33-a64a-c2f81ca48d0b" ,
"extracted_data" : {
"ptp_date" : "2025-11-03"
},
"additional_data" : {
"custom_key" : "value"
}
}
Field Descriptions Field Type Description event_typestring Type of event (call.completed) call_idstring Unique ID representing a call agent_idstring Unique ID representing the agent campaign_namestring Name of the campaign loan_idstring Unique loan ID for the customer namestring Customer’s full name phonestring Customer’s phone number languagestring Language used for conversation from_phonestring Number used for dialing statusstring Final call status directionstring Indicates call direction (inbound / outbound) durationinteger Duration of call in seconds dispositionstring Call outcome summarystring Short summary of the call start_timestring Call start timestamp (ISO 8601 format) end_timestring Call end timestamp (ISO 8601 format) recording_idstring Unique ID representing the call recording extracted_dataobject Additional data extracted from the call additional_dataobject Custom fields specific to your business
WhatsApp Webhook Events WhatsApp webhooks are triggered for the following message events: sent , delivered , read , and failed .
Triggered when a message is successfully sent to the WhatsApp server. {
"event_type" : "whatsapp.sent" ,
"message_id" : "wamid.HBgLOTE5ODc2NTQzMjEVAgASGCA2QjNFQjA" ,
"conversation_id" : "conv_abc123xyz" ,
"campaign_name" : "Payment Reminder - Nov" ,
"loan_id" : "LN1029384" ,
"name" : "Rahul Sharma" ,
"phone" : "919876543210" ,
"from_phone" : "+918888888888" ,
"message_type" : "template" ,
"template_name" : "payment_reminder_v1" ,
"timestamp" : "2025-11-01T13:26:27Z" ,
"additional_data" : {
"custom_key" : "value"
}
}
Triggered when the message is successfully delivered to the recipient’s device. {
"event_type" : "whatsapp.delivered" ,
"message_id" : "wamid.HBgLOTE5ODc2NTQzMjEVAgASGCA2QjNFQjA" ,
"conversation_id" : "conv_abc123xyz" ,
"campaign_name" : "Payment Reminder - Nov" ,
"loan_id" : "LN1029384" ,
"name" : "Rahul Sharma" ,
"phone" : "919876543210" ,
"from_phone" : "+918888888888" ,
"message_type" : "template" ,
"template_name" : "payment_reminder_v1" ,
"sent_at" : "2025-11-01T13:26:27Z" ,
"delivered_at" : "2025-11-01T13:26:35Z" ,
"additional_data" : {
"custom_key" : "value"
}
}
Triggered when the recipient reads the message (blue ticks). {
"event_type" : "whatsapp.read" ,
"message_id" : "wamid.HBgLOTE5ODc2NTQzMjEVAgASGCA2QjNFQjA" ,
"conversation_id" : "conv_abc123xyz" ,
"campaign_name" : "Payment Reminder - Nov" ,
"loan_id" : "LN1029384" ,
"name" : "Rahul Sharma" ,
"phone" : "919876543210" ,
"from_phone" : "+918888888888" ,
"message_type" : "template" ,
"template_name" : "payment_reminder_v1" ,
"sent_at" : "2025-11-01T13:26:27Z" ,
"delivered_at" : "2025-11-01T13:26:35Z" ,
"read_at" : "2025-11-01T13:30:12Z" ,
"additional_data" : {
"custom_key" : "value"
}
}
Triggered when message delivery fails. {
"event_type" : "whatsapp.failed" ,
"message_id" : "wamid.HBgLOTE5ODc2NTQzMjEVAgASGCA2QjNFQjA" ,
"conversation_id" : "conv_abc123xyz" ,
"campaign_name" : "Payment Reminder - Nov" ,
"loan_id" : "LN1029384" ,
"name" : "Rahul Sharma" ,
"phone" : "919876543210" ,
"from_phone" : "+918888888888" ,
"message_type" : "template" ,
"template_name" : "payment_reminder_v1" ,
"timestamp" : "2025-11-01T13:26:27Z" ,
"error" : {
"code" : 131026 ,
"title" : "Message undeliverable" ,
"message" : "Recipient phone number not on WhatsApp"
},
"additional_data" : {
"custom_key" : "value"
}
}
WhatsApp Field Descriptions Field Type Description event_typestring Type of event (whatsapp.sent, whatsapp.delivered, whatsapp.read, whatsapp.failed) message_idstring Unique WhatsApp message ID conversation_idstring Unique conversation thread ID campaign_namestring Name of the campaign loan_idstring Unique loan ID for the customer namestring Customer’s full name phonestring Customer’s phone number from_phonestring WhatsApp Business number used message_typestring Type of message (template, text, media) template_namestring Name of the template used (if applicable) timestampstring Event timestamp (ISO 8601 format) sent_atstring Message sent timestamp delivered_atstring Message delivered timestamp read_atstring Message read timestamp errorobject Error details (only for failed events) additional_dataobject Custom fields specific to your business
Retry Policy
If the webhook fails (non-200 response or timeout), we will retry up to 2 times with exponential backoff.
Security
It is strongly recommended to verify the webhook source using the provided secret token. All webhook requests will be sent over HTTPS only.
For any questions or configuration changes, please contact our technical team.