How to Set Up a Campaign Trigger for Facebook / Meta Offline Conversion Events
If you're running Facebook Ads and want to track offline conversions (like calls or sales that happen outside the web), you can use Facebook’s Offline Conversion Events via the Meta Conversions API.
With Lead Prosper, you can automatically send these events using a Campaign Trigger after a lead is accepted. Here’s how to set it all up from start to finish.
Resources & Documentation
Step 1: Generate a Facebook System User Access Token
To authenticate your offline conversion events, you need a long-lived System User Access Token tied to a Meta App within your Business Manager.
1.1 – Create a Facebook App
- Visit Meta for Developers – My Apps
- Click “Create App”
- Choose “Business” as the app type
- Fill in your app details and click Create App

1.2 – Set Up a System User
- Go to Facebook Business Settings
- Under Users, select System Users
- Click Add, assign a name, and set the role to Admin

1.3 – Assign Assets & Permissions
- Select your System User
- Click Add Assets and assign:
- Your Offline Event Set
- Your Facebook Page or Ad Account
- Your Facebook App
- Grant permissions:
- Manage Events
- Upload Offline Events

1.4 – Generate the Access Token
- In the System User view, click Generate Token
- Choose your Facebook App
- Select these permissions:
- ads_management
- offline_access
- business_management
- read_ads_dataset_quality
- Click Generate Token and copy it

Step 2: Add Facebook Tracking Fields in Lead Prosper
Next thing we'll need to do is add some new campaign fields in your Lead Prosper campaign to map the Facebook Meta ads data to.
2.1 – Create Campaign Fields
In your Lead Prosper campaign create the following Text fields in your campaign:
- fb_click_id
- fb_campaign_id
- fb_adset_id
- fb_ad_id

2.2 – Required Contact Fields
To help Facebook match conversions to real users, the following campaign fields need to be mapped in the buyer payload and are considered required:
- First Name
- Last Name
- Email Address
- Phone Number
- Gender
- Date of Birth
- City
- State
- Zip Code
Step 3: Set Up a Campaign Trigger in Lead Prosper
Final step is to build the actual Campaign Trigger that will fire after the lead has processed and send the conversion data back to your Facebook Meta account. Create a new Campaign Trigger, and lets get started.
3.1 – Configuration
The only required action here is to add a title.
- Navigate to Configuration > Name
- Add your campaign trigger name
- Leave the Type as Real Time
3.2 – Trigger Conditions
We're going to set two conditions here - one for if the lead has been sold, and the other to confirm that the lead actually has a click_id so that it can be attributed to a Facebook Meta ad.
- Hit Add New Rule > Lead Status and select the following:
- Conditions: Equal
- Status: Accepted
- Hit Add New Rule > Field
- Field
{{fb_click_id}}
is NOT blank

3.2 – Webhook Settings
- URL:
https://graph.facebook.com/v19.0/{PIXEL_ID}/events?access_token={TOKEN}
- Request Method: POST
- Payload Format: JSON
3.3 – Payload Template
{ "data": [ { "event_name": "Lead", "event_time": "{{lp_current_timestamp}}", "action_source": "website", "attribution_data": { "attribution_share": 0.5, "campaign_id": "{{fb_campaign_id}}", "adset_id": "{{fb_adset_id}}", "ad_id": "{{fb_ad_id}}" }, "original_event_data": { "event_name": "Lead", "event_time": "{{lp_current_timestamp}}", "event_id":"{{fb_campaign_id}}" }, "user_data": { "em": ["{{email||encode:sha256}}"], "ph": ["{{phone||encode:sha256}}"], "st": ["{{state||encode:sha256}}"], "client_ip_address": "{{ip_address}}", "client_user_agent": "{{user_agent}}", "fbc": "{{fb_click_id}}" }, "custom_data": { "currency": "USD", "value": "{{lp_lead_sell_price}}" } } ] }
Email, Phone and State need to be SHA256 encrypted. The ||encode:sha256 payload transformer is used to apply that encoding. To learn more about our payload transformers click here.
When you're done with configuring the payload hit Save.
🎉 You’re Done!
Once you have the payload configured you are all set.
If you want to run a test to confirm everything is set up correctly you will need to get details from an existing Facebook ad - Facebook Click ID, Campaign ID, Adset ID, and Ad ID. When you have those details open back up the Campaign Trigger, go to the Actions section and hit Test. This will open the Test Buyer tool. Find the fields for fb_click_id, fb_campaig_id, etc. and replace the generated values with the details you collected, and then hit Send Request
You should see a success result in the API response. Go to your Facebook ads account and check to see if the conversion was tracking correctly. If you see the sell price and other values passed then you have successfully set up your Offline Conversion Event!
Now, whenever a Facebook lead is accepted in your campaign, the conversion will be automatically sent to Facebook’s Conversions API.
Need Help?
Need help testing or verifying your setup? Reach out to our support team — we’re happy to assist!