Know the moment a message is read, answered or opted out.
Polling for status is slow and wasteful. Buddy webhooks tell your app the instant a message is delivered, read or replied to, or someone opts out, signed so you know it's really us.
16:40:03
16:42:07
Replied STOP
Your app shouldn't have to ask what happened.
Without webhooks you poll, guess and miss things: a reply that needed an answer, an opt-out your system didn't hear about. Webhooks push every change to you as it happens.
Polling, guessing, missing.
- Cron jobs asking for status every few minutes.
- Replies discovered hours later.
- Opt-outs your CRM never hears about.
- No way to tell if a callback is genuine.
- Lost events when your server was down.
Every change, pushed the moment it happens.
- Delivered, read and replied, in real time.
- Replies routed to your support tool instantly.
- Opt-outs synced so every system respects them.
- Every request signed and verifiable.
- Automatic retries if your endpoint is down.
Add an endpoint. Verify. React.
Three steps to a live feed of everything happening with your WhatsApp messages and subscribers.
Add an endpoint
Give Buddy your HTTPS URL and pick the events you want. Buddy shows you the signing secret.
Verify the signature
Each request carries a signature made with your secret. Check it in a few lines before you trust the payload.
React
Update your records, open a support ticket for a reply, or stop your own emails when someone opts out.
Everything inside Webhooks.
The events, guarantees and tools that make webhooks you can rely on in production.
Every message and subscriber change, as it happens.
Sent, delivered, read, failed and replied for messages. Created, tagged, opted in and opted out for subscribers. Subscribe to the ones you need.
If your server is down, Buddy retries with backoff, so a deploy never costs you an event.

Signed requests
Every request is signed with your secret and timestamped, so you can reject fakes and replays.
Automatic retries
Failed deliveries are retried with increasing gaps until your endpoint answers.
Choose your events
Subscribe each endpoint to just the event types it needs.
Delivery log
See every webhook sent, its response code and timing, from your Buddy settings.
Replays
Resend any event from the log after you fix a bug in your handler.
Test events
Fire a sample event at your endpoint to check your handler before going live.
Failure reasons
message.failed includes a plain-English reason, like a number that isn't on WhatsApp.
Multiple endpoints
Send different events to different systems: replies to support, opt-outs to your CRM.
Timestamps
Every payload has a timestamp so you can apply changes in the right order.
What webhooks make possible.
Replies reach a person while it still matters.
Send message.replied to your help desk or CRM and the right person sees it in seconds, not at the next sync.

Opt-outs respected everywhere, not just in Buddy.
Forward subscriber.opted_out to your CRM and email tool, so someone who said STOP on WhatsApp is respected across your whole stack.
Never lose an event to a bad deploy.
If your endpoint fails, Buddy retries with backoff and keeps a log, so you can replay anything you missed once you've fixed it.
What teams wire webhooks into.
Help desk
Replies become tickets the moment they arrive.
SupportCRM
Reads, replies and opt-outs on every contact record.
SalesData warehouse
Every message event for your own reporting.
AnalyticsEmail tool
Opt-outs pause marketing emails too.
MarketingYour product
Show users their message status inside your app.
PlatformsThree things people ask about Webhooks.
How do I know a webhook really came from Buddy?
Each request is signed with your endpoint's secret and timestamped. Verify the signature and reject anything that doesn't match or is too old.
What if my server is down?
Buddy retries failed deliveries with increasing gaps, and logs every attempt so you can replay events later.
Can I get events for one workspace only?
Webhooks belong to a workspace, so each one only receives events for its own messages and subscribers.
Questions about Webhooks.
Anything else, ask Sarah.She reads every message and writes back herself.Which events can I subscribe to?
Message events (sent, delivered, read, replied, failed) and subscriber events (created, tagged, opted in, opted out). Choose them per endpoint.
How should my endpoint respond?
Return a 2xx status within a few seconds. Do heavy work after responding, so slow processing doesn't trigger retries.
Are read events always sent?
WhatsApp only reports a read when the recipient has read receipts on, so some delivered messages never get a read event.
Can I replay old events?
Yes. Pick any event in the delivery log and send it again.
How do I get access?
Join the waitlist and tell us what you're building. We'll set up your workspace with test and live keys and help with your first integration.
The rest of the Buddy developer platform.
Developers overviewHear about every message the moment it matters.
Join the waitlist and connect your first endpoint the day you get keys.
Webhook sent
16:42
Ticket created
200 OK