Webhook setup
After you save a WhatsApp number in CraftBot, you must point Meta at CraftBot’s webhook endpoint so inbound messages flow into the platform.
In CraftBot
- Go to Settings → Channels → WhatsApp Numbers and open the channel.
- Scroll to the Webhook Setup section near the bottom of the detail page and expand it.
- Copy the displayed Webhook URL. It looks like
https://<your-craftbot-host>/api/v1/webhooks/whatsapp. There is no per-channel suffix — Meta routes inbound payloads to the right channel via thephone_number_idthey include. - The Verify Token field shows a masked preview by default. Click Show to reveal the actual token, then Copy. This is the value you set when you saved the channel (or rotated via Edit → Replace).
In Meta Business Manager
- Open your Meta App → WhatsApp → Configuration.
- Under Webhook, click Edit.
- Paste the Callback URL.
- Paste the Verify Token.
- Click Verify and save. Meta hits the URL with a
GETcontaining the verify token; CraftBot replies with the challenge value if the token matches. - After verification succeeds, Manage the webhook field subscriptions and enable:
messages— inbound messages plus delivery / read / failed status callbacks all ride on this field.message_template_status_update— Meta pushes template approval / rejection / pause events here, which CraftBot uses to keep the Templates list in sync.
Status callbacks (delivered / read / failed) arrive on
messages, not on a separatemessage_statusfield. Meta’s UI may list other fields; only the two above are required for the standard inbound + delivery + template-sync loop.
Verifying the loop
After Meta’s webhook is verified, send a real WhatsApp message to your business number. Within 1–2 seconds:
- The message appears in the inbox under the channel’s configured default routing.
- The conversation timeline shows the inbound payload.
- If a recipe trigger matches, the bot session starts.
Common failures
| Symptom | Cause | Fix |
|---|---|---|
| Meta says “verification failed”. | Verify token mismatch, or Callback URL not reachable. | Re-check the token; confirm the URL is publicly reachable (Traefik / TLS). |
| Webhook verifies but no inbound messages. | Field subscription not enabled, or messages not selected. | Re-open Meta’s Manage dialog and enable messages. |
| Inbound arrives but no bot reply. | No recipe trigger matches, or recipe is in draft (not published). | Check trigger keyword and verify the recipe is published. |
Re-verification
If you rotate the verify token in CraftBot, Meta will start rejecting webhook deliveries until you re-run the verification flow with the new token. Plan rotations during a low-traffic window.
Last updated on