Skip to content

CRM Webhooks

The CRM Webhooks feature allows you to subscribe to CRM-level events across your account. Unlike channel webhooks (configured per-channel), CRM webhooks are managed through the Webhook Center in your MAIA dashboard.

Setting Up CRM Webhooks

  1. Navigate to SettingsWebhooks in your MAIA dashboard
  2. Click Add Webhook to create a new webhook
  3. Configure:
    • Name: A descriptive name for the webhook
    • URL: Your HTTPS endpoint that will receive events
    • Trigger Types: Select which events to receive
    • Kanban Filter: Optionally limit to specific kanbans
    • Field Filter: Optionally limit to specific fields (for field update events)
  4. Save and copy your webhook secret (shown only once)

Event Types

Event TypeDescription
crm_field_updateA field value changed on a CRM record
crm_record_createdA new CRM record was created
crm_record_deletedA CRM record was deleted
ai_pauseAI was paused or resumed for a session

Event Payloads

All webhook payloads include an eventType field. Here are the payload structures for each event:

crm_field_update Payload

json
{
  "eventType": "crm_field_update",
  "recordId": "record_1704067200000_abc123",
  "kanbanId": "kanban_1704067200000_abc123def",
  "kanbanName": "Sales Pipeline",
  "externalUserId": "user-123",
  "fieldName": "Email",
  "fieldType": "email",
  "previousValue": "old@example.com",
  "newValue": "new@example.com",
  "updatedBy": "user_abc123",
  "updatedAt": "2024-01-15T10:30:00.000Z",
  "sessionId": "session_xyz789"
}

crm_record_created Payload

json
{
  "eventType": "crm_record_created",
  "recordId": "record_1704067200000_abc123",
  "kanbanId": "kanban_1704067200000_abc123def",
  "kanbanName": "Sales Pipeline",
  "externalUserId": "user-123",
  "title": "New Lead - John Doe",
  "status": "new",
  "customFields": {
    "field_1704067200001_xyz789": "john@example.com",
    "field_1704067200002_abc456": "+1234567890"
  },
  "assignedUserIds": ["user_abc123"],
  "createdBy": "user_abc123",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "sessionId": "session_xyz789",
  "channelId": "channel_123"
}

crm_record_deleted Payload

json
{
  "eventType": "crm_record_deleted",
  "recordId": "record_1704067200000_abc123",
  "kanbanId": "kanban_1704067200000_abc123def",
  "kanbanName": "Sales Pipeline",
  "externalUserId": "user-123",
  "title": "Deleted Lead - John Doe",
  "status": "new",
  "customFields": {
    "field_1704067200001_xyz789": "john@example.com"
  },
  "assignedUserIds": ["user_abc123"],
  "deletedBy": "user_abc123",
  "deletedAt": "2024-01-15T10:30:00.000Z"
}

ai_pause Payload

json
{
  "eventType": "ai_pause",
  "sessionId": "session_xyz789",
  "channelId": "channel_123",
  "aiPaused": true,
  "changedBy": "user_abc123",
  "changedAt": "2024-01-15T10:30:00.000Z"
}

Security

All CRM webhook requests include an HMAC-SHA256 signature in the X-Maia-Signature header and a timestamp in the X-Maia-Timestamp header. See Security for verification instructions.

MAIA Platform Documentation