Marketing messages

|

View as Markdown

Messenger marketing messages let you send promotional content to customers who opted in to receive messages from your Facebook Page. You can send these messages outside the standard 24-hour messaging window.

Marketing messages use a Notification Message Token (NMT), which is a separate subscription credential returned through an opt-in event. The NMT is different from the Page-Scoped ID (PSID) used in standard Messenger conversations. Always use the NMT as the destination when sending marketing messages.

Comparison between PSID used for two-way conversations within the 24-hour window and NMT used for one-way marketing messages outside the window
IMPORTANT

Do not use the regular Facebook user ID or PSID when sending marketing messages. The destination must be the notificationMessagesToken returned by the opt-in event.



Availability

Messenger marketing messages are available in selected regions.

Business onboarding regions

Businesses located in the following regions can be onboarded:

  • Australia
  • Brazil
  • Chile
  • Colombia
  • Hong Kong
  • India
  • Indonesia
  • Israel
  • Malaysia
  • Mexico
  • New Zealand
  • Peru
  • Philippines
  • Saudi Arabia
  • Singapore
  • Taiwan
  • Thailand
  • United Arab Emirates
  • United States
  • Vietnam
Recipient restrictions

Messages can be sent to subscribers in all regions except:

  • Australia
  • European Union
  • Japan
  • South Korea
  • United Kingdom

For the latest availability, see the Meta documentation(opens in new tab).



Prerequisites

Before you can send marketing messages through Messenger, make sure you have the following:

  • An Infobip account with Messenger marketing messages access enabled. Contact your account manager to enable the feature.
  • A Facebook Page connected to your Infobip account under Channels and Numbers > Channels > Messenger > Pages. The Page does not need to be verified by Meta.
  • An ad account connected through the marketing-messages onboarding wizard in the Infobip web interface.
  • An API key scoped to call the Messenger APIs.
  • (Optional) A webhook endpoint configured to receive opt-in, opt-out, and delivery events.


Connect the Facebook Page and ad account

Before you start the marketing messages onboarding, connect your Facebook Page.

Step 1: Connect the Facebook Page

  1. Go to Channels and Numbers > Channels > Messenger > Pages.
  2. Select Connect Account.
  3. Select Login with Facebook and complete the authentication flow.
  4. Select one or more Facebook Pages to connect.
  5. Select Confirm, then Finish.

Step 2: Enable marketing messages

After the Facebook Page is connected, enable marketing messages and connect the ad account.

  1. Go to Channels and Numbers > Channels > Messenger > Overview.
  2. Select the marketing messages onboarding banner.
  3. Select Marketing messages as the use case.
  4. Select your account type. Select I am admin only if both conditions apply: you are the administrator of the business portfolio, and the Page and ad account belong to that portfolio.
  5. Select one or more ad accounts to connect.
  6. (Optional) Configure automatic audience growth settings to invite recent subscribers to opt in.
  7. Select Confirm, then Finish.
Use case selection dialog showing Customer service and Marketing messages options

After the wizard completes, verify the ad account connection under the Ad Accounts tab. You can also confirm the setup by calling the ad accounts endpoint:

bash
GET /messenger/1/ad-accounts

Use the returned id value as adAccountId when creating a campaign.



Collect the opt-in token

Marketing messages require an NMT collected through the opt-in flow. There are several ways to build the subscriber pool.

Flow diagram showing the opt-in process from PSID conversation to NMT subscription and marketing message delivery

The paths to collect subscription tokens are:

  • Opt-in message: Send an opt-in message to a user during an active Messenger conversation (within the 24-hour window). When the user accepts, Infobip receives a CONSENT_UPDATE webhook containing the notificationMessagesToken.
  • Custom audiences: Upload hashed phone numbers or email addresses that you collected outside Messenger. See Custom audiences.
  • Organic automations: Meta can automatically prompt users to opt in to marketing messages during certain interactions with your Page, such as when a user messages your Page for the first time. These automations are managed through Meta Business Suite. See the Meta organic automations documentation(opens in new tab) for setup details.
  • Click-to-Messenger ads: Run ads that open a Messenger conversation with an opt-in message. When a user clicks the ad and opts in, you receive the NMT through the same webhook flow. See the Meta click-to-Messenger ads documentation(opens in new tab) for setup details.

Opt-in webhook

Subscribe to the Messenger CONSENT_UPDATE event through Subscriptions management. When a user opts in, you receive a webhook with the token:

json
1{
2 "results": [
3 {
4 "channel": "MESSENGER",
5 "event": "SUBSCRIBE",
6 "sender": "{pageId}",
7 "from": "{userId}",
8 "createdAt": "2026-01-14T12:00:00.000+0000",
9 "channelData": {
10 "notificationMessagesToken": "{token}",
11 "tokenExpiry": "2030-01-01T00:00:00.000+0000",
12 "userTokenStatus": "REFRESHED",
13 "notificationMessagesTimezone": "Europe/Warsaw",
14 "subscriptionPayload": "promo_campaign_v2",
15 "subscriptionTitle": "Get weekly deals"
16 }
17 }
18 ]
19}

Store the notificationMessagesToken value. This is the destination you use when sending a marketing message.


Opt-out webhook and subscription removal

