How To Deploy Hermes Agent On WhatsApp
A step-by-step guide to running Hermes Agent on WhatsApp: the Business Cloud API setup, the real costs and limits, and when Telegram is the saner path.

WhatsApp is the messaging app two billion people open every day, so it feels like the obvious place to put your AI agent. Then you start the setup and discover it is the single hardest channel to deploy a personal agent on - and Meta spent 2026 making it harder.
This guide walks through what it actually takes to get Hermes Agent talking on WhatsApp: the credentials and webhook you need, the costs and limits that surprise people, and the honest answer to whether you should do it at all.
Before You Start: WhatsApp Is Not Telegram
If you have read How To Deploy Hermes Agent On Telegram, forget the five-minute timeline. WhatsApp gives you two ways in, and both have a catch:
- The official WhatsApp Business Cloud API (run by Meta). This is the supported, durable path. It requires a Meta Business account, business verification, a dedicated phone number, a public webhook, and per-message billing.
- Unofficial libraries (WAHA, Baileys, and similar) that automate WhatsApp Web. Free and quick, but they violate WhatsApp's terms and carry a real risk of a permanent number ban - more on that below.
For a deployment you can rely on, you want the official Cloud API. Everything in the setup section assumes that path.
What You Need To Deploy Hermes On WhatsApp
A working deployment has four credentials and one piece of infrastructure. Collect all of them before you touch Hermes config.
1. A Meta Business account and a Cloud API app
Sign in at Meta for Developers, create a Business app, and add the WhatsApp product to it. Meta gives you a sandbox test number immediately so you can experiment before verifying a real business.
2. A phone number ID and a WhatsApp Business Account ID
Inside the app's WhatsApp setup, register the business phone number that messages will flow through. Meta then shows you two values you must save: the Phone Number ID and the WhatsApp Business Account (WABA) ID. These identify which number and account Hermes sends through - they are not the phone number itself.
3. A permanent access token
The temporary token Meta shows on the setup screen expires in 24 hours, which is fine for a first test and useless for a deployment. For anything real, create a System User in Business Settings, assign it your app and WhatsApp account with full control, and generate a permanent token. This is the credential Hermes uses to authenticate every send.
4. A public webhook endpoint
This is the part Telegram does not need. WhatsApp pushes incoming messages to a URL you host, so Hermes needs a public HTTPS endpoint with a valid certificate. You register the URL plus a verify token of your choosing in Meta Business Manager, and Meta does a one-time handshake by calling your endpoint with a hub.challenge value you must echo back. Once verified, every inbound message is delivered as a webhook your gateway must answer with HTTP 200 within 30 seconds.

