Send a WhatsApp Business template message for proactive support notification and handle inbound customer replies within the 24-hour service window
domain: developers.facebook.com/docs/whatsapp · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Register a WhatsApp Business phone number and verify it is active via the Cloud API (Meta) or an approved BSP
Submit a message template for approval via POST to /v{version}/{whatsapp-business-account-id}/message_templates with category set to UTILITY and the template components body
Once the template status is APPROVED, send an outbound notification via POST to /{phone-number-id}/messages with type:template, the approved template name, language code, and component parameters
Configure a webhook endpoint in Meta App Dashboard to receive inbound message events (messages.type=text) from customers who reply
Within the 24-hour customer service window opened by the reply, send free-form service messages via POST to /{phone-number-id}/messages with type:text — no template required
After window expiry, re-engage only with an approved template message; track window state by recording the timestamp of the customer's last inbound message
Known gotchas
Meta moved to per-message billing on July 1, 2025 — pricing is no longer per 24-hour conversation session; monitor message-level costs rather than session counts to avoid budget surprises
Template approval can be rejected or require revision without a clear explanation; build a fallback flow that can re-submit a corrected template and track approval status via GET on the template ID
The 24-hour service window clock resets on each inbound customer message, not on your outbound replies — failing to track the true last-inbound timestamp can cause free-form messages to be rejected as outside the window
Give your agent this knowledge — and 15,600+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?