source
attribute in webhooks is not included for accounts affected by the regulations in Europe and Japanmessaging_optins
webhook is restored for Chat Plugin, Send to Messenger Plugin, and Checkbox Plugin. One Time Notification messaging_optins
webhook will be restored in Q2 2021.messaging_referrals
webhook is restored for m.me link and Chat Plugin. CTM ads messaging_referrals
webhook restoration is TBD.profile_pic
field profile_pic
field Older changelog details can be found here.
As part of our efforts to comply with new privacy rules in Europe and Japan, we're making updates that will impact some developers and businesses that use our Messenger API. Beginning December 16th, several Messenger APIs will be unavailable for developers and businesses in Europe and/or Japan, and for people in Europe and/or Japan who connect with businesses globally. These changes will impact some APIs and UI components (listed in the next sections) for the following audience:
Impacted countries: All of the 30 European Economic Area (EEA) countries, which includes:
Given the impact listed previously, we recommend providing an alternate experience using quick replies, text and inline URLs for webviews for the impacted scenarios. The two tables that follow provide:
We are currently working to restore these features and will continue to update this document and the changelog section with the details as they are available. You can also refer to the FAQ section for more details on frequently asked questions.
Following is a list of features and APIs that are not affected by these changes. Any exceptions are listed in the Notes column.
Area | Feature | Notes |
---|---|---|
Receive API (Webhooks) | None | |
Receive API (Webhooks) | None | |
Receive API (Webhooks) | Only postback webhooks for get started button, icebreaker and supported templates will be operational. Other postback webhooks will be affected | |
Receive API (Webhooks) |
| None |
Receive API (Webhooks) | None | |
Receive API (Webhooks) | None | |
Receive API (Webhooks) | None | |
Receive API (Webhooks) |
| |
Send API | None | |
Send API | None | |
Send API | None | |
Send API | None | |
Send API | Video media type is not supported on Media Template. Restoration is TBD. | |
Send API | None | |
Send API | None | |
Send API | None | |
Send API | None | |
Send API | None | |
Send API | None | |
Entry Points | None | |
Entry Points | None | |
Entry Points | None | |
Entry Points |
| |
Entry Points |
| |
Messenger Profile API | Ice breakers, Get started button, Welcome Page, Domain Allowlist, Account Linking URL | None |
Conversation API | Conversation API |
|
Handover Protocol | None | |
Handover Protocol | None | |
User Profile API | None | |
Messenger Profile API | None | |
Entry Points | None | |
Entry Points | Web Plugins (Send to Messenger, Checkbox plugin) | None |
Entry Points | Web Plugins (Checkbox plugin, Chat plugin) | None |
Messenger Feature Review API | None | |
Customer Feedback Template | None |
The following actions can help you determine scenarios that are impacted by these changes:
subject_to_new_eu_privacy_rules
flag on Messenger Profile API to check for page impact.The table that follows provides more details and recommendations for alternatives on heavily-used APIs.
Area: Feature | User Impact | Developer Impact | Mitigation | Targeted Restoration |
---|---|---|---|---|
Send API: | Templates won’t render in the message thread because API calls will fail. Templates in existing messages will still be visible, but users won’t be able to take any action on them | Returns an error message | Replace templates with a combination of text, quick replies and web views | TBD |
Receive API (Webhooks) | No User Impact |
| N/A | TBD |
Receive API (Webhooks): | No User Impact | Webhook will not be delivered | N/A | Q2 2021 |
Persona API: | Persona details (name & profile pic) won't show in the thread. | Returns an error message | Introduce another persona. See Persona API fallback | Q2 2021 |
Account linking: | None | Returns an error message | N/A | Q2 2021 |
ID Matching: | N/A | Returns an error message | N/A | TBD |
Custom Labels: | N/A | Returns an error message | N/A | TBD |
Messenger Extensions SDK: | N/A | Returns an error message | N/A | TBD |
The following error is returned for API calls that are not operational due to the new privacy rules in Europe. You should leverage the unique error code and error subcode that follows to identify errors and handle the fallback gracefully.
{ "error":{ "message":"(#10) This action was not submitted due to new privacy rules in Europe and Japan. See developer documentation for more info", "type":"OAuthException", "code":10, "error_subcode":2018336, "fbtrace_id":"AUmkjfWVra1NAa-qEH5NcI8" } }
Instead of sending the information as a template, you can use a combination of plain text and quick replies instead. This enables users to have enough context/information to continue the conversation.
{ "recipient":{ "id":"{{PSID}}" }, "message":{ "attachment":{ "type":"template", "payload":{ "template_type":"{{SOME_UNSUPPORTED_TEMPLATE}}", "elements":[ { "title":"Welcome!", "image_url":"https://petersfancybrownhats.com/company_image.png", "subtitle":"We have the right hat for everyone.", "buttons":[ { "type":"web_url", "url":"https://petersfancybrownhats.com", "title":"View Website" }, { "type":"postback", "title":"Start Chatting", "payload":"DEVELOPER_DEFINED_PAYLOAD" } ] } ] } } } }
{ "recipient":{ "id":"{{PSID}}" }, "messaging_type":"response", "message":{ "text":"Welcome! We have the right hat for everyone.", "quick_replies":[ { "content_type":"text", "title":"View Website", "payload":"{{DEVELOPER_DEFINED_PAYLOAD}}" }, { "content_type":"text", "title":"Green", "payload":"{{DEVELOPER_DEFINED_PAYLOAD}}" } ] } }
You can use a message to introduce a different persona in the conversation flow. This will let users know that a different agent is handling the conversation despite the profile picture being unchanged.
{ "recipient":{ "id":"{{PSID}}" }, "message":{ "text":"How can I help you?" }, "persona_id":"{{PERSONA_ID}}" }
{ "recipient":{ "id":"{{PSID}}" }, "messaging_type":"response", "message":{ "text":"Hi, this is Joe from OCC, How can I help you?" } }
CTM Ad campaigns that run for impacted pages or for audiences impacted regions will not be able to use CTM HOP. Campaigns that have the CTM HOP App Id JSON setting will run as if CTM HOP is not active (i.e. will be handled by the primary app for the page).
Area: Feature | User Impact | Developer Impact | Mitigation | Targeted Restoration |
---|---|---|---|---|
CTM HOP in Ads Manager: CTM HOP | A user responding to a CTM Ad will have their thread routed always to the primary receiver on the page. | A user responding to a CTM Ad will have their thread routed always to the primary receiver on the page. | To re-create a similar behavior to CTM HOP, use the following fallback blueprint: Welcome Message setup in Ads Manager
Primary Receiver app
| TBD |