Wiring WhatsApp Into Hermes
With the four pieces in hand, the Hermes side looks familiar if you have configured the Telegram gateway. In config.yaml, add your provider and the WhatsApp credentials:
provider: openrouter
model: anthropic/claude-3-5-sonnet
openrouter_api_key: sk-or-your-key-here
whatsapp_phone_number_id: "123456789012345"
whatsapp_business_account_id: "987654321098765"
whatsapp_access_token: EAAG...your-permanent-token
whatsapp_verify_token: a-long-random-string-you-choose
whatsapp_allowed_users: "15551234567"
Two fields deserve attention. The whatsapp_verify_token must match exactly the value you typed into Meta Business Manager when registering the webhook, otherwise the handshake fails silently. The whatsapp_allowed_users field is your safety lock: Hermes only replies to the numbers listed here (in full international format, no +), so a stranger who messages your business number cannot burn through your model credits.
Start The Gateway
Bring the messaging gateway up the same way you would for any channel:
hermes gateway start --detach
The gateway exposes the webhook route, validates Meta's signature on every request, routes the message body into the Hermes runtime, and posts the agent's reply back through the Cloud API. Confirm it is alive with hermes gateway status and send a test message from an allowed number.
The Costs And Limits Nobody Mentions
This is where WhatsApp diverges sharply from a free bot platform, and where many deployments quietly fall apart.
WhatsApp moved to per-message pricing in mid-2025. Each message your agent initiates is billed by category and recipient country, roughly $0.004 to $0.046 for utility messages and up to about $0.14 for marketing messages in higher-cost countries. The official API itself sits in a $0-99/month band before those per-message fees, and most teams add a Business Solution Provider markup on top.
Worse for an agent specifically is the 24-hour customer service window. After a user messages you, you can reply freely for 24 hours. Once that window closes you cannot send a free-form message - only a pre-approved template, and each template send is billed. A personal agent is proactive by nature: it pings you with a morning standup, tells you a long task finished, nudges you about an invoice three days later. Every one of those lands outside the window, so on WhatsApp it becomes a paid template send. We break this down in full in Telegram vs WhatsApp For An AI Agent.
The Unofficial Shortcut (And Why It Backfires)
Search for "free WhatsApp bot" and you will find WAHA, Baileys, and a dozen wrappers around WhatsApp Web. They are genuinely quick to stand up and cost nothing in message fees. They are also a trap for any deployment you care about.
These libraries are reverse-engineered and violate WhatsApp's terms of service. Meta runs a multi-layer detection system - registration fingerprinting, behavioral analysis, user reports, content patterns - and tightened enforcement against third-party AI chatbots through early 2026. The realistic outcome of running a self-hosted unofficial gateway at any volume is a permanent ban on the number you used. For a throwaway test on a spare SIM, fine. For the number your contacts actually reach you on, it is not worth it.
Common Failure Modes
Webhook never verifies. The verify token in config.yaml does not match the one in Meta Business Manager, or your endpoint is not reachable over HTTPS with a valid certificate. Meta needs to echo hub.challenge successfully before it sends a single message.
Messages arrive but Hermes never replies. Either the gateway is not running (hermes gateway status) or the sender is not in whatsapp_allowed_users. Check the number is in full international format with no +.
Token works for a day, then everything stops. You deployed with the temporary 24-hour token instead of a permanent System User token. Regenerate the permanent one and update your config.
Proactive messages silently fail. You are trying to send outside the 24-hour window without an approved template. This is a platform rule, not a bug - it is the core reason agents struggle on WhatsApp. The diagnostic mindset from the Telegram troubleshooting guide carries over to any gateway you run.

Keeping It Running
Even after the bot replies, you own an ongoing responsibility that does not exist on simpler channels: a public HTTPS endpoint that must stay up and certificate-valid, a permanent token that must not leak, template approvals to manage, and a per-message bill to watch. The gateway works while the process and the endpoint are healthy, and goes silent the moment either drops. On a laptop or a recycled container, that happens more often than you would like.
Telegram Is The Better Home For A Personal Agent
Step back from the setup mechanics and the verdict is hard to argue with: for a personal AI agent, Telegram wins on every axis that matters.
- Open and free. Telegram's Bot API is public, documented, and costs nothing per message. WhatsApp's Cloud API is gated behind Meta Business verification and bills you per conversation.
- Proactive by default. Your agent can message you the moment a task finishes, every morning, or three days later about an invoice - no 24-hour window, no pre-approved templates, no per-message fee.
- Live in minutes, not weeks. No business verification, no dedicated number, no public webhook with a valid certificate to keep alive.
- No ban risk. You are on a supported, first-class API - not a reverse-engineered library one detection sweep away from losing your number.
WhatsApp can be made to work if you genuinely need that specific channel and accept the cost and operational overhead. For everyone else, Telegram is simply the saner default.
Skip The Setup: Run Your Agent On Telegram With Hermify
Hermify is a managed Hermes Agent host, and it integrates natively with Telegram - the channel built for exactly this kind of always-on personal agent. You bring a model key, the runtime provisions on managed infrastructure, and you message your agent like any other contact. No server to babysit, no webhook to keep alive, no per-message bill.
That gets you a persistent agent that remembers you, runs scheduled skills, and lives in your pocket - working the moment you finish signup, not after a Meta verification queue.
Get started with Hermify and your agent is live on Telegram in minutes.
Sources
- WhatsApp Cloud API - Getting Started - Meta for Developers
- WhatsApp Cloud API Permanent Access Token Step-by-Step (System User) 2026
- Implementing Webhooks From The WhatsApp Business Platform
- Meta Blocks Third-Party AI Chatbots on WhatsApp in 2026 - Chatboq
- WhatsApp Automation Ban Risk: Safe vs Unsafe Tools (2026) - Kraya AI
- WhatsApp Cloud API pricing - Meta for Developers
Run Your Own Hermes Agent
Bring your API key, connect Telegram, and get a self-improving AI agent live in 60 seconds.
Get Started