💬
Integration guide · 6 min readUpdated September 2026

Connect WhatsApp via the Cloud API

Put DutyPilot on your WhatsApp Business number using Meta's official Cloud API — no third-party BSP, no per-message markup. Customers message you on WhatsApp and DutyPilot replies instantly, grounded in your knowledge base.

What you'll need

A Meta developer account (free at developers.facebook.com)
A WhatsApp Business Account (WABA) with a phone number
A DutyPilot workspace with the Integrations page open
Your DutyPilot webhook URL (shown in step 5)
1

Create your Meta app

Go to developers.facebook.com and click My Apps → Create App. Choose the Business type, give it a name like "DutyPilot Support", and create it.

Once created, open the app dashboard and add the WhatsApp product. Meta provisions a test number with 50 free conversations per month — perfect for validating the setup before you connect your real business number.

developers.facebook.com/apps
DDutyPilot Support — Business
WWhatsApp — API Setup
CConfiguration → Webhooks
Meta App Dashboard — add the WhatsApp product
2

Add a phone number to WABA

In API Setup, click Add phone number. Enter your business phone number and verify it by SMS or voice call.

If your number is already registered with the WhatsApp consumer or Business app, you'll need to migrate it — Meta will guide you through moving it to the Cloud API. The number keeps its business profile.

3

Generate a permanent access token

Temporary tokens from the dashboard expire in 24 hours. For a permanent connection: open Business Settings → Users → System Users, create a system user with the Admin role, then Generate Token selecting your app and the whatsapp_business_messaging + whatsapp_business_management permissions.

Copy the token — you'll paste it into DutyPilot in the next step. Treat it like a password: it never expires unless you revoke it.

business.facebook.com/settings/system-users
System user role
Admin
Permissions
whatsapp_business_messaging, whatsapp_business_management
Access token
EAAG•••••••••••••••••••••••••••••••••••
System user token with WhatsApp permissions
4

Connect in DutyPilot

In DutyPilot, open Integrations → WhatsApp and paste your access token and phone number ID (both from Meta's API Setup page). Click Connect — DutyPilot validates the credentials against the Graph API and links the number to your workspace.

The channel flips to Connected and messages start flowing into your unified inbox immediately.

dutypilot.dev/integrations
Access token
EAAG••••••••••••••••••••
Phone number ID
123456789012345
Status
✓ Connected — incoming messages active
WhatsApp channel connected
DutyPilot — Integrations → WhatsApp
5

Point the webhook at DutyPilot

Back in Meta App Dashboard → WhatsApp → Configuration, click Edit under Webhook. Paste the webhook URL and Verify token shown on DutyPilot's WhatsApp integration card, then click Verify and Save.

Finally, subscribe to the messages field so Meta delivers every customer message to DutyPilot in real time.

developers.facebook.com — WhatsApp → Configuration
Callback URL
https://api.dutypilot.dev/http/whatsapp/webhook
Verify token
dp_wh••••••••••••••
Webhook fields
✓ messages
Webhook configuration with DutyPilot values
6

Test end to end

Send a WhatsApp message to your connected number from any phone. You should see it appear in DutyPilot's inbox within a second, followed by an AI reply grounded in your knowledge base — complete with citations.

If nothing arrives, re-check the webhook subscription and confirm the messages field is checked. You can also send a test template message from Meta's API Setup page to verify outbound delivery.

WhatsApp — customer view
Hi! What's your refund policy for annual plans?
Annual plans are refundable within 14 days of purchase, prorated for usage. Sources: Billing FAQ §2 · Refund policy.docx
AI resolved · 1.1s
Live conversation handled by DutyPilot

Next up

Connect Instagram Direct

Continue

Stuck on a step? Contact support — we usually reply within a day.