In this guide
- Map Lead and Opportunity fields to Meta user data and custom data.
- Send stage changes, hashed e-mail and phone,
fbcandfbpsaved at the form, and a stable event ID. - Send promptly, within Meta's time window.
The earlier page on Salesforce and ad platforms explains the flow. This one is about the field mapping to Meta, which is where most Salesforce integrations go wrong. It follows CRM data to Meta with webhooks and Meta offline conversions.
Fields to prepare in Salesforce
| Salesforce field | Meta field | Notes |
|---|---|---|
| Lead e-mail | user_data.em | Trim, lower-case, SHA-256 |
| Lead phone | user_data.ph | Digits with country code, SHA-256 |
| First and last name | user_data.fn, ln | Lower-case, SHA-256 |
| City, state, postal code, country | user_data.ct, st, zp, country | Normalised, SHA-256 |
| Custom field: Meta click ID | user_data.fbc | Saved at the form |
| Custom field: Meta browser ID | user_data.fbp | Saved at the form |
| Lead or Opportunity ID | event_id and external_id | Stable for deduplication |
| Stage change time | event_time | Unix seconds |
| Opportunity amount and currency | custom_data.value, currency | For purchase-like events |
Ask Ari instead of digging through reports
Ari reads your tracking and ad data and answers in plain words.
Events to send
| Salesforce change | Meta event name |
|---|---|
| Lead status becomes Qualified | QualifiedLead (custom) or Lead |
| Opportunity stage reaches Proposal | Proposal (custom) |
| Opportunity Closed Won | Purchase with amount |
Route through a server container
Flow posts to your tagging server
With a secret header and a JSON body.
A client claims the request
And maps the body to event data.
The Meta tag sends the event
With the dataset ID and token.
Check in Test Events
The event name, match keys and event ID.
See webhook servers for securing the endpoint.
Connected in minutes
Add your domain, install the pixel, connect your ad platforms and watch the first events land.
Time windows and timing
Meta only accepts events within a limited time after they happen, generally about seven days. Send each stage when it changes, not in a monthly batch.
Match quality
- Send as many hashed fields as you have.
- Send
fbcandfbpsaved at the form. - Check event match quality in Events Manager. See event match quality.
Common problems
fbc, fbp or e-mail.A realistic example
A software company with a Salesforce org sends "Qualified" and "Closed Won" to Meta. Its first attempt maps only e-mail, so Meta matches about a third of events. The team adds the phone number, the first and last name, the country and the fbc and fbp values saved at the form, all normalised and hashed, and the match rate for the stage events roughly doubles. It also changes its Flow to run only when the stage field changes, which removes the duplicates it had been seeing, and sends each event the same day. The improvements were all in the mapping, not in the plumbing. When a Salesforce integration disappoints, check the fields first: which are sent, in what format, and whether the click IDs made it from the form to the lead.
Orders from your store, back to the ad that earned them
Your store sends the order once. Open Tracked passes it on to each ad platform, cleaned and deduplicated.
Frequently asked questions
How do I send Salesforce data to the Meta Conversions API?
Map Lead and Opportunity fields to Meta event fields and send stage changes through a server container or direct API calls.
Which Salesforce fields matter?
E-mail, phone, name, address fields, the Meta click and browser IDs and the lead or opportunity ID.
How fast must I send events?
Promptly. Meta limits how old an event can be, generally about seven days.
How do I avoid duplicates?
Use a stable event ID and trigger only on stage changes.
Do I need a server container?
It is convenient for several platforms, but not required.
Do I need spreadsheets to read my results?
No. Once tracking is live, the Open Tracked analytics shows spend, revenue, ROAS and profit, and you can ask Ari, the built-in AI assistant, questions about your own numbers in plain words. Ari's allowance depends on your analytics plan.
Is Open Tracked different from Open Track or Open Space Track?
No. Open Tracked is the official name of our server-side tracking platform, and the website is opentracked.io. Many people search for it as Open Track, OpenTrack or Open Space Track. All of them lead to the same product: server-side Google Tag Manager hosting, first-party analytics and a CRM pipeline.

Fix your tracking at the source
Open Tracked hosts your server-side Tag Manager, keeps first-party cookies alive and shows what each ad is really worth.
The Open Tracked team
We build Open Tracked: server-side tracking hosting, analytics and the tools around them, for stores that spend on ads. Questions about this guide, or an idea for the next one?
Comments
Loading comments...

