- Flow A — Outbound CRUD webhooks. Xobito fires events when contacts, statuses, or sources are created, updated, or deleted in your workspace. Configured under Settings → Webhook Settings (the CRUD section). Documented at Webhooks Overview.
- Flow B — Meta webhook forwarder. Xobito receives every WhatsApp webhook Meta sends to your WABA (account alerts, message echoes, quality ratings, etc.) and can forward the ones you care about to your own URL. Configured under Settings → Webhook Settings in the “Webhook Resend” section.
The two flows at a glance
When to use Flow A vs Flow B
Use Flow A when...
Use Flow B when...
Flow B — Meta webhook forwarder
Meta sends your WABA all kinds of webhook events: incoming messages, delivery status, template approval updates, phone-number quality changes, flow events, and more. Xobito receives and processes them so the dashboard, campaigns, and bots work correctly. The Webhook Resend feature does one extra thing: for the event fields you tick, Xobito also re-posts the payload to a URL you choose, so your own systems get a copy.Enable forwarding
Open Settings → Webhook Settings
Turn on 'Enable Webhook Resend'
Enter your destination URL
Set a method label (required)
POST, POST-JSON, Zapier-hook). This is a note, not a validated HTTP verb — Xobito does not change how it calls your endpoint based on this value. Required whenever Enable Webhook Resend is on.Select which Meta fields to forward
Save
Field reference
false, no events are forwarded regardless of which fields are ticked.url validator), max 255 characters. Required when enable_webhook_resend is true. Use HTTPS in production.enable_webhook_resend is true (validation rule required_if:enable_webhook_resend,true).PurifiedInput rule (strips control characters, normalises whitespace). Very long labels or URLs are rejected at 255 characters.Security of forwarded events
Because forwards are unsigned, treat your receiver conservatively:- Always use HTTPS for
whatsapp_data_resend_to— this protects payload integrity in transit. - Validate the payload shape on your side before trusting it. Reject requests that don’t match Meta’s documented schema.
- IP allowlist if possible. Xobito forwards from the same server that talks to Meta — keep that server’s egress IPs in a short list and allow only those.
- Rotate the URL if you believe it’s leaked. Treat the URL itself as a weak secret.
- Don’t trigger destructive actions (deletes, refunds) directly from a forwarded event without a second check — poll Xobito’s API to confirm before acting.
Meta fields you can forward
Xobito enumerates 30+ Meta webhook fields in the settings page. Pick only what you need — each extra field ticked means more traffic to your endpoint.Account & business
Account & business
Calls
Calls
Flows
Flows
History
History
Message events
Message events
Message status & quality
Message status & quality
Groups
Groups
Payment
Payment
Other
Other
Sample forwarded payload
Xobito forwards Meta’s payload as-is. Below is a representative example of an incoming-message event (messages field) for reference only — the exact shape is defined by Meta and can change.
Testing your endpoint
There is no built-in “Send test webhook” button on the Xobito settings page. To verify end-to-end you need to trigger a real Meta event. Practical ways:- Messages: send a WhatsApp message from a test phone to your business number.
- Template quality: this is out of your control — rely on the
messagestest for wiring, and add monitoring for quality events later. - Phone number quality: same — wire it now, observe in production.
Flow A — Outbound CRUD webhooks (summary)
Configured in the same settings page but under the Webhook URL / events section. Fires on contact/status/source create/update/delete events inside your workspace. Signed with HMAC-SHA256, up to 3 attempts with 1s and 2s waits between retries, 30-second timeout. See the full guide and payload schema at Webhooks Overview. Security and signature verification at Webhook Security. Full event catalogue at Webhook Events.Troubleshooting
I saved the settings but nothing arrives at my URL
I saved the settings but nothing arrives at my URL
- Is Enable Webhook Resend on?
- Have you ticked at least one field?
- Has a matching Meta event actually happened? (e.g. you ticked
messages— send a message from a test phone.) - Is your URL reachable from the public internet over HTTPS? Try a
curl -X POSTfrom another network to confirm. - Is your endpoint returning a 2xx? Some receivers reject unknown content types.
My endpoint returns 5xx — does Xobito retry?
My endpoint returns 5xx — does Xobito retry?
- Respond 200 fast, queue the payload internally, then process asynchronously.
- If you need delivery guarantees, consider polling Xobito’s API to fill gaps, or use Flow A for the records you care about.
TLS / HTTPS errors
TLS / HTTPS errors
- Make sure your certificate is issued by a public CA (Let’s Encrypt, DigiCert, etc.) — self-signed certs may be rejected.
- Ensure your hostname matches the certificate’s SAN.
- Disable HTTP/2-only features if your backend can’t handle Meta-scale throughput.
I'm getting too many events
I'm getting too many events
messages or message_echoes. Narrow the selection or move event handling to a queue on your side.Payloads look different from Meta's docs
Payloads look different from Meta's docs
I need a signature / HMAC on forwarded events
I need a signature / HMAC on forwarded events
- Use HTTPS + IP allowlist.
- Treat the destination URL itself as a weak shared secret (rotate if leaked).
- If signature verification is a hard requirement, use Flow A for the Xobito-originated records you care about — those are signed.
Frequently asked questions
Can I forward to multiple URLs?
Can I forward to multiple URLs?
Can I filter events by phone number or content?
Can I filter events by phone number or content?
Does disabling the resend toggle delete my field selections?
Does disabling the resend toggle delete my field selections?
Will Xobito stop processing events if my URL is down?
Will Xobito stop processing events if my URL is down?