Skip to main content
Meta × CRM DealsRun this yourself

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

  1. 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.

  2. 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.

  3. 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.

  4. 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. 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. 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. 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. 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. 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

15%+ platform higherUsually 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 lowerUsually 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

  1. 01

    Confirm both numbers cover the same period and channel

  2. 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.

  3. 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.

  4. 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.

  5. 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

    Get my free conversion tracking audit

    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.

    Free · 30 min

    Found a gap between Meta and your CRM's closed-won deals?

    Free30 minutesNo obligation