Connecting WhatsApp
BrandOps can turn your WhatsApp Business number into an order channel and a two-way inbox: a customer messages you, an order gets created automatically, and your team can reply from inside BrandOps. This guide covers the webhook setup, what becomes an order, and how to troubleshoot the connection.
Availability of the WhatsApp inbox depends on your workspace's rollout. Check Settings → Integrations for the current connect option, or see the Integrations overview for every connection BrandOps offers.
What Connecting WhatsApp Unlocks
Connect your WhatsApp Business number and it becomes both an order channel and a two-way inbox inside BrandOps.
- When a customer messages your WhatsApp Business number and the message looks like order intent (a recognized keyword like order, buy, want, need, send, deliver, purchase, or simply a message 15+ characters long), BrandOps automatically creates a PENDING order from it, numbered WA-0001, WA-0002, and so on per brand.
- New WhatsApp orders start at ₹0. Your team reviews the message (stored verbatim in the order's notes) and confirms the price and product details before packing.
- Every message, inbound and outbound, is also stored in a WhatsApp inbox inside BrandOps, so you can see the full conversation history per phone number and reply without opening the WhatsApp app.
- The connect flow isn't a Facebook/Instagram-style OAuth popup. It's set up with a webhook, a verify token, and your number's Phone Number ID through the Meta Cloud API.
Setup Steps
The full path from a blank connection to your first synced order.
- Generate a verify token in BrandOps: a random token BrandOps creates and stores against your brand.
- In Meta Developer Console, open your app → WhatsApp → Configuration.
- Under Webhook, click Edit and paste in BrandOps's webhook URL (yourdomain.com/api/webhooks/whatsapp) along with the verify token you just generated.
- Subscribe to the messages field and click Verify & Save. Meta calls the webhook URL with a challenge, and BrandOps answers it automatically once the token matches.
- Send a test WhatsApp message with order intent, e.g. "I want to order Face Serum x2", to your connected number.
- The order appears in BrandOps → Orders as PENDING with source WHATSAPP.
- To reply to customers from inside BrandOps, the WHATSAPP_ACCESS_TOKEN environment variable (a permanent system-user token from Meta Business Manager) has to be set. That's what lets BrandOps send messages out through the Cloud API, separate from receiving them.
Phone Number ID: Auto-Registered
One field you usually don't even have to fill in yourself.
- You don't have to enter your Phone Number ID up front. It's auto-saved to your brand the first time an inbound message arrives through the webhook.
- If you'd rather set it ahead of time, for example to enable sending before any inbound message has come in, you can paste it in manually. Find it in Meta Developer Console → WhatsApp → API Setup.
- The Phone Number ID is required for sending replies, since every outbound message through the Cloud API is sent to {phoneNumberId}/messages.
The WhatsApp Inbox
Once connected, conversations and replies happen inside BrandOps.
- Conversations are grouped by customer phone number and refresh automatically every 15 seconds; an open thread refreshes every 10 seconds.
- Replies are sent through the WhatsApp Cloud API. Meta's 24-hour customer service window applies: a customer has to have messaged in the last 24 hours for a free-form text reply to go through.
- Numbers are normalized before sending: spaces, dashes, and a leading + are stripped automatically, so you can paste a number in however it's formatted.
Security & Troubleshooting
What's verified under the hood, and what to check if something isn't working.
- Every inbound webhook call is verified against Meta's signature header using an app-level secret. A request that doesn't verify is rejected outright, so a WhatsApp order can't be spoofed by hitting the webhook URL directly.
- If BrandOps can't match the phone number ID on an incoming message to a specific brand, it falls back to any brand with a verify token configured. That's fine for a single-brand setup, but worth knowing if you manage more than one brand on the same workspace.
- Sending a reply without WHATSAPP_ACCESS_TOKEN configured fails outright. That token is set at the environment level, not typed into a form in the dashboard.
- Webhook stuck failing Meta's Verify & Save step? Regenerate a fresh verify token in BrandOps and re-paste both the URL and token into Meta Developer Console. A stale or mismatched token is the most common cause.
Frequently Asked Questions
What actually happens when a customer messages my WhatsApp number?
If a text message comes in and it looks like order intent (either a recognized keyword or a message of 15+ characters), BrandOps automatically creates a PENDING order at ₹0, with the raw message text saved to the order's notes. Either way, the message is also stored in your BrandOps WhatsApp inbox.
Do I need to know my Phone Number ID before connecting?
No. It's auto-saved the first time a message comes in through your webhook. You only need to enter it manually if you want sending enabled before that first inbound message arrives.
What's the difference between the verify token and WHATSAPP_ACCESS_TOKEN?
The verify token is what Meta uses to confirm your webhook URL belongs to you during setup, generated inside BrandOps. WHATSAPP_ACCESS_TOKEN is a separate, permanent system-user token from Meta Business Manager that BrandOps needs to actually send messages out; it's an environment variable, not something typed into the dashboard.
Why did my order come in at ₹0?
Every WhatsApp-sourced order starts at ₹0 by design. The message itself doesn't reliably contain a price, so your team is expected to confirm the amount and product details before packing.
Can I reply to a customer any time, or only within a window?
Only within Meta's 24-hour customer service window: a customer has to have messaged in the last 24 hours for a free-form text reply through the Cloud API to go through.
Is this connection an OAuth login like Instagram or Google?
No. WhatsApp uses the Meta Cloud API directly (a webhook URL, a verify token, and a Phone Number ID) rather than an OAuth popup that redirects you through a Meta login screen.
My webhook keeps failing "Verify & Save" in Meta Developer Console.
Regenerate the verify token in BrandOps and make sure both the token and the exact webhook URL are pasted into Meta Developer Console. Meta calls that URL with a challenge, and BrandOps only answers it if the token matches exactly.
Ready to turn WhatsApp into an order channel?
Generate a verify token, register the webhook in Meta Developer Console, and send a test message.
Go to WhatsAppRelated guides
Something unclear? Contact support or send feedback from your dashboard settings.