When a user opts out, you receive an UNSUBSCRIBE event with userTokenStatus: "NOT_REFRESHED". Stop sending messages to the token immediately and update your suppression logic.

To programmatically remove a marketing subscription (for example, when a user opts out of all communications from the business), use the delete subscription endpoint:

bash
DELETE /messenger/1/pages/{pageId}/subscriptions/{notificationMessagesToken}

For full endpoint details, see Delete a marketing subscription.


Custom audiences

Use custom audiences to reach customers whose phone numbers or email addresses you collected outside Messenger, for example offline or through a form.

  1. Collect opt-in through other channels, and get the customer's phone number or email address.
  2. Upload the hashed phone numbers or email addresses through Infobip to Meta. See Upload users to audience.
  3. Meta matches the data to Facebook profiles.
  4. Send marketing messages.

Keep the following in mind:

  • The typical match rate is 20% to 70%.
  • A custom audience must have at least 100 matched users to become active.

List active subscriptions

To check the subscription state for a Page, call the subscriptions endpoint:

bash
GET /messenger/1/pages/{pageId}/subscriptions

The response includes the token, token expiry, and the next eligible send time (nextEligibleDatetime).



Create a campaign

Create a marketing campaign before sending messages. The campaign ties together the Page, the ad account, and the budget.


Create a campaign with the API

bash
POST /messenger/1/campaigns
json
1{
2 "name": "Summer Sale Campaign",
3 "dailyBudget": 1000,
4 "adAccountId": "{adAccountId}",
5 "pageId": "{pageId}"
6}
NOTE

Budget values are in cents. Provide at least one of dailyBudget or lifetimeBudget.

The response returns a campaignId that you include in every marketing message send request.

For full endpoint details, see Create a campaign.


Create a campaign in the web interface

  1. Go to Channels and Numbers > Channels > Messenger > Campaigns.
  2. Select Create Campaign.
  3. Enter the campaign name, select the ad account and Facebook Page, and set a lifetime or daily budget.
  4. Select Create.
Create Campaign dialog with fields for campaign name, budget type, ad account, and Facebook Page

Send a marketing message


Send a marketing message with the API

Use POST /messenger/1/messages with content.type set to MARKETING_MESSAGE and the NMT as the destination.

json
1{
2 "messages": [
3 {
4 "sender": "{pageId}",
5 "destinations": [
6 {
7 "to": "{notificationMessagesToken}"
8 }
9 ],
10 "content": {
11 "type": "MARKETING_MESSAGE",
12 "campaignId": "{campaignId}",
13 "content": {
14 "type": "TEXT",
15 "payload": {
16 "text": "Hello! Check out our latest offers."
17 }
18 }
19 }
20 }
21 ]
22}

A successful response returns a PENDING_ACCEPTED status:

json
1{
2 "bulkId": "2034072219640523072",
3 "messages": [
4 {
5 "messageId": "2250be2d4219-3af1-78856-aabe-1362af1edfd2",
6 "status": {
7 "groupId": 1,
8 "groupName": "PENDING",
9 "id": 26,
10 "name": "PENDING_ACCEPTED",
11 "description": "Message sent to next instance"
12 },
13 "destination": "{notificationMessagesToken}"
14 }
15 ]
16}

Supported content types for marketing messages: TEXT, GENERIC (single card or carousel with web_url/postback buttons), and BUTTON (web_url/postback only).

For full endpoint details, see Send a Messenger message.


Send a marketing message with Broadcast

Use Broadcast to send a marketing message to a list of subscription tokens without calling the API.

NOTE

Sending marketing messages through Broadcast is in Early Access. Contact your account manager for availability.

  1. Go to Broadcast > Create broadcast.
  2. Select Messenger as the channel.
  3. Add recipients by uploading a file with subscription tokens or selecting a People audience.
  4. Select the Messenger sender (Facebook Page) that matches the token source.
  5. Select the marketing message content type and the campaign created earlier.
  6. Review scheduling and tracking, then preview and launch.
Broadcast creation form showing recipients, sender, content, and scheduling sections for Messenger

Compliance

Marketing messages must follow Meta platform policies.

  • Send marketing messages only to users who have opted in.
  • Stop sending messages to users who have opted out. When you receive the opt-out webhook, remove the token from your send lists immediately.
  • Do not use marketing messages for service or transactional communications. Use the standard 24-hour messaging window or message tags for those purposes.
  • Feature availability depends on the country. See the Meta documentation(opens in new tab) for the list of supported countries.

For general Messenger compliance requirements, see Compliance and guidelines.



Troubleshooting

Message accepted but not received

  • Confirm the destination is the subscription token, not the PSID or regular user ID.
  • Confirm the token has not expired or been revoked by an opt-out event.
  • Confirm the tenant has Messenger marketing messages access enabled.

Campaign creation fails with 400

  • Check that adAccountId and pageId belong to the same connected setup.
  • Provide at least one budget field: dailyBudget or lifetimeBudget.
  • Budget values must be in cents.

No opt-in webhook arrives

  • Confirm the webhook subscription is configured for the CONSENT_UPDATE event.
  • Confirm the user opted in through a supported Messenger flow.
  • Verify the webhook endpoint is reachable and returns a 200-level response.

Was this page helpful?