Skip to content
AISARAISAR
Broadcasts

Broadcasts

Broadcast failed

broadcast.failed

Fires when a broadcast run fails entirely — for example, when every recipient ended in an error or was skipped, or (since 2026-09-09) when the channel fails a pre-send check: for a WhatsApp Business API account Meta reports as blocked from sending (health_status.can_send_message = BLOCKED, e.g. a payment-method issue), the run is stopped before the audience is even resolved — no recipient is touched. The reason is recorded in the broadcast's own log (`logs[]`, `run_failed` event) and in the channel's log under the `broadcast.preflight_blocked` code. This event is currently delivered via WebSocket (realtime) only; no outbound webhook POST is sent for it. The example below illustrates the standard event envelope.

HTTP request

AISAR sends a signed POST request to your webhook_url:

http
POST {webhook_url}
Content-Type: application/json
X-AISAR-Signature: sha256=...

{
  "event": "broadcast.failed",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-03-26T10:30:00.000000Z",
  "company_id": 1,
  "data": {
    "broadcast": {
      "id": 8,
      "name": "March Promo",
      "status": "failed",
      "channels": [2, 5],
      "created_at": "2026-03-26T10:00:00.000000Z"
    }
  }
}

The X-AISAR-Signature header carries an HMAC-SHA256 signature of the request body — use it to verify the request came from AISAR.

Example payload

json
{
  "event": "broadcast.failed",
  "event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
  "timestamp": "2026-03-26T10:30:00.000000Z",
  "company_id": 1,
  "data": {
    "broadcast": {
      "id": 8,
      "name": "March Promo",
      "status": "failed",
      "channels": [2, 5],
      "created_at": "2026-03-26T10:00:00.000000Z"
    }
  }
}

Payload fields

FieldTypeDescription
broadcast.idintegerBroadcast ID
broadcast.namestringBroadcast name
broadcast.statusstringBroadcast status: `draft`, `scheduled`, `sending`, `completed`, `failed`, or `cancelled`
broadcast.channelsarrayIDs of the channels used for this broadcast
broadcast.created_atstringISO 8601 creation timestamp