Skip to main content

Webhooks

The AI Front Office sends webhook events for key activities. Use these to integrate with your CRM, notification system, or custom workflows.

Available Events

call.received

Fired when a new call comes in.

{
"event": "call.received",
"timestamp": "2026-03-15T14:30:00Z",
"data": {
"call_id": "call_abc123",
"from": "+16015551234",
"to": "+16016404037",
"direction": "inbound",
"status": "in_progress"
}
}

call.completed

Fired when a call ends.

{
"event": "call.completed",
"timestamp": "2026-03-15T14:35:00Z",
"data": {
"call_id": "call_abc123",
"from": "+16015551234",
"duration_seconds": 180,
"recording_url": "https://...",
"transcription": "Customer asked about...",
"outcome": "appointment_booked"
}
}

appointment.booked

Fired when an appointment is scheduled during a call.

{
"event": "appointment.booked",
"timestamp": "2026-03-15T14:33:00Z",
"data": {
"appointment_id": "apt_xyz789",
"customer_phone": "+16015551234",
"service_type": "consultation",
"scheduled_at": "2026-03-17T10:00:00Z",
"duration_minutes": 30
}
}

sms.received

Fired when an inbound SMS is received.

{
"event": "sms.received",
"timestamp": "2026-03-15T15:00:00Z",
"data": {
"message_id": "msg_def456",
"from": "+16015551234",
"to": "+16016404037",
"body": "Yes, I'd like to schedule for Tuesday"
}
}

Configuration

Webhook URLs are configured during onboarding. Contact support to add or modify webhook endpoints.

Security

All webhook payloads are signed with a shared secret. Verify the X-Webhook-Signature header to ensure authenticity.

Retry Policy

Failed deliveries are retried 3 times with exponential backoff (5s, 30s, 5min). After 3 failures, the event is logged but not retried.