WhatsApp Meta Provider Setup

WhatsApp Meta Provider Setup

 Overview

This guide outlines how to integrate the WhatsApp Channel using Meta as the provider for managing both inbound and outbound interactions within your XCALLY environment.

Requirements

Before starting the integration, ensure the following prerequisites are met:

  • Public HTTPS Endpoint: Your Motion instance must be publicly accessible via HTTPS. For security reasons, using a reverse proxy is highly recommended. Learn more → find out more

  • Meta for Developers Account: You must be registered on Meta for Developers to configure your app

  • Meta Business Suite Account: Required to manage WhatsApp Business accounts and settings.

  • Check Meta's pricing documentation to understand costs associated with message templates and campaigns.: find out Meta's documentation here (and pricing updates here)

Video Tutorial

 

 

Create a Meta App for WhatsApp

  1. Log in to Meta for Developers → http://developers.facebook.com

  2. Navigate to My AppsCreate App.

  3. Define the App name that will show on your My Apps page and associated with your app ID. You can change the name later in Settings.

  4. Indicate the App contact email.
    Then click on Next

  5. As use case, select Others > Other

  6. Click on Next

  7. Select Business as app type

  8. Connect the app with your Account Business Manager

  9. Click on Create app

  10. On the dashboard “Add products to your app” select Setup on WhatsApp option

  11. You can see the overview of your app

  1. Click “Start using the API” to proceed with API Configuration

image-20260109-081621.png

 

  1. You will view this visualisation:

  • Generate an Access Token, giving access to your WhatsApp account. This token is required to authenticate your API requests. The default access token is temporary and expires after 24 hours. To configure your XCALLY account, it will be required to generate a Permanent Access Token.

  • To verify the integration is correctly configured, you can perform a test API request directly from the WhatsApp Developer Console. Follow these steps:

    1. In the From field, select the WhatsApp Business number created during app setup.

    2. In the To field, enter the recipient phone number that will receive the template message hello_world.

    3. Click Send message.

If you’re using a test number, you can define up to five recipient phone numbers

  1. After sending your first message, verify that the recipient receives it successfully. This verification step ensures that your setup and authentication are correctly configured.

 

image-20241111-144943.png

Alternatively, you can use a curl request with the WhatsApp API and the generated access token to test and confirm the setup.

  1. At Step 5 of the setup process, you will be able to select "Add a phone number".

Fill in the following details:

  • WhatsApp Business display name

  • Timezone

  • Business category

Next, provide your WhatsApp phone number. Select the appropriate country prefix. Based on your selection, you will receive either a pin code via SMS or a verification phone call.

Refer to Meta's official documentation for more information on registering a business phone number

You will view that your phone number is on pending status until your display name is approved.

 

  1. On step 6, a valid payment method must be configured before proceeding.
    So click on Payment settings, on your business manager account and proceed to add your payment method and your business info.

  2. Finally on Business settings > Accounts > WhatsApp accounts >account selection, you need to start your Business verification, by inserting your company data.

  3. You will receive an email of successful verification in some hours and at this point, you will see that your display name is approved.
    In fact on Meta console, this confirmation message will appear:

Congratulations! Your display name XcallyTest was approved.
Your display name is shown in the customer chats tab and notifications.

For certificate management of WhatsApp Cloud API solution (which does not require an on-premise installation), it is NOT necessary to upload a certificate manually.
In fact, Meta handles all authentication and security directly in the cloud platform.
To link correctly the phone number, simply send an other test message using the default “hello_world” template, by using your phone number. And you will view that the phone number will appear correctly connected.

Screenshot 2026-01-08 091724-20260108-082137.png

 

Configure a WhatsApp Account on XCALLY

By entering in your XCALLY environment, go to WhatsApp Channel → WhatsApp Accounts to create a new account for outbound campaign

 

Click on Add button and enter:

  • Account Name

  • Key: identification code (max 5 characters)

  • List: A Contact Manager list used to associate customer contacts. All campaign contacts will be stored in this Master List, enabling a unified customer journey across campaigns.

Ensure that contacts in the Master List include a valid WhatsApp number in the Phone Field

  • Proxy or Motion Domain: your server address

  • Type: select Meta

     

image-20240502-152300.png

 

Retrieve the following values from your Meta Business Account:

  • Account SID = WhatsApp Business Account ID

  • Auth Token = Access Token ( you need to create a Permanent Access Token to use WhatsApp correctly because access token expires after 24 hours. Follow these guidelines)

  • AppId = App ID

  • Phone number Id = phone number ID

  • Phone number with prefix (with +)

FROM VERSION 3.64.0
An error message appears in case of the same Meta number, already used in an other WhatsApp account. The message indicates which account is using the duplicate number

Click Add to complete the account setup.

 

How to generate a permanent access token

To generate a Permanent Access Token, follow these steps using your Meta Developer Account to create a System User with specific permissions.

image-20250507-132211.png
  1. Open your Business Settings and select the desired business manager

 

