Developers / 02
Webhooks
Floor events posted to your HTTPS URL: calls, messages, leads, recordings, and AI notes.
Subscribe from the workspace
POSTWebhooks are on every plan. In Developers, add an HTTPS URL that only your server can reach. Avaga posts JSON when the floor moves. Return a 2xx after you persist the event. Treat deliveries as at-least-once: key your handler on the event id the app sends.
The workspace shows a signing secret next to the endpoint. Verify it before you trust the body. Do not log the secret. Rotate it if a URL leaked.
https.receiver
POST /webhooks/avaga HTTP/1.1
Content-Type: application/json
{
"id": "evt_YOUR_ID",
"type": "call.completed",
"created_at": "2026-09-19T01:00:00Z",
"contact_id": "ct_YOUR_ID",
"did": "+14157238585",
"recording": true,
"transcript": true,
"sentiment": "neutral"
}Event catalog
eventsNames below match jobs on the floor. The live list in the workspace is the source of truth if a new channel ships. Subscribe only to events you will persist. A second inbox that replays every message.received is the failure mode this product exists to avoid.
| type | When it fires |
|---|---|
call.started | A live leg joined a DID, queue, or AI employee. |
call.completed | The leg ended. Duration and disposition are on the payload. |
call.recording.ready | Archive audio is available. Pause/resume still applied. |
message.received | SMS, MMS, WhatsApp, Messenger, or Instagram inbound. |
message.sent | An agent, AI employee, or API send left the inbox. |
lead.created | Meta, Google Ads, LinkedIn, or forms.js landed a lead. |
voicemail.ready | Voicemail audio and transcription are on the contact. |
ai.summary.ready | Assist Pro summary, topics, or CRM note finished. |
export.ready | A data export you requested can be downloaded. |
Idempotency
evt_idStore the event id before you write HubSpot, Salesforce, or your warehouse. If the same id arrives twice, no-op. Night-shift AI employees and humans share one contact, so two events can belong to the same person without being duplicates.
Failures
retryIf you return 5xx or time out, Avaga retries. If you return 4xx, fix the signature check or the URL. Do not use a webhook to dump PHI into a spreadsheet. BAA and DPA still apply to the receiver.
Go-live order
04.4- Connect WhatsApp and the shared inbox if customers already write you there.
- Prove a test lead from forms.js or ads.
- Add webhooks when a system of record must be written, not before.
- Watch one call.completed and one lead.created in your logs before you scale.