Before you start
You need:- A Meta business portfolio at business.facebook.com.
- A phone number for WhatsApp that isn’t already registered in the WhatsApp or WhatsApp Business app. To use one that is, delete that WhatsApp account first. Meta’s free test number works for trying it out, but it only messages up to five numbers you list.
- An approved display name for the number, which Meta reviews when you add it.
Set it up in Meta
1
Create an app
At developers.facebook.com/apps, click Create app. Choose the Business type (or the Connect with customers through WhatsApp use case) and attach your business portfolio.
2
Add WhatsApp to the app
In the app’s dashboard, add the WhatsApp product. Meta creates a WhatsApp Business Account and a test number. To use your own number, open WhatsApp → API Setup, click Add phone number, and verify it by SMS or call.
3
Copy the two IDs
On WhatsApp → API Setup, under the number you’ll send from, copy the Phone number ID and the WhatsApp Business Account ID. They are long numbers, not the phone number itself.
4
Create a system user and a permanent token
The token on the API Setup page expires within a day, so make a permanent one:
- In Business settings → Users → System users, click Add and create a system user with the Admin role.
- Click Assign assets. Give it your app with full control, and your WhatsApp account with full control.
- Click Generate new token, pick your app, set expiry to Never, and tick whatsapp_business_messaging and whatsapp_business_management.
- Copy the token. Meta shows it once.
5
Copy the app secret
In the app, open App settings → Basic and click Show next to App secret. It is 32 letters and digits.
Connect it in Wiredesk
1
Paste the four values
Open Agents → your agent → Channels → WhatsApp. Paste the Phone number ID, WhatsApp Business Account ID, Access token and App secret, and click Connect.Wiredesk checks them with Meta before saving anything: that the token works, that the number is in that account, and that the app secret belongs to the token’s app. It also subscribes your app to the account’s webhooks. If something is wrong, the form shows what Meta said. Connecting switches Answer WhatsApp messages on.
2
Point Meta's webhook at Wiredesk
The Setup card now shows a Callback URL and a Verify token, each with a copy button. In your Meta app, open WhatsApp → Configuration, click Edit under Webhook, paste both, and click Verify and save.
3
Subscribe to messages
Still on WhatsApp → Configuration, under Webhook fields, click Manage and subscribe to messages. Without it, Meta sends Wiredesk nothing.
4
Send a test
Message the number from your own phone. The agent answers within seconds. The Setup card shows when Meta checked the webhook and when the last message arrived.
Every agent uses the same callback URL, so one Meta app can serve several agents, each with its own number. A number can only be connected to one agent at a time. Each agent has its own verify token; Meta needs any one of them to save the webhook.
While your Meta app is in development mode, only people with a role on the app (and the numbers you list for the test number) can reach it. Switch the app to Live in the app dashboard before customers write in.
How the agent answers
- What it reads: text messages, and the label of a button or list option the customer taps. Photos, voice notes, videos, documents, stickers, locations and contact cards aren’t read yet: the conversation records what arrived (with the caption, if any), and the agent replies “Sorry, I can only read text messages here. Could you type that out for me?”. That reply isn’t billed.
- How it writes: short, like a text message. Bold shows as WhatsApp bold, lists stay lists, and links are written out in full, which WhatsApp makes tappable.
- Who it is: the customer’s number. Someone who messages on WhatsApp and also calls your phone line is one contact, and their WhatsApp profile name is saved as their name if you don’t have one yet.
- Conversations: messages within 24 hours of each other are one conversation. After 24 quiet hours, the next message starts a new one.
- Actions: the agent uses the actions available on Chat. WhatsApp is a chat, so an action limited to chat applies here too.
The 24-hour window
WhatsApp lets a business send free-form messages only within 24 hours of the customer’s last message. After that, only pre-approved message templates go through, which Wiredesk doesn’t send yet. The agent is always inside the window: it answers a message that just arrived. Your team’s replies can come later, so the conversation page tells you where you stand. Under Reply as owner it says until when WhatsApp will take a reply. Once the window has closed, it says so, and a reply you send is refused with “WhatsApp only delivers a reply within 24 hours of the customer’s last message, and that has passed. Nothing was sent.” The window opens again when the customer writes.When a person needs to step in
Handover works as it does for website chat. See A person in chat & email, on Handoff.- The agent flags the conversation and you’re notified.
- Whoever replies from the conversation page takes it over. The reply goes out on WhatsApp from the agent’s number, and the agent stays quiet until the conversation is handed back, which happens after half an hour of silence from that person.
- If nobody replies within about ten minutes, the agent tells the customer on WhatsApp that nobody is free, and carries on.
When the agent doesn’t reply
- WhatsApp is switched off. Messages are ignored and not saved. The number stays connected.
- A person has taken over. The message is saved, and your reply is the next one.
- Your spend cap is reached. Messages are saved but not answered until the month rolls over or you raise the cap. See spend cap.
- One number is writing very fast. The agent sends at most 30 replies an hour to one number. Later messages are saved but not answered until the hour has passed.
- The conversation is past the agent’s message limit. The customer gets one fixed reply, and later messages are saved without a reply.
- The same message arrives twice. Meta resends a message when it isn’t sure it arrived. The repeat is ignored.