Partners may consider offering Conversions API for CRM events as a service. This allows your clients to upload lead events generated via their Facebook/Instagram lead ads (instant forms) from their respective CRM systems, and use the Conversion Leads performance goal in ads which may yield higher quality leads that are more likely to convert.
To plan your project, you may use the estimated timeline as a guideline. Note:
| Stage | Step | Estimated Time (Duration) |
|---|---|---|
Step 1. Prerequisites on setting up assets Step 2. Authentication Step 3. API integration Total | Prerequisite 1 day-3 weeks depending on the authentication option 3-4 weeks. ~3-7 weeks | |
Step 1. Connect CRM: Step 2. Configure sales funnel Step 3. Learning phase (no advertiser action required) Step 4. Run fully optimized Conversions Lead Ads campaigns* Total | 1-2 days <1 day 2-4 weeks ~1-2 months |
*Advertisers may run Conversions Leads performance campaigns during the learning period, but will not benefit from the full performance lift until it is complete.
If you have not yet been offering the Conversions API as a service for web, app, offline or business messaging events, please ensure that you have set up the below assets:
ads_management, pages_read_engagement, ads_read, pages_show_list, business_management and Ads Management Standard Access. Please find below for more guidance on how to do so| Permission | Business intention | What to include in submission |
|---|---|---|
| The allowed usage for this permission is to provide API access to your ad performance data for use in custom dashboards and data analytics, or to send web events from your server directly to Meta. | Written: Explain that you will use this permission to send events via Conversions API from your server directly to Meta on behalf of your advertisers. Video: Demonstrate how your platform sends an event via the Conversions API. |
| The allowed usage for this feature is to enable an unlimited number of ad accounts and lower rate limiting. At a minimum, | Written: Explain that you will use this permission to send events via Conversions API from your server directly to Facebook on behalf of your advertisers, or programmatically create and manage campaigns on behalf of your business as a value-added feature for your platform. Video: Demonstrate how your platform sends an event via the Conversions API or show a test user logging onto your platform to create or edit ad campaigns. |
Ads Management Standard Access | The allowed usage for this feature is to enable an unlimited number of ad accounts and lower rate limiting. At a minimum, | To qualify for advanced access, your app must have successfully made at least 1,500 Marketing API calls with an error rate of less than 10% over a 15-day period. It's important to avoid the common mistake of repeatedly calling the API after reaching the rate limit. Instead, pause the calls immediately upon receiving an error response. System granted permission, submission is not required. |
| This permission allows your app to read content (posts, photos, videos, events) posted by the Page, read followers data (including name, PSID), and profile picture, and read metadata and other insights about the Page. | Written: Explain that you will need this permission as a prerequisite to Video: Demonstrate how your platform sends an event via Conversions API. |
| The allowed usage for this permission is to show a person the list of Pages they manage or verify that a person manages a Page. | Written: Explain that you will need this permission as a prerequisite to Video: Demonstrate how your platform sends an event via the Conversions API. |
| The allowed usage for this permission is to send business-related activities (for example, purchase, add to cart, lead) on behalf of Pages owned by the people who use your app. | Written: Explain that you will need this permission as a prerequisite to Video: Demonstrate how your platform sends an event via Conversions API. |
Partners have the following two authentication options for datasets not managed by you:
MBE provides an endpoint to retrieve system user access tokens created in the advertiser’s Business Manager. Complete all the requirements for implementing MBE.
Ensure that you:
manage_business_extension for your app — This is a private permission that requires your Meta representative to add your app to the allow listCONVERSIONS_APIexternal_business_id, pixel_id (that is, the dataset ID), business_id and system user access token in your systemWith this option, partners may have the advertisers:
pixel_id (that is, the dataset ID), business_id and system user access token with the partner and save a copy of itPartners then call the Conversions API endpoint to send the event payload. Key steps to take note of:
lead_id is a predefined ID associated with leads that are generated from lead ads campaigns run on Facebook or Instagram. There are various ways to find lead ID from Meta. Partners are recommended to use Webhook or Graph API bulk read for finding lead ID.
Note that you must send at least one valid Custom Parameter or else the system will reject the event. If sending lead_id, please use a valid lead_id. If you choose to send em (email) and ph (phone number), these have to be hashed.
partner_agent string for attributionSend a unique partner_agent string together with the payload. If applicable, work with your dedicated Meta representative to decide on a suitable agent string. Use the same agent string if you are already sending one via Conversions API for web, offline, app or business messaging events.
If your platform identifier is datapartner, this would be a sample event payload sent on behalf of your client:
{
"event_name": "my lead stage",
"event_time": 1617693833,
"user_data": {
"lead_id": 1234567890123456
},
"action_source": "system_generated",
"custom_data": {
"lead_event_source": "Salesforce",
"event_source": "crm"
},
"partner_agent": "datapartner"
}Alternatively, if you are not able to find lead_id, you may use customer parameters instead and below would be a sample event payload sent on behalf of your client:
{
"event_name": "my lead stage",
"event_time": 1617693833,
"user_data": {
"em": 62a14e44f765419d10fea99367361a727c12365e2520f32218d505ed9aa0f62f
"ph": e323ec626319ca94ee8bff2e4c87cf613be6ea19919ed1364124e16807ab3176
"fbc": fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890
},
"action_source": "system_generated",
"custom_data": {
"lead_event_source": "Salesforce",
"event_source": "crm"
},
"partner_agent": "datapartner"
}For Conversions API for CRM integration, partners should use the above structure for event payload to ensure events can be successfully received. Note that this is different from Conversions API for web, offline, app or business messaging events.
Make sure that you use the correct value for action_source of Conversions API for CRM events , that is, action_source = system_generated
Make sure to send all stages of leads as they are updated. This means, there would be multiple events on the same lead_id as the lead moves in the lead funnel stage.
Ensure that you send the first lead stage (that is, raw lead event) as it will let the system know that the lead was received and processed.
You should send a minimum of two stages for events from your sales funnel, including the raw lead event. It is recommended to send three stages or more if possible.
If your advertisers are using different CRM systems, make sure you are able to map the parameters from different data sources to lead_id, event_name and event_time respectively.
One possible solution is to incorporate a UI/UX feature on your advertiser-facing portal to allow advertisers to map parameters from different CRMs to lead_id, event_name and event_time themselves.
Other best practices include the below:
event_time and upload_time. Backfilling some data may speed up the training process.event_time values are after the lead generation timestamp, otherwise your events may be discarded.lead_id whenever possible in your system together with other information such as the leads’ details, lead stage, etc.After you have successfully completed the API integration, we recommend that you select some suitable advertisers to conduct tests first before opening your solution to all advertisers.
It is important that you select suitable advertisers to use the Conversions API for CRM. Below are some guidelines for such advertisers:
In order to onboard your advertisers successfully to Conversions API for CRM and serve them well post-onboarding, we recommended becoming familiar with the advertiser journey to be able to guide your advertisers through the process.
Step 1: Connect CRM
a) Create a CRM dataset: To verify if the CRM dataset is set up correctly, go to Events Manager > Datasource > Settings and you will see a Conversion Leads Section if it is a CRM dataset.
b) Connect to the partner system: Allow your advertiser to connect to your system and start sending in CRM events.
c) Send a CRM event: To pass Data Verification checks, the dataset must meet all of the requirements before proceeding to the next step. To confirm if this stage is successful, check in Events Manager if the status moves down to “Configure Sales Funnel”.
If an advertiser is not able to proceed beyond this step:
Step 2. Configure sales funnel
Step 3. Funnel analysis and learning phase: An integration will need to meet the following criteria:
After the integration is completed, there is a 3-4 week learning phase required where the model will need to use the data that is being sent back to optimize the model. Upon successful completion of the integration, a confirmation modal will appear in Events Manager to notify you that the process is complete.
Step 4: Run fully optimized Conversions Lead Ads campaigns via Ads Manager using the CRM dataset from above.
Note: Remind the advertiser not to change datasets after they have completed the integration. Changing datasets will start a new integration and restart the learning process.