Skip to main content

Meta says I got 40 leads but only 12 are in my CRM. Where did the rest go?

Meta & Social Published September 5, 2026
Short Answer

Almost always one of three places: the CRM connection quietly broke and the leads are sitting in Meta's Leads Center, the leads arrived but landed in a queue nobody watches, or they arrived and were deleted as junk before anyone logged them. Download Meta's raw lead export and match it to your CRM by timestamp. That single check tells you whether you have a delivery problem or a handling problem.

Download the raw leads before you theorize

Meta stores every submitted lead form response for a retention window, independent of whatever integration you set up. You can export that list directly from the Page's Leads Center or through the API. Do that first, and put it side by side with your CRM records for the same date range, matched on phone number and submission timestamp.

The comparison answers a binary question. If the leads exist in Meta and not in the CRM, the pipe is broken. If they exist in both but nobody worked them, the pipe is fine and the process is broken. Teams routinely spend weeks rebuilding an integration that was working correctly.

The three failure modes look identical from the dashboard

  • Broken delivery. The page access token expired, someone removed an admin, or the app permission was revoked. Meta keeps accepting leads and stops forwarding them, usually without an alert anyone sees.
  • Silent landing. Leads arrive into a form-fill queue, an unassigned pipeline stage, or a shared inbox with no owner. They are technically in the CRM, just not in anyone's day.
  • Pre-emptive deletion. A dispatcher decides the lead looks fake and removes it. Now the record does not exist to reconcile against, and your booking rate for Meta looks worse than it is.

Token expiry is the failure you should engineer against

Native page-to-CRM connections depend on a long-lived token tied to a specific user. When that person changes their password, loses admin rights, or leaves the company, the token dies. Nothing in the ads interface turns red. The only symptom is a lead count that goes flat.

The fix is not vigilance, it is monitoring. A properly built Meta integration polls the lead endpoint on a schedule, compares what Meta holds to what the CRM holds, and raises an alert when the two diverge for more than a few hours. That check costs almost nothing to run and catches the outage the same day rather than at the end of the month.

Reconcile once, then keep reconciling

The reconciliation should not be a one-time forensic exercise. Once you have a job that pulls Meta's lead list and matches it against records in ServiceTitan, Jobber or GoHighLevel, keep it running and report the match rate as a number on your dashboard.

A visible match rate changes behavior. When the number drops, someone asks why on the day it drops. That is the entire value of building reconciliation into a daily brief instead of leaving it as something you check when the results look wrong.

Topics: lead forms · CRM sync · diagnostics · data loss

Have a version of this question about your own business?

The useful answer usually depends on which systems you run and how they're connected. That's a conversation, not a blog post.

Related Answers

People who read this also asked

Browse the Answer Hub →

AI is easy to access. Making it useful is hard.

Bluefrog makes AI useful by integrating it with the way your business actually works — your software, your calls, your customers, your marketing and your revenue.

Technology development since 1997 · AI integration platforms since 2001