Skip to content
Reference/Webhooks/Event Payload Format

Event Payload Format

POSThttps://public.leadpattern.com/your-registered-webhook-url
application/json60 req/min

This is what LeadPattern POSTs to your registered endpoint when an event fires: an envelope { id, event, timestamp, data }. id is unique per event and identical across retries (also sent as X-Webhook-Id) — use it to deduplicate. Respond with any 2xx within 10 seconds. For BSUID contacts (opted-in users who have not shared their phone number) the contact carries bsuid and username instead of waId and phone. See the Webhooks Guide for signature verification, delivery rules and an example of every event.

Headers

1 field
Authorizationstring
required
Your API key. Sent raw (e.g. 'lp_...'). No Bearer prefix required.

Request Body

{
  "id": "3f1c2a9e-7b4d-4c1e-9a52-0d6c8e7f1b20",
  "event": "message_received",
  "timestamp": "2026-07-01T10:30:00.000Z",
  "data": {
    "waId": "919999999999",
    "message": {
      "waId": "919999999999",
      "messageId": "wamid.HBgMOTE5OTk5OTk5OTk5FQIAEhgg",
      "direction": "incoming",
      "type": "text",
      "content": {
        "text": {
          "body": "Hi, is the Pro plan available?"
        }
      },
      "status": "received",
      "statusTimestamp": "2026-07-01T10:29:58.000Z",
      "timestamp": "2026-07-01T10:29:58.000Z",
      "replyTo": null
    },
    "contact": {
      "waId": "919999999999",
      "bsuid": null,
      "username": null,
      "name": {
        "first": "Asha",
        "last": "Rao"
      },
      "profileName": "Asha",
      "phone": "9999999999",
      "countryCode": "91",
      "status": "open",
      "optOut": false,
      "assignedTo": {
        "id": "664abc123def456789000001",
        "name": "Ravi (Sales)"
      },
      "tags": [
        {
          "id": "664abc123def456789000aaa",
          "name": "Hot lead",
          "color": "#6366f1"
        }
      ],
      "customAttributes": [
        {
          "slug": "city",
          "value": "Pune"
        },
        {
          "slug": "plan_interest",
          "value": "Pro"
        }
      ]
    },
    "wabaNumber": "919876543210"
  }
}

Responses

Envelope LeadPattern POSTs to your URL. Respond with any 2xx within 10 seconds; 408/425/429/5xx and timeouts are retried (9 attempts over ~24h: 10s, 1m, 5m, 30m, 1h, 3h, 6h, 12h), other responses are not.
JSON Response
{
  "status": 200
}

Sample Request Body

{
  "id": "3f1c2a9e-7b4d-4c1e-9a52-0d6c8e7f1b20",
  "event": "message_received",
  "timestamp": "2026-07-01T10:30:00.000Z",
  "data": {
    "waId": "919999999999",
    "message": {
      "waId": "919999999999",
      "messageId": "wamid.HBgMOTE5OTk5OTk5OTk5FQIAEhgg",
      "direction": "incoming",
      "type": "text",
      "content": {
        "text": {
          "body": "Hi, is the Pro plan available?"
        }
      },
      "status": "received",
      "statusTimestamp": "2026-07-01T10:29:58.000Z",
      "timestamp": "2026-07-01T10:29:58.000Z",
      "replyTo": null
    },
    "contact": {
      "waId": "919999999999",
      "bsuid": null,
      "username": null,
      "name": {
        "first": "Asha",
        "last": "Rao"
      },
      "profileName": "Asha",
      "phone": "9999999999",
      "countryCode": "91",
      "status": "open",
      "optOut": false,
      "assignedTo": {
        "id": "664abc123def456789000001",
        "name": "Ravi (Sales)"
      },
      "tags": [
        {
          "id": "664abc123def456789000aaa",
          "name": "Hot lead",
          "color": "#6366f1"
        }
      ],
      "customAttributes": [
        {
          "slug": "city",
          "value": "Pune"
        },
        {
          "slug": "plan_interest",
          "value": "Pro"
        }
      ]
    },
    "wabaNumber": "919876543210"
  }
}