This guide walks you through collecting the four values QuestionPro needs to send WhatsApp messages on your behalf. Collecting the values themselves takes about 15–20 minutes. Note that two Meta prerequisites — Business Verification and a payment method — can take a few days to clear before you can send at full volume; see Before you go live below.
The four values you will collect| Value | What it looks like | Where you get it |
|---|---|---|
| Phone Number ID | Numeric ID, approximately 16 digits | business.facebook.com |
| WhatsApp Business Account ID (WABA ID) | Numeric ID, approximately 16 digits | business.facebook.com |
| Meta App ID | Numeric ID, approximately 16 digits | developers.facebook.com |
| Access Token (permanent System User token) | Text string beginning with EAA... | business.facebook.com |
This is the single most common source of confusion. Meta splits WhatsApp setup across two completely separate websites. You will move between them. Always check which site you are on before following a step.
| Website | What it is | What you do here |
|---|---|---|
| business.facebook.com(Meta Business Suite → Settings) | Your business account and WhatsApp assets | Create the business, read your Phone Number ID and WhatsApp Business Account ID, and generate the permanent Access Token (via System Users). |
| developers.facebook.com(Meta for Developers → App Dashboard) | Your developer app that talks to the WhatsApp API | Create the App, read your Meta App ID and App Secret, and configure the webhook. |
If you already have a WhatsApp Business Account with a registered phone number connected to a Meta App, skip straight to Part B. Otherwise, complete these steps first.
Step 1 — Create a Meta Business AccountValue 1 — Phone Number ID
Website: business.facebook.com
Value 2 — WhatsApp Business Account ID (WABA ID)
Website: business.facebook.com
Value 3 — Meta App ID
Website: developers.facebook.com
Value 4 — Access Token (Permanent System User Token)
Website: business.facebook.com Create a System User — a service account that is not tied to any one person, so the token keeps working even if staff change. You can always revoke this token. 4a — Create a System User
Paste each value into its matching field in QuestionPro:
| QuestionPro field | Paste this value |
|---|---|
| Phone Number ID | Value 1 (from WhatsApp accounts → Phone Profile) |
| WhatsApp Business Account ID | Value 2 (from WhatsApp accounts) |
| Meta App ID | Value 3 (from My Apps) |
| Access Token | Value 4 (the System User token) |
A webhook lets Meta notify QuestionPro about message delivery/read status and template approval/rejection. This is separate from sending, and it uses two more Meta values: your App Secret and a Verify Token that you choose. Your Meta App must also be published (set to Live) for these updates to arrive.
Read this first — the order matters When you save the Callback URL in Meta, Meta immediately calls QuestionPro to verify it, sending along your Verify Token. If QuestionPro does not already hold the same token, verification fails. So always follow this order:
D4 — Find your Callback URL
Your Callback URL depends on which QuestionPro data center (DC) your account is on. Use the row for your DC:
| QuestionPro DC | Callback URL |
|---|---|
| US | https://messagerouter.questionpro.com/message-router/api/v1/whatsapp/callback |
| CA | https://messagerouter.questionpro.ca/message-router/api/v1/whatsapp/callback |
| AE | https://messagerouter.questionpro.ae/message-router/api/v1/whatsapp/callback |
| EU | https://messagerouter.questionpro.eu/message-router/api/v1/whatsapp/callback |
| AU | https://messagerouter.questionpro.com.au/message-router/api/v1/whatsapp/callback |
| KSA | https://messagerouter.questionpro.ksa/message-router/api/v1/whatsapp/callback |
| SurveyAnalytics | https://messagerouter.questionpro.sa/message-router/api/v1/whatsapp/callback |
| India | https://messagerouter.questionpro.in/message-router/api/v1/whatsapp/callback |
You can connect QuestionPro with the values above and send a small number of test messages immediately. To send at production volume and reliably receive status updates, make sure all three of the following are in place. The first two can take a day or two to clear, so start them early.
| Requirement | Why | Where |
|---|---|---|
| Business Verification | Until your business portfolio is verified, sending is capped (roughly 250 conversations / 24 hours) and you cannot raise limits or register more numbers. Verification lifts these caps. | Business settings (business.facebook.com) → Security Center (or Business info) → start verification and upload the requested business documents. |
| Payment method | WhatsApp Cloud API is billed per conversation. Without a payment method on the WhatsApp account, sending stops once the free tier is used up. | WhatsApp Manager → your account → Payment settings → add a card. |
| App in Live mode | In Development mode Meta suppresses webhooks for real customers, so status updates won’t arrive. | developers.facebook.com → App Dashboard → toggle App Mode: Development → Live (see Part D6). |
| Problem | Fix |
|---|---|
| Token invalid / permission error | Confirm the System User has both the WhatsApp Business Account and the App assigned with Full access, and that the token was generated with whatsapp_business_messaging and whatsapp_business_management ticked. |
| Wrong identifier | Make sure you copied the Phone Number ID (the long internal number), not your actual phone number. |
| Cannot add the phone number | The number must first be removed from the regular WhatsApp / WhatsApp Business mobile app. |
| Media templates fail to create | Check that the Meta App ID is entered correctly — media uploads depend on it. |
| Can’t find the IDs | Phone Number ID and WABA ID are on business.facebook.com (Settings → WhatsApp accounts). The App ID is on developers.facebook.com (My Apps). |
| Lost the token | Tokens can’t be re-displayed. Go back to System users → Generate a token and create a fresh one. |
| Webhook verification fails in Meta | You entered the Callback URL in Meta before saving the App Secret + Verify Token in QuestionPro, or the two Verify Tokens don’t match. Save them in QuestionPro first, and use the identical Verify Token in both places. |
| Webhook verified, but no status updates arrive | Two usual causes: (1) the app is still in Development mode — switch it to Live; (2) you verified the URL but didn’t subscribe to the fields — under Webhook fields → Manage, subscribe to messages and message_template_status_update. |
| Connected fine, but can’t send beyond a small number | Your business is not yet verified and/or has no payment method. See "Before you go live" above. |
| Some API calls fail right after setup | A brand-new app may be in limited (standard) access. Make sure your phone number is added and registered, and that the App is assigned to the System User with Full access. |
| Value | Website / source | Exact path |
|---|---|---|
| Phone Number ID | business.facebook.com | Settings → WhatsApp accounts → your account → Phone numbers → (click number) → Phone Profile → ID |
| WhatsApp Business Account ID | business.facebook.com | Settings → WhatsApp accounts → select account → ID under the name |
| Meta App ID | developers.facebook.com | My Apps → your app card → App ID |
| Access Token | business.facebook.com | Settings → Users → System users → Generate token |
| App Secret | developers.facebook.com | App settings → Basic → App secret → Show |
| Verify Token | You choose it | Enter the same value in QuestionPro and in Meta’s webhook config |
| Webhook Callback URL | Per your QuestionPro DC | See the DC table in Part D |
This feature is available with the following licenses :
Advanced Team Edition Research Edition Communities Customer Experience