Empfio Docs

Webhook Events

Reference for all events Empfio sends to registered webhook endpoints.

Event envelope

Every event uses the same outer structure:

{
  "event": "booking.created",
  "timestamp": "2026-03-07T10:30:00Z",
  "organization_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": { ... }
}
FieldTypeDescription
eventstringEvent type identifier
timestampstringISO 8601 timestamp of when the event occurred
organization_idUUIDThe organization this event belongs to
dataobjectEvent-specific payload (varies by event type)

Lead events

lead.created

Fired when a new lead is captured from any channel.

{
  "event": "lead.created",
  "timestamp": "2026-03-07T10:00:00Z",
  "organization_id": "550e8400-...",
  "data": {
    "id": "660f9500-...",
    "name": "Jane Smith",
    "email": "jane@example.com",
    "phone": "+49123456789",
    "channel": "whatsapp",
    "status": "new",
    "created_at": "2026-03-07T10:00:00Z"
  }
}

lead.status_changed

Fired when a lead's status is updated (e.g. from new to contacted to booked).

{
  "event": "lead.status_changed",
  "timestamp": "2026-03-07T10:05:00Z",
  "organization_id": "550e8400-...",
  "data": {
    "id": "660f9500-...",
    "previous_status": "new",
    "status": "booked"
  }
}

Booking events

booking.created

Fired when an appointment is confirmed via Cal.com.

{
  "event": "booking.created",
  "timestamp": "2026-03-07T10:10:00Z",
  "organization_id": "550e8400-...",
  "data": {
    "id": "770a9400-...",
    "lead_id": "660f9500-...",
    "start_time": "2026-03-20T14:00:00Z",
    "end_time": "2026-03-20T14:30:00Z",
    "service": "Haircut",
    "calcom_booking_id": 12345
  }
}

booking.cancelled

Fired when a booking is cancelled (either from the Empfio dashboard or via a Cal.com webhook).

{
  "event": "booking.cancelled",
  "timestamp": "2026-03-08T09:00:00Z",
  "organization_id": "550e8400-...",
  "data": {
    "id": "770a9400-...",
    "lead_id": "660f9500-...",
    "start_time": "2026-03-20T14:00:00Z",
    "end_time": "2026-03-20T14:30:00Z",
    "cancelled_at": "2026-03-08T09:00:00Z"
  }
}

Conversation events

conversation.escalated

Fired when the AI agent escalates a conversation to a human team member.

{
  "event": "conversation.escalated",
  "timestamp": "2026-03-07T10:12:00Z",
  "organization_id": "550e8400-...",
  "data": {
    "conversation_id": "880b0500-...",
    "lead_id": "660f9500-...",
    "channel": "telegram",
    "reason": "Customer explicitly requested a human"
  }
}

Using events with integrations

These webhook events can be consumed by:

  • Zapier — use "Webhooks by Zapier → Catch Hook" as a trigger
  • Make — use the "Custom webhook" module as a trigger
  • Custom webhooks — send events to your own HTTPS endpoint
  • Any system that can receive HTTP POST requests with JSON payloads

On this page