Two-way WhatsApp over the Meta Cloud API — sending, receipts, inbound, alerts, and media.
Live Agent Pro sends and receives WhatsApp through your agency's own Meta WhatsApp Cloud API numbers. You can connect more than one: one for your Bigo hosts and one for your TikTok hosts, say, or one for each sub-agency.
Setup #
Before you start, you need a Meta developer account (developers.facebook.com) and a Meta app connected to your WhatsApp Business account. The steps below create the app and connect it. Meta's own screens are in English here; their names may differ in another language. Only admins of the whole agency can open Channels.
- Create the app. In the Meta App Dashboard, choose Create App, pick the Connect with customers through WhatsApp use case, and select your business portfolio.
- Connect your WhatsApp Business account. Choose Start using the API to open API Setup, and connect the app to your WhatsApp Business account, or create one there. To message hosts from your own number rather than Meta's test number, add it on this page.
- Copy the Phone number ID. On API Setup, choose your number under From and copy its Phone number ID into Phone number ID in Settings → Channels. It is not the phone number itself.
- Create a permanent access token. The token on API Setup stops working
within a day. In Meta's Business Settings, open System users and add a
system user. Use Assign assets to give it full control of your app and your
WhatsApp account, then Generate token with the
business_management,whatsapp_business_messagingandwhatsapp_business_managementpermissions. Paste it into Access token. - Copy the app secret. In your app, open App settings → Basic and copy the App secret into Meta app secret. Until it is set, messages from hosts and delivery receipts are rejected.
- Set up the webhook. In Settings → Channels, choose Generate next to Webhook verify token, copy the token, and save. Then open your app's WhatsApp Configuration page in Meta. Enter the Callback URL shown in Channels (copy it with its button), and the token as the Verify token, and choose Verify and save. Subscribe to the messages field.
- Make the app Live. Meta doesn't send some webhooks while an app is in development mode, so switch it to Live.
Messages from hosts, and delivery and read receipts, come back over that webhook.
Until a number can send messages for you, a Connect WhatsApp prompt shows on the dashboard, in the inbox, on Send WhatsApp for a contact, on a campaign set to WhatsApp and on a new template. An agency admin who doesn't work in a sub-agency gets a button to Channels; anyone else is asked to go to an agency admin.
If some numbers can send but no default can, someone who doesn't work in a sub-agency sees Connect a default WhatsApp number in those places, except Send WhatsApp, which still sends to hosts a number is for. Hosts that no other number is for can't be messaged until a default can send.
Several numbers #
Add more numbers under Settings → WhatsApp Numbers. Each has a name your team sees, its own Meta connection, and says who it is for: a sub-agency, a platform, both, or neither. Agency admins, and staff whose role includes WhatsApp numbers, can open this page. Someone who works in sub-agencies sees and manages only their own sub-agencies' numbers, and adds numbers only to them; this holds for an agency admin who works in sub-agencies too. Only an agency admin who doesn't work in a sub-agency can choose the default.
Each number added there needs its WhatsApp Business Account ID: in Meta's WhatsApp Manager, under API Setup, above the Phone number ID. WhatsApp approves message templates per business account. Once a number has one, it can't be removed, and an ID that another agency's number uses can't be entered.
One number is your default. Choose another with Make default. The default can't be deleted; make another number the default first. While you have no default, the next number added by an agency admin who doesn't work in a sub-agency becomes it. A number anyone else adds doesn't, so until such an admin adds one or uses Make default, there is no default.
How many numbers you can connect depends on your plan; see Billing.
Which number a message goes out on #
- A reply in the inbox goes out on the number the host wrote to. The same host writing to two of your numbers is in two conversations. If a conversation's number is deleted, the next reply goes out on your default number, and the conversation continues there.
- A number you chose is used while it can send: a campaign set to a number, or a send from the Contacts list where you picked one under Send from (it is offered when more than one of your numbers can send; someone who works in sub-agencies is offered their own sub-agencies' numbers and Automatic, which leaves the choice to the rule). Otherwise the message goes out as below. Deleting a number sets the campaigns that use it back to Automatic.
- A message about one platform (a campaign on Automatic, a tier alert, an
event reminder, an event message, or an onboarding step for the platform account
it was started for) goes out on the first number that matches the host:
- their sub-agency and that platform;
- their sub-agency, any platform;
- the whole agency, that platform;
- your default number.
- Any other message (a birthday greeting, a goal alert, an onboarding step for a host with no platform account, a bulk send from the Contacts list, or a single one where Send from isn't offered) goes out on the number of the host's latest conversation. With none, it goes out on the number all their platforms lead to, and otherwise on your default.
Other than your default, a number without an access token is passed over for the next match. A message no number can send (none matches the host and there is no default, or the one that matches is missing its Phone Number ID or access token) isn't sent, and shows as failed.
Sending #
Send individual messages from a contact or the inbox, or in bulk to a segment.
From 1 November 2026, sending to several hosts at once needs the Pro or Agency plan
(see Billing).
Messages use templates with {{variable}} placeholders
resolved from the host's latest stats.
A message goes to the host's number in international form. A number without a country code is read as one from your agency's default phone region (Agency Settings). A host whose number isn't a valid phone number either way gets nothing from a message sent from a contact, in bulk, by a campaign or as an automatic message: each is marked not sent, with the reason. An inbox reply goes to the WhatsApp number they wrote to you from in that conversation. In a conversation they never wrote to you from on WhatsApp, the reply is not sent or recorded, and the reason is shown as you send it.
Open in WhatsApp #
Open in WhatsApp opens WhatsApp on your own phone or computer, in a chat with the host, with a template already filled in for them. It works without a WhatsApp connection, without WhatsApp Business, and with templates WhatsApp hasn't approved, because Live Agent Pro sends nothing: the message goes from the WhatsApp on your device.
It's on a contact's page, on a platform record's page, and in each row's menu on the Contacts list. Choose a template, check the message, and press Open WhatsApp. The message is filled in with the host's details and in the host's language, as any other send would be. You can still change it in WhatsApp.
You still press Send in WhatsApp. Live Agent Pro can't see what happens there. The host's message history shows the message as Opened in WhatsApp: it records that you opened the link, not that the message was sent, delivered or read. The host's Last messaged date moves to that moment. These messages aren't in the inbox.
The button is greyed out, with the reason, for a host who asked not to be contacted, who has no phone number, or whose number isn't a valid phone number, and while your subscription is inactive. It is also greyed out when the host's number matches a number on your blocklist. A number can be written more than one way, so the match is generous: occasionally a different person's number matches too. It needs the permission to send messages.
Receiving #
Inbound replies are ingested into the Conversations Inbox. Inbound media (images, audio, documents) is downloaded and attached to the message; HTML is sanitized for safe display.
Automated alerts #
Several scheduled messages can go out over WhatsApp:
- Tier proximity — when a host hits ≥ 80% of the next compensation tier.
- Goal achievement — when a host hits their monthly diamond target.
- Birthday — a greeting on the host's birthday.
- Event reminders — 24 hours and 1 hour before an event.
- New profile photo template — when a profile photo template becomes active, to hosts with an upcoming event it applies to.
Admins of the whole agency can switch each of these off, or back on, in Settings → Automatic messages. A message switched off is not sent to any host in the agency.
These pause while your subscription is inactive, and resume if you reactivate.
Group replies #
Replying into WhatsApp group threads is built but gated behind a feature flag
(WHATSAPP_GROUPS_ENABLED, off by default) while the Meta Groups send payload is
finalized.