How to reconcile Meta Ads against your CRM's closed-won deals
This is the check we run first on every account, written out so you can run it without us. It takes about thirty minutes and needs two numbers: what Meta says it produced, and what your CRM's closed-won deals actually shows. The gap between them is the only honest measure of whether your tracking works — and if it comes back small, you do not need us.
Free30 minutesNo obligation
Specific to Meta × CRM Deals
Meta Ads vs closed-won deals: match on lead ID or hashed email
Reconcile Meta against closed-won deals using the lead ID from Meta lead forms, or hashed work email and phone sent through the Conversions API. Meta's 7-day click and 1-day view default rarely covers a B2B close, so compare closed-won to the leads Meta attributed, not to Meta's own deal count. Expect Meta to over-credit view-through leads.
If the deal began as a Meta lead form, the lead ID is the cleanest join key you have: it arrives with the lead and can be stored on the CRM contact and sent back when the deal closes. For website forms there is no equivalent, so the match falls back to fbclid captured on landing plus hashed email and phone. Work emails often don't match the personal address someone uses on Facebook, which caps the match rate regardless of how carefully you normalize.
Meta's default counts a conversion within 7 days of a click or 1 day of a view, and a view-through lead is included in the headline number. A closed-won deal uploaded weeks later falls outside that window, so Meta will often show almost no deals while the campaign produced several. Meta also reports results against the date of the ad interaction, which shifts any comparison by close date. Use Ads Manager with the attribution setting broken out, so click-through and view-through leads are separate.
It is normal for Meta's lead count to exceed the deals traced back to it. It is breakage when lead-form IDs never reach the CRM at all. The usual cause is low-intent form fills counted as leads, one company submitting several times, and only one becoming a deal.
Meta × CRM Deals · what breaks
Why Meta and your CRM's closed-won deals disagree
- 01
Form fills counted instead of deals
The most common B2B error. The platform counts an enquiry; the business earns on a signed contract, and the rate between them varies enormously by source.
- 02
Outbound pipeline in the same report
Deals a rep sourced by cold outreach land in the same pipeline as inbound ones. Without an origin field they inflate marketing's apparent performance.
- 03
Several contacts from one company
Three people from one account researching separately is one opportunity. Counting them separately makes cost per acquisition read as a third of reality.
- 04
Sales cycle longer than the attribution window
A deal that closes in month four falls outside every default window, so the campaign shows nothing while producing everything.
Meta × CRM Deals · the fix
What you get from this — Meta × CRM Deals
A number instead of a suspicion
The likely cause, narrowed
A basis for deciding
Meta × CRM Deals · architecture
What each side is actually counting — Meta × CRM Deals
- 1
What Meta counts
event_name from the standard set with exact casing, event_time in seconds, a shared event_id, an action_source, and hashed user_data that was normalized before hashing. Purchase additionally requires value and currency.
- 2
How Meta attributes it
fbclid arrives on the landing URL and is normally written into the _fbc cookie. If it isn't captured on landing, _fbc never exists — and _fbc is the strongest click signal Meta has, so its absence caps your match quality regardless of what else you send. Forward _fbp too, from the browser rather than regenerating it server-side.
- 3
The window it uses
Meta's default attribution is a 7-day click and 1-day view. View-through is included by default, which is a large part of why Meta claims more conversions than your other platforms — that overlap is expected rather than a fault.
- 4
What your CRM's closed-won deals counts
Opportunities marked closed-won, at their actual value, found in HubSpot → Deals, Salesforce → Opportunities, Pipedrive → Deals, filtered to won.
- 5
The filter that makes them comparable
Stage is closed-won, and the source is a paid channel rather than outbound or referral.
Meta × CRM Deals · events
Reading the gap — Meta × CRM Deals
| What you see | What it usually means |
|---|---|
| 15%+ platform higher | Usually the wrong event entirely — the platform is claiming deals it did not produce. usually outbound or referral pipeline landing in the same report without an origin field. |
| 20%+ platform lower | Usually structural — the platform is missing deals it produced. almost always the cycle outliving the window, or the identifier never reaching the crm record. |
Meta × CRM Deals · diagnose
Diagnostic order — Meta × CRM Deals
- 01
Confirm both numbers cover the same period and channel
- 02
Form fills counted instead of deals
The most common B2B error. The platform counts an enquiry; the business earns on a signed contract, and the rate between them varies enormously by source.
- 03
Outbound pipeline in the same report
Deals a rep sourced by cold outreach land in the same pipeline as inbound ones. Without an origin field they inflate marketing's apparent performance.
- 04
Several contacts from one company
Three people from one account researching separately is one opportunity. Counting them separately makes cost per acquisition read as a third of reality.
- 05
Read the Deduplicated indicator and the per-event match quality score, both read over seven days
Match quality is where most Meta accounts lose attribution, and it's almost always normalization rather than coverage. An email hashed with a capital letter, or a phone hashed with brackets, produces a perfectly valid hash that matches nobody and errors nowhere. Normalize first, then hash, and read the score per event rather than overall.
Meta × CRM Deals · prove
How to know you did it right — Meta × CRM Deals
Source of truth
your CRM's closed-won deals — closed-won deals for a fully closed month
Meta × CRM Deals · free audit
What we check in the free audit
- Confirm both numbers cover the same period and channel
- Form fills counted instead of deals
- Outbound pipeline in the same report
- Several contacts from one company
- Read the Deduplicated indicator and the per-event match quality score, both read over seven days
Checked against
your CRM's closed-won deals — closed-won deals for a fully closed month
Free30 minutesNo obligation
Meta × CRM Deals · when not to buy
When the answer is that you do not need us — Meta × CRM Deals
- If almost all of your closed-won deals come from a channel with no click behind it, no tracking work will reach them — and knowing that is worth more than a build.
- If you're advertising a business type Meta restricts data collection for — health being the obvious one — the parameters you can legitimately send are narrower, and that constraint should shape the build rather than be worked around.
Meta × CRM Deals · what we deliver
The method, step by step — Meta × CRM Deals
Pull what Meta reports
The deduplicated indicator and the per-event match quality score, both read over seven days.
Pull what your CRM's closed-won deals shows
Export closed-won deals by close date for a window long enough to cover your full sales cycle. Deduplicate to one per account, and sum the value actually contracted.
Filter both to the same thing
Stage is closed-won, and the source is a paid channel rather than outbound or referral.
Compare per record, not on totals
FAQ
Meta × CRM Deals questions, answered
Yes, as a later-stage CRM event through the Conversions API, matched on the lead ID or hashed contact details. Check Meta's current documentation for how long after the lead it will still accept the event.
View-through attribution counts anyone who saw an ad within a day and then converted, even if they arrived by search or a rep's email. Break the view-through column out before comparing.
Because you should know the size of the problem before anyone quotes you for it. If the gap is small, you have saved yourself a purchase. If it is large, you now know what you are buying rather than taking our word for it.
No. Both numbers come from systems you already own and neither leaves them. There is no tool to sign up for and nothing to upload.
Then compare totals for a closed period and treat the result as directional rather than exact. The deduplicated indicator and the per-event match quality score, both read over seven days is still the right place to read the platform's side.
Under five percent is working. Five to fifteen usually means reversals are missing. Above twenty is normally the wrong event being counted, not a broken tag — which is why debugging tags first wastes so much time.
Then fix the filter before drawing any conclusion. Stage is closed-won, and the source is a paid channel rather than outbound or referral. A mismatch in scope produces a gap that looks like a tracking fault and is not one.
Book the free thirty-minute call and bring both numbers. We will tell you which of the causes above it is, and whether it is something you can fix yourself — which it sometimes is.
More on Meta × CRM Deals
- Google Ads × CRM DealsHow to reconcile Google Ads against your CRM's closed-won deals
- TikTok × CRM DealsHow to reconcile TikTok Ads against your CRM's closed-won deals
- Microsoft × CRM DealsHow to reconcile Microsoft Ads against your CRM's closed-won deals
RELATED GUIDES
Systems of record beside crm opportunities, and the funnels it settles
- Meta × Enrolment SystemHow to reconcile Meta Ads against your application or enrolment system
- Meta × Job SystemHow to reconcile Meta Ads against your job management system
- Meta · Directory listing → enquiryHow to track directory listing to enquiry for Meta Ads
- Meta · Franchise enquiry → agreementHow to track franchise enquiry to signed agreement for Meta Ads
- Meta · Senior careMeta Ads conversion tracking for senior care communities
- Meta · Criminal defenseMeta Ads conversion tracking for criminal defense attorneys
- Cookiebot → MetaConnecting Cookiebot to Meta Conversions API
- CookieYes → MetaConnecting CookieYes to Meta Conversions API
Free · 30 min
Found a gap between Meta and your CRM's closed-won deals?
Free30 minutesNo obligation
