← Webhooks

Event catalog

These examples mirror the event naming already used in Watsi's existing integration docs and are meant to show the shape an integration should expect and persist.

Index

EventDescription
message.receivedNew inbound message payload from the messaging pipeline.
message.statusDelivery/read/failure status change for an outbound message.
conversation.createdA new conversation record was created.
conversation.updatedA conversation attribute such as assignee or automation state changed.
contact.createdA new contact record was created.
contact.updatedA contact profile was updated.

message.received

Triggered when an inbound message enters Watsi. Handlers typically use this event to sync inbound messages into an external CRM, warehouse, or workflow engine.

{
  "id": "evt_01HXYZ111111111",
  "type": "message.received",
  "created_at": "2025-03-15T10:30:00.000Z",
  "workspace_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "from": "5215512345678",
    "body": "Hola, quiero información",
    "messageId": "wamid.HBgL...",
    "conversationId": "chat_123",
    "channel": "whatsapp"
  }
}

message.status

Triggered when an outbound message changes state. Use it to reconcile sent, delivered, read, or failed transitions in downstream systems.

{
  "id": "evt_01HXYZ222222222",
  "type": "message.status",
  "created_at": "2025-03-15T10:32:00.000Z",
  "workspace_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "messageId": "wamid.HBgL...",
    "status": "delivered",
    "recipientId": "5215512345678",
    "timestamp": "1710499920"
  }
}

conversation.created

Triggered when Watsi opens a new conversation record for a contact.

{
  "id": "evt_01HXYZ333333333",
  "type": "conversation.created",
  "created_at": "2025-03-15T10:30:00.000Z",
  "workspace_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "conversationId": "chat_123",
    "contactId": "contact_123",
    "status": "active",
    "channel": "whatsapp"
  }
}

conversation.updated

Triggered when a tracked conversation field changes, such as assignment, closure state, or automation status.

{
  "id": "evt_01HXYZ444444444",
  "type": "conversation.updated",
  "created_at": "2025-03-15T11:00:00.000Z",
  "workspace_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "conversationId": "chat_123",
    "status": "closed",
    "assignedUserId": "user_123",
    "watsiEnabled": false
  }
}

contact.created

Triggered when Watsi creates a new contact record.

{
  "id": "evt_01HXYZ555555555",
  "type": "contact.created",
  "created_at": "2025-03-15T10:30:00.000Z",
  "workspace_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "contactId": "contact_123",
    "phone": "+5215512345678",
    "name": "Ana Martínez"
  }
}

contact.updated

Triggered when Watsi updates a contact profile.

{
  "id": "evt_01HXYZ666666666",
  "type": "contact.updated",
  "created_at": "2025-03-16T09:00:00.000Z",
  "workspace_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "contactId": "contact_123",
    "name": "Ana M. García",
    "email": "ana@example.com"
  }
}