Reach customers on WhatsApp from the same dashboard and audience as your other channels — order updates and reminders (transactional), or campaigns to a segment. Built on the WhatsApp Business API.
1. Connect WhatsApp
In your project's channel settings, enable WhatsApp and connect your business sender:
- WhatsApp Cloud API (Meta) — connect your WhatsApp Business Account, phone-number id, and access token.
- BSP — or route through a supported business solution provider.
Credentials are stored per project. Import your approved message templates (managed in Meta / your BSP) so you can send business-initiated messages.
Templates & the 24-hour window. WhatsApp requires a pre-approved template for business-initiated messages. Within 24 hours of a user's last inbound message (the customer-service window), you can also send free-form
text.
2. Send
Campaigns — compose to a segment from the dashboard (Messaging → Broadcasts), choosing an approved template.
Transactional — one recipient, from your backend, via the Server SDK:
import { ReachBell } from '@reachbell/node';
const rb = new ReachBell({ apiKey: process.env.REACHBELL_API_KEY! });
// Business-initiated — use an approved template:
await rb.transactional.whatsapp({
externalId: 'user_42', // or: to: '+919876543210'
template: { name: 'order_update', params: ['#4821', 'shipped'] },
});
// Inside the 24h service window — free-form text is allowed:
await rb.transactional.whatsapp({ to: '+919876543210', text: 'Thanks! Anything else?' });Prefer raw HTTP? The same call is POST /transactional/whatsapp — see the Server API.
3. Receiving messages & delivery status
Delivery receipts and inbound replies arrive over a webhook — this is what powers the deliverability dashboard and automatic STOP handling.
On ReachBell Cloud this is already wired — nothing to do. If you self-host or connect your own Meta app, point WhatsApp at ReachBell's webhook in Meta → WhatsApp → Configuration → Webhooks:
- Callback URL —
https://<your-api-host>/webhooks/whatsapp(e.g.https://api.reachbell.com/webhooks/whatsapp) - Verify token — any random string; set it as
WHATSAPP_VERIFY_TOKENin the API and paste the same value here - Subscribe to the
messagesfield
Set WHATSAPP_APP_SECRET (your Meta app secret) in the API so incoming requests are signature-verified (X-Hub-Signature-256). One webhook serves every project — inbound events are routed to the right project by their WhatsApp phone-number id.
Opt-out
Per-channel opt-out from the hosted preference center, and inbound STOP is honoured — without affecting the subscriber's email or push subscriptions.
See also
- Server SDK · Automations · SMS