SkyLight Chat
Webhooks Overview

Events & Payloads

All available webhook events with full payload schemas.

Payload envelope

Every webhook delivery — regardless of the event type — shares the same envelope structure:

{
  "event": "contact.created",
  "delivery_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "timestamp": "2026-03-04T12:00:00.000000Z",
  "data": { ... }
}
FieldTypeDescription
eventstringEvent name (see below)
delivery_idstringUUID unique to this delivery attempt
timestampstringISO 8601 UTC timestamp
dataobjectEvent-specific payload

Contact events

contact.created

Fired when a new contact is created.

{
  "event": "contact.created",
  "delivery_id": "uuid",
  "timestamp": "2026-03-04T12:00:00.000000Z",
  "data": {
    "contact": {
      "id": 42,
      "name": "Sarah Johnson",
      "email": "sarah@example.com",
      "phone": "+14155551234",
      "type": "whatsapp",
      "status": "active",
      "blacklisted": false,
      "tags": [],
      "created_at": "2026-03-04T12:00:00.000000Z"
    }
  }
}

contact.updated

Fired when a contact's fields are changed.

{
  "event": "contact.updated",
  "delivery_id": "uuid",
  "timestamp": "2026-03-04T12:05:00.000000Z",
  "data": {
    "contact": {
      "id": 42,
      "name": "Sarah M. Johnson",
      "tags": ["vip"],
      "updated_at": "2026-03-04T12:05:00.000000Z"
    }
  }
}

contact.deleted

Fired when a contact is permanently deleted.

{
  "event": "contact.deleted",
  "delivery_id": "uuid",
  "timestamp": "2026-03-04T14:00:00.000000Z",
  "data": {
    "contact": {
      "id": 42,
      "name": "Sarah Johnson",
      "deleted_at": "2026-03-04T14:00:00.000000Z"
    }
  }
}

Message events

message.received

Fired when an inbound message arrives from a contact.

{
  "event": "message.received",
  "delivery_id": "uuid",
  "timestamp": "2026-03-04T13:00:00.000000Z",
  "data": {
    "message": {
      "id": 201,
      "direction": "inbound",
      "channel": "whatsapp",
      "content": "Hi, I need help with my order.",
      "status": "received",
      "sent_at": "2026-03-04T13:00:00.000000Z"
    },
    "contact": {
      "id": 42,
      "name": "Sarah Johnson",
      "phone": "+14155551234",
      "type": "whatsapp"
    }
  }
}

message.sent

Fired when an outbound message is successfully sent via the API or dashboard.

{
  "event": "message.sent",
  "delivery_id": "uuid",
  "timestamp": "2026-03-04T13:02:00.000000Z",
  "data": {
    "message": {
      "id": 202,
      "direction": "outbound",
      "channel": "whatsapp",
      "content": "Hello! Our team will be with you shortly.",
      "status": "sent",
      "sent_at": "2026-03-04T13:02:00.000000Z"
    },
    "contact": {
      "id": 42,
      "name": "Sarah Johnson"
    }
  }
}

Booking events

booking.created

Fired when a new booking is created.

{
  "event": "booking.created",
  "delivery_id": "uuid",
  "timestamp": "2026-03-04T14:00:00.000000Z",
  "data": {
    "booking": {
      "id": 101,
      "title": "Consultation – Sarah Johnson",
      "status": "confirmed",
      "starts_at": "2026-03-10T14:00:00.000000Z",
      "ends_at": "2026-03-10T15:00:00.000000Z",
      "notes": null,
      "created_at": "2026-03-04T14:00:00.000000Z"
    },
    "contact": {
      "id": 42,
      "name": "Sarah Johnson",
      "phone": "+14155551234"
    }
  }
}

booking.updated

Fired when a booking is modified (e.g., rescheduled).

booking.cancelled

Fired when a booking is cancelled.

{
  "event": "booking.cancelled",
  "delivery_id": "uuid",
  "timestamp": "2026-03-05T09:00:00.000000Z",
  "data": {
    "booking": {
      "id": 101,
      "status": "cancelled",
      "cancelled_at": "2026-03-05T09:00:00.000000Z"
    },
    "contact": {
      "id": 42,
      "name": "Sarah Johnson"
    }
  }
}

booking.completed

Fired when a booking is marked as completed.


Ticket events

ticket.created

Fired when a new support ticket is opened.

{
  "event": "ticket.created",
  "delivery_id": "uuid",
  "timestamp": "2026-03-04T15:00:00.000000Z",
  "data": {
    "ticket": {
      "id": 55,
      "subject": "Issue with booking confirmation",
      "status": "open",
      "priority": "normal",
      "created_at": "2026-03-04T15:00:00.000000Z"
    },
    "contact": {
      "id": 42,
      "name": "Sarah Johnson"
    }
  }
}

Test event

ping

Sent when you trigger a test delivery from the dashboard or via POST /api/v1/webhooks/{id}/test.

{
  "event": "ping",
  "delivery_id": "uuid",
  "timestamp": "2026-03-04T12:00:00.000000Z",
  "data": {
    "message": "This is a test event from SkyLight Chat."
  }
}

All events reference

EventTrigger
contact.createdA contact is created
contact.updatedA contact is updated
contact.deletedA contact is deleted
message.receivedAn inbound message arrives
message.sentAn outbound message is sent
booking.createdA booking is created
booking.updatedA booking is updated
booking.cancelledA booking is cancelled
booking.completedA booking is completed
ticket.createdA support ticket is opened
pingManual test delivery