Wiki · Integrations

WhatsApp

WhatsApp has two completely different paths and people mix them up constantly. Which one to choose and what to watch.

✅ Verified 17. 10. 2026Source: official documentation →📋 Copy for your AI
📱
WhatsApp has two completely different paths and people mix them up constantly. The quick bridge (Baileys) behaves like WhatsApp Web on your own number — set up in minutes, no business account needed, but WhatsApp does not officially support it. The Business Cloud API is the official route for a company: no ban risk, but a Meta business account, a public HTTPS address and per-conversation billing.

Which path to choose

Bridge (Baileys)Business Cloud API
SetupMinutes — scan a QR codeHours — Meta app, business portfolio, webhook
AccountYour number (ideally a dedicated one)Meta Business + WhatsApp Business Account
Public addressNot neededHTTPS webhook needed (e.g. Cloudflare Tunnel)
RiskSome risk of account restrictions (unofficial)None — the official route
CostFreePer conversation, per Meta's price list
Best forYour own agent, family, a small teamCustomer support, a business

Path 1: the quick bridge

hermes gateway setup # pick WhatsApp and follow the wizard

The wizard has you scan a QR code (like signing in to WhatsApp Web). From then on the agent answers messages on that number.

SettingMeaning
WHATSAPP_ENABLEDTurns the adapter on
WHATSAPP_ALLOWED_USERSWho the agent may answer (international format)
WHATSAPP_GROUP_POLICYHow to behave in groups
WHATSAPP_REQUIRE_MENTIONWhether a mention is required in groups
WHATSAPP_MODEBridge mode (see the docs for your version)
⚠️
Three rules that lower the risk of account restrictions: use a dedicated number (not your personal one), do not send bulk messages, and do not message people who have not written first. An agent should converse, not broadcast.

WhatsApp occasionally changes its protocol and the bridge breaks for a while. The fix is usually to update Hermes and re-pair the number — not to hunt for a configuration error.

Path 2: Business Cloud API

hermes whatsapp-cloud # a wizard that validates each value as you paste it
What you needWhere it comes from
Business portfolio and an app with WhatsAppbusiness.facebook.com, developers.facebook.com
Phone Number ID and WABA IDAPI Setup in your app
Permanent access token (production)A system user in Meta Business
Public HTTPS address for the webhookCloudflare Tunnel (free), ngrok, or a reverse proxy on a VPS
Webhook verify tokenYou invent it and paste it on both sides
VariablePurpose
WHATSAPP_CLOUD_ACCESS_TOKENThe permanent token
WHATSAPP_CLOUD_PHONE_NUMBER_IDThe number ID (not the number itself — a common mix-up)
WHATSAPP_CLOUD_WABA_IDWhatsApp Business account ID
WHATSAPP_CLOUD_VERIFY_TOKENWebhook verification during registration
WHATSAPP_CLOUD_ALLOWED_USERSWho the agent may answer

The wizard catches the most common trap for you: the Phone Number ID field takes a long numeric ID, not a phone number. Swap them and the API returns an error that looks like a bad token.

What both paths can do

FeatureNote
Text, images, filesYes, in both modes
Voice messagesIn the Cloud API an outgoing voice message appears as a proper voice note when ffmpeg is present
GroupsThe bridge handles them; the Cloud API does not (one-to-one only)
Scheduled deliveryYes — to the home chat (WHATSAPP_CLOUD_HOME_CHANNEL)

Things to watch

SituationWhat to do
A new number gets no answersIt is not in the allowlist; check the number format (international, no spaces)
The bridge stopped after a WhatsApp updateUpdate Hermes and re-pair
The Cloud API reports a token errorYou are using a test token that expires — deploy the permanent one
The webhook will not verifyThe verify token does not match, or the address is not reachable over HTTPS
Signs of an account restrictionStop bulk messaging; for a business move to the Cloud API

Where next

← Back to the wiki