Guides · Twilio

Get a Mac notification when a Twilio SMS is delivered or fails

Twilio reports each message's progress to a status callback URL: queued, sent, delivered, undelivered, failed. Point it at EventBar and a failed text is a notification, and the deliveries are a count.

Needs: the free EventBar app on your Mac, an EventBar account, and a Twilio account with permission to add webhooks. About five minutes. Generic JSON.

Steps

  1. Create the webhook URL. In the EventBar dashboard, open the Webhooks tab, pick the group this belongs to (one group per site or app is the usual shape), choose the provider Generic JSON, name it, and press Create. Copy the URL; it stays visible and can be rotated any time.
  2. Paste it into Twilio. Twilio takes the callback URL in two places: per message as the StatusCallback parameter when you call the API, or once for every message on a Messaging Service, under Messaging, then Services, your service, then Integration, then Delivery Status Callback. Paste the hook URL. Create the EventBar hook as Generic JSON with default type sms_status: Twilio posts form-encoded, not JSON, and a form body has no field EventBar can read as a type. A phone number's A message comes in webhook (Phone Numbers, the number, then Messaging Configuration) posts the same shape; give it a second hook with default type sms_inbound to count incoming texts.
  3. Trigger one. Most services offer a test delivery; otherwise do the real thing once. It shows up in the dashboard's Events tab within a second and in the menu bar, as an undefined type named after the event. That first one is your proof the wiring works.
  4. Make it read well. Press Define on the new type and give it a title and a body template. Fields come from the payload, nested ones with dots. The table below is a starting point.

What you'll see

TypeTitleBody template
sms_statusSMS status{message}
sms_inboundIncoming SMS{message}

Every type has its own switch in the menu bar, so a noisy one can be quiet on this Mac and still counted. Counts cover the last hour, 24 hours, 7 days, 30 days and all time.

Worth knowing

The full contract, including how each preset reads a payload and what the answers mean, is in the API docs. Something about Twilio's payload changed? Tell us and we'll fix the guide.