WhatsApp setup β
WhatsApp is the channel members actually read. Open rates north of 95 percent are typical, and most of our user base reports higher engagement on WhatsApp than email or SMS. GCM supports three different ways to plug a WhatsApp account in, each with different trade-offs.
This page covers wiring up the provider credentials. For using WhatsApp once it's connected, see the WhatsApp messaging guide.

Pick a provider β
Three options, very different cost and complexity profiles:
| Provider | What it actually is | Setup | Cost | Best for |
|---|---|---|---|---|
| WACRM (WAHA-backed) | Your real WhatsApp account, controlled via WAHA's web API | low β scan a QR | low | most churches |
| WhatsApp Official | Meta's Business API directly | high | per-message after free tier | high-volume, template-only |
| smsmobileapi WhatsApp | A relay through your phone's WhatsApp | low | bundled with SMS | regions where the others are limited |
TIP
We recommend WACRM for almost everyone. Switch to Official only when you genuinely need template messages outside the 24-hour customer-service window at scale.
Option 1 β WACRM (WAHA-backed) β
WACRM runs WAHA (the WhatsApp HTTP API) on top of a phone session. You scan a QR code from a phone that has your church's WhatsApp account, and from then on GCM can send and receive on that account through the WAHA platform.
Go to Settings β Channels β WhatsApp, pick WACRM (WAHA) as the provider, and enter:
- API key β issued by WACRM (
https://wa.locatecrm.com). - API base β defaults to
https://wa.locatecrm.com/v1; only change if your reseller hosts it elsewhere. - Default session ID β the WACRM session that owns the linked phone.
- Webhook secret β optional, signs inbound webhooks back to GCM.

Link your phone β
In Settings β WhatsApp devices, click Link a device. WACRM shows a QR code; open WhatsApp on the church phone, go to Linked devices β Link a device, and scan it. The status flips to working within ten seconds.
A linked session stays alive until you log out from the phone's linked-devices list. We monitor session health β if WACRM reports the session dropped, the WhatsApp channel auto-disables and we email org admins.
Bulk sending β
WACRM has its own pacing engine that spreads bulk sends across hours to avoid Meta's anti-spam heuristics. You can send to 5,000 members in one click; WACRM auto-queues them and we'll show queued status in message logs until each one delivers.
Option 2 β WhatsApp Official (Business API) β
This is Meta's official cloud API. Setup is significantly more involved β but you get higher throughput, template messages, and the legitimacy of a verified business badge.
You'll need:
- A Meta Business Manager account.
- A verified business (passport / company docs).
- A WhatsApp Business phone number that isn't registered to a personal WhatsApp.
- The Cloud API enabled in your Meta app.
Then in GCM:
- Access token β long-lived token from Meta's Business System User.
- Phone number ID β the numeric ID Meta assigns to your business number.
- Business account ID β the WABA ID.
- App secret β used to verify inbound webhook signatures.
- Default template name / language β used when sending outside the 24-hour customer-service window.

The 24-hour window β
Meta only allows free-form messages within 24 hours of the recipient last messaging you. Outside that window, you can only send pre-approved template messages.
GCM automatically detects this: if a member hasn't messaged you in 24 hours, we fall back to the template you configured in default_template_name. If no template is configured, the send is rejected with outside_24h_window. You'll see this in the message log β it's not a bug, it's Meta's rule.
Inbound webhook β
After saving credentials, copy the webhook URL GCM shows you (/channel-webhook?provider=whatsapp_official) and paste it into your Meta app's Webhooks configuration. Use the verification token GCM displays. Once Meta confirms, inbound messages, status updates, and delivery receipts all flow into GCM.
Option 3 β smsmobileapi WhatsApp β
A relay service that uses your phone's own WhatsApp. Same setup as their SMS service: one API key powers both SMS and WhatsApp sends, billed together.
- API key β from your smsmobileapi dashboard.
Trade-off: this is rate-limited by the phone you've installed their app on. Fine for sub-1,000 message sends, painful at high volumes.
Per-channel features β
Once a provider is configured, Settings β Channels β WhatsApp lets you tune:
- Media support β turn off if your provider doesn't support outbound images / PDFs.
- Max recipients per bulk β defaults to 500, can drop lower if you want forced batching.
- Merge tokens β enable
{{first_name}}style personalization in templates. - Two-way conversation routing β inbound messages create conversations for staff to reply.
Testing the connection β
In Settings β Channels β WhatsApp, hit Send test message. We send a "Hello from GCM" message to the org admin's primary phone. If it arrives in <30 seconds, you're set. If not, check:
- The provider's own activity log (WACRM dashboard, Meta's API testing tool, smsmobileapi's history).
- The phone is still on, online, and the session is
working. - The recipient hasn't blocked the sender number.
When credentials break β
The most common failure mode: someone reboots the church phone and forgets to reconnect. The WAHA session drops, sends start failing. We'll email admins after 5 consecutive failures β re-link the phone in Settings β WhatsApp devices to recover.
Cross-references β
- WhatsApp messaging β how to actually send once configured.
- Conversations β manage inbound replies.
- SMS setup β the lower-cost text fallback.
