Webhook events

Reference for all events your webhook can receive.

Chat events

chat.created

Fired when a visitor starts a new chat.

{
  "event": "chat.created",
  "timestamp": "2025-01-15T08:30:00.000Z",
  "organizationId": "clxyz1234567890",
  "data": {
    "chatId": "clxyz_chat_001",
    "visitorId": "visitor_abc123",
    "metadata": {
      "page": "https://example.com/pricing",
      "userAgent": "Mozilla/5.0..."
    }
  }
}

chat.accepted

Fired when an agent accepts a queued chat.

{
  "event": "chat.accepted",
  "timestamp": "2025-01-15T08:31:00.000Z",
  "organizationId": "clxyz1234567890",
  "data": {
    "chatId": "clxyz_chat_001",
    "agentId": "agent_456"
  }
}

chat.closed

Fired when a chat is closed by an agent or the system.

{
  "event": "chat.closed",
  "timestamp": "2025-01-15T09:15:00.000Z",
  "organizationId": "clxyz1234567890",
  "data": {
    "chatId": "clxyz_chat_001",
    "closedBy": "agent_456",
    "reason": "resolved"
  }
}

chat.transferred

Fired when a chat is transferred to another agent or group.

{
  "event": "chat.transferred",
  "timestamp": "2025-01-15T08:45:00.000Z",
  "organizationId": "clxyz1234567890",
  "data": {
    "chatId": "clxyz_chat_001",
    "fromAgentId": "agent_456",
    "toGroupId": "group_support_tier2",
    "reason": "escalation"
  }
}

chat.rated

Fired when a visitor rates a chat.

{
  "event": "chat.rated",
  "timestamp": "2025-01-15T09:20:00.000Z",
  "organizationId": "clxyz1234567890",
  "data": {
    "chatId": "clxyz_chat_001",
    "rating": 5,
    "comment": "Very helpful, thank you!"
  }
}

Message events

message.sent

Fired when a new message is sent in a chat.

{
  "event": "message.sent",
  "timestamp": "2025-01-15T08:32:00.000Z",
  "organizationId": "clxyz1234567890",
  "data": {
    "chatId": "clxyz_chat_001",
    "messageId": "msg_789",
    "content": "Hello, how can I help you today?",
    "senderType": "AGENT"
  }
}

Agent events

agent.online

Fired when an agent comes online.

{
  "event": "agent.online",
  "timestamp": "2025-01-15T08:00:00.000Z",
  "organizationId": "clxyz1234567890",
  "data": {
    "agentId": "agent_456",
    "timestamp": "2025-01-15T08:00:00.000Z"
  }
}

agent.offline

Fired when an agent goes offline.

{
  "event": "agent.offline",
  "timestamp": "2025-01-15T18:00:00.000Z",
  "organizationId": "clxyz1234567890",
  "data": {
    "agentId": "agent_456",
    "timestamp": "2025-01-15T18:00:00.000Z"
  }
}

agent.status_changed

Fired when an agent's status changes.

{
  "event": "agent.status_changed",
  "timestamp": "2025-01-15T12:00:00.000Z",
  "organizationId": "clxyz1234567890",
  "data": {
    "agentId": "agent_456",
    "oldStatus": "ONLINE",
    "newStatus": "AWAY"
  }
}

Visitor events

visitor.started_typing

Fired when a visitor begins typing in the chat widget.

{
  "event": "visitor.started_typing",
  "timestamp": "2025-01-15T08:31:30.000Z",
  "organizationId": "clxyz1234567890",
  "data": {
    "chatId": "clxyz_chat_001",
    "visitorId": "visitor_abc123"
  }
}

visitor.page_visited

Fired when a tracked visitor navigates to a new page.

{
  "event": "visitor.page_visited",
  "timestamp": "2025-01-15T08:29:00.000Z",
  "organizationId": "clxyz1234567890",
  "data": {
    "visitorId": "visitor_abc123",
    "url": "https://example.com/pricing",
    "title": "Pricing — Example"
  }
}
Selective subscription — You can subscribe to individual events or all events. Subscribing only to events you need reduces noise and improves performance.