image-20250507-132409.png

 

  1. Go to Users System users and click on Add.

 

image-20240228-142250.png

 

  1. Set a System Username and select Admin as User Role

Screenshot 2025-03-05 093531-20250305-083531.png
  1. Click on Assign Assets and under Select asset type, choose Apps

image-20250305-085342.png
  1. Select your WhatsApp created app and enable full control (Manage app)

You can create only one system user per Business account.
If you have multiple WhatsApp Apps, when generating a new token, select the appropriate app for which you want the permanent token.

Screenshot 2025-03-05 093727-20250305-083727.png
  1. Click on Generate Token, by selecting your App

Screenshot 2025-03-05 093736-20250305-083736.png
  1. Set “Never” as token expiration

image-20250513-074148.png

 

 

  1. Add the following required permissions when generating the token:

  • WhatsApp_business_messaging

  • business_management

  • pages_show_list

  • pages_messaging

  • WhatsApp_business_management

  • pages_manage_metadata

  1. Click on "Generate Token" to obtain a permanent token to paste on Auth Token section

Configuration of created account

After creating a WhatsApp Business account in XCALLY, you can access and edit its configuration:

  • Navigate to the Settings tab to view and update previously inserted details.

  • You will also see the Receive URL—an auto-generated API endpoint used to receive incoming messages from the WhatsApp Channel provider.
    📋Click the clipboard icon to copy this URL. You will need to paste it into your Meta Business Account during webhook configuration.

Configure the Webhook in Meta

To complete the webhook setup:

  1. Go to your Meta Developer Dashboard.

  2. Click Configure Webhook.

  3. In the Webhooks section, select WhatsApp Business Account as product

  4. In the Callback URL field, paste the copied Receive URL.

  5. In the Verify Token field, enter the token found under the Advanced tab of your XCALLY WhatsApp account

image-20250923-135604.png

Your server must have a valid HTTPS certificate to use the callback URL.
Occasionally, Meta may block certain domains (blacklisted). If this occurs, contact Meta Support for assistance.

image-20250513-090142.png
image-20250513-090333.png
image-20250513-090400.png

 

To ensure full functionality, subscribe to the following webhook events, by clicking on Manage to insert these fields:

  • account_alerts

  • account_update

  • message_template_status_update

  • messages

  • template_category_update

Consider that ​apps will only be able to receive test webhooks sent from the dashboard while the app is unpublished. No production data, including from app admins, developers or testers, will be delivered unless the app has been published. So at the end of the configuration you need to enable Live App Mode

Screenshot 2025-09-23 154550-20250923-134550.png

Under the Advanced tab, you can:

  • View your Proxy and Token Number

  • Enable Mandatory Disposition

  • Select Recontact Template


In the Dispositions and Canned Answers section, you can define specific dispositions/canned answers for this account.

 

To handle incoming WhatsApp interactions:

  1. Go to the Actions tab.

  2. Create a dialplan that routes incoming interactions to the appropriate queue.

Ensure that agents are assigned to the relevant queues and associated with the corresponding WhatsApp accounts. Otherwise, they will not be able to manage interactions.

In the Interactions tab, you can:

  • View Campaign Interactions

  • Check the Status of each interaction (explore more in the campaign section)

 

Upgrade WhatsApp API version

Starting from version 3.53.0, API version v23 is supported.
To upgrade your WhatsApp Meta API to the latest version (v23), follow the steps below:

  • Open your app in the Meta Developer Dashboard.

  • In the sidebar, navigate to App settings → Advanced → View Upgrade API version.

  • From the dropdown menu, select v23 as the API version for your app.

image-20250625-082526.png
  • click Save Changes to apply the upgrade. This change will apply to all users of the app.

Use WhatsApp Channel with Meta for Agents

Agents can access WhatsApp via the WhatsApp Channel section in XCALLY.
Agents need to be associated to the created Meta account to receive new interactions

When a new inbound message is received, the agent will see a popup with WhatsApp account name, associated queue and sender’s phone number

Agents manage conversations via the Omnidesktop Interface.

For outbound campaigns, refer to the specific Outbound Campaigns section at this link

Managing Contact Fields: Phone & Mobile

To ensure optimal performance, we recommend inserting the same number in both the Phone and Mobile fields for each contact

Remember that:

  • outbound Meta campaigns send message to phone field

  • single messages sent by agent consider mobile field

Starting from version 3.50.0, if either field is missing, the system automatically fills the other with the available number.

In the Contact Finder modal, search functionality supports both the Phone Number and Mobile fields.

image-20250424-150251.png

Scenarios:

  • Contact has only Phone field → Chat is created; same number is auto-filled into Mobile field

  • Contact has only Mobile field → Chat is created; same number is auto-filled into Phone field

  • Contact has same number in both fields → Chat is created and message sent

  • Contact has different numbers in Phone and Mobile → Toast alert is shown. If it is a single message sent by agent, the number considered is the mobile one

  • New number typed into the message bar → Chat is created; number is set to both Phone and Mobile

 


Related topics