Skip to main content
All webhook payloads follow a consistent top-level structure with event-specific data nested within the data object.
type
string
required
The event type (e.g. campaign.approval.approved).
data
object
required
Event-specific payload for this webhook.
createdAt
string
required
ISO 8601 timestamp when the webhook event was created.
{
  "type": "campaign.approval.approved",
  "data": {
    "approval": {
      "id": "550e8400-e29b-41d4-a716-446655440710",
      "isBlocking": true,
      "message": "Legal sign-off needed for this campaign.",
      "dueDate": "2025-03-05T17:00:00.000Z",
      "createdAt": "2025-02-26T14:00:00.000Z",
      "status": "Approved",
      "approvedAt": "2025-02-26T16:15:00.000Z",
      "approvedBy": {
        "id": "550e8400-e29b-41d4-a716-446655440021",
        "firstName": "Sam",
        "lastName": "Chen",
        "email": "sam@example.com"
      },
      "requestedBy": {
        "id": "550e8400-e29b-41d4-a716-446655440010",
        "firstName": "Jane",
        "lastName": "Doe",
        "email": "jane@example.com"
      },
      "campaign": {
        "id": "550e8400-e29b-41d4-a716-446655440003",
        "name": "Launch 2025",
        "startDate": "2025-01-01",
        "endDate": "2025-12-31"
      },
      "workspace": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "slug": "acme",
        "name": "Acme Inc"
      }
    }
  },
  "createdAt": "2025-02-26T16:15:00.000Z"
}