Events

Every event Goomzo sends, and what each one carries.

An event is one thing that happened, sent to every endpoint that hears it as a POST with a JSON body.

Events

EventWhen
message.sentThe gateway took a message.
message.deliveredA message reached the customer's phone.
message.readThe customer read a message. WhatsApp only.
message.failedA message couldn't be sent or delivered. error says why.
message.receivedA customer sent you a message on WhatsApp.
broadcast.finishedA broadcast finished going out, or couldn't. Includes its counts.
customer.createdA customer was added, one by one, through the API or by import.
sms.balance_lowFewer than 100 SMS are left. Sent once each time it falls below.
webhook.testOnly when you select Send test event.

Payloads

Each event is a POST with a JSON body:

{
  "id": "evt_4hq2v9n1c8x0t6pk",
  "type": "message.delivered",
  "timestamp": "2026-11-08T09:30:00Z",
  "organizationId": "org_...",
  "data": {
    "id": "msg_...",
    "broadcastId": null,
    "customerId": "cus_...",
    "channel": "sms",
    "to": { "name": "Amina Mushi", "phone": "+255712345678" },
    "status": "delivered",
    "error": null,
    "cost": 1,
    "sentAt": "2026-11-08T09:29:58Z",
    "deliveredAt": "2026-11-08T09:30:00Z",
    "failedAt": null,
    "test": false
  }
}

data depends on the event:

  • Messages: id, broadcastId, customerId, channel, to (name, and phone or email), status, error, cost, sentAt, deliveredAt, readAt, failedAt and test. A read receipt that arrives before the delivery report sends only message.read.
  • message.received: id, customerId, channel, from (their number), name (their WhatsApp name), kind (text; button or list for an option they chose; reaction; image, video, audio, document or sticker; location; contacts; or unsupported), text (a file's caption), attachment, replyTo (the id of the message it answers, or null) and receivedAt. attachment describes a file, place or contact cards; a file's url serves it with your API key once its state is kept, usually a few seconds after the event.
  • broadcast.finished: id, name, channel, status (sent or failed), error, recipients, sent, delivered, failed and test.
  • customer.created: id, name, phone, email and attributes.
  • sms.balance_low: left and threshold.

Next steps

Last updated