Facebook Leads Not in CRM? The 7 Failure Points | Clikim
Home  /  Blog  /  Leads Not in CRM
By Yael Rachmut · Integrations & lead flows · Updated September 2026 · 11 min read

Facebook Leads Not in Your CRM? The 7 Failure Points

Meta's lead delivery is fire-once: no retry, no resend button, and a spam filter that withholds leads from your API entirely. Here are the seven distinct ways the pipe breaks — each with its symptom signature — plus the CSV backfill SOP and the five-minute ritual that catches everything.

Facebook leads not showing up in CRM failure points
QUICK ANSWER

Three facts explain almost every 'lost' Facebook lead: delivery is fire-once (down endpoint = lead never re-delivered, no resend button exists), spam-filtered leads never reach the API at all (they exist only in manual downloads — your CRM will never equal Leads Center), and leads are deleted from Meta after 90 days. Triage by pattern: ALL stopped on a date → token expiry or permissions (check Leads Access Manager — one customization silently unsubscribes every unlisted integration); SOME missing → spam filter, polling gaps, unconnected new forms, field-mapping rejects after form edits; arriving LATE → polling cadence and queue backlogs. Recovery is always the same: CSV export from Leads Center, dedupe on email+phone+time, import tagged as backfill. Prevention: weekly per-form count reconciliation, token calendar, connect-the-form on every launch checklist.

Key takeaways

• Meta's lead pipe is fire-once with no retry and no resend button — the single most important fact in lead-gen ops, and it appears in no error message. • Leads live in Meta's Leads Center for 90 days, then they're deleted — the CSV backfill window is finite and closes silently. • The seven failure points have distinct symptom signatures: all-stopped-on-a-date = token; clustered gaps = polling/outage; certain-answers-missing = field mapping; started-when-someone-left = permissions. • Meta's spam filter withholds suspicious leads from API delivery entirely — they exist only in manual downloads, so your CRM count will never equal Leads Center. • Leads Access Manager is the invisible seventh layer: the moment anyone customizes lead access, every unlisted integration silently loses delivery. • Monitor the pipe, not the CRM: a weekly count reconciliation (Leads Center vs CRM, per form) catches every failure mode in one five-minute ritual.

How a lead actually travels (and where it can die)

Someone taps your ad, autofills an Instant Form, hits submit. From there: the lead is written to Meta's Leads Center (attached to the page and form, not the ad account — a detail that matters for permissions), a webhook fires once toward whatever integration is subscribed, and your CRM ingests, maps fields, and creates the record. Three hops, seven distinct places to fail — and because the CRM is the only place most teams look, every failure gets the same useless diagnosis: "the integration broke." The economics of this bug are brutal: instant-form leads decay by the minute (industry speed-to-lead studies put contact rates several times higher inside five minutes than after an hour), so a silently broken pipe doesn't just delay data — it converts paid leads into unreachable strangers while the ads keep spending. This guide is the full autopsy: the seven failure points with their signatures, the triage tree, the recovery SOP, and the five-minute weekly ritual that catches all of it.

The three-pattern triage

ALL stopped, SOME missing, or arriving LATE — the pattern eliminates most of the seven suspects before you open a settings page.

ALL stopped, SOME missing, or arriving LATE — the pattern eliminates most of the seven suspects before you open a settings page.

Before the seven suspects, the pattern. All leads stopped, sharply, on a date — you're looking at credentials or permissions: an expired token, a disconnected integration, a page-role change. Some leads missing while others flow — you're looking at the spam filter, a polling gap, an unconnected new form, or field mapping. Leads arriving late but arriving — that's cadence: polling intervals, queue backlogs, import throttling. Thirty seconds with your CRM timeline and the Leads Center export answers which pattern you have, and the pattern eliminates four or five suspects at once.

The seven failure points

#
Failure point
Symptom signature
The fix
1
Expired access token
ALL leads stop on one date — often ~60/90 days after setup or a password change
Reconnect/reauthorize the integration; calendar the expiry; prefer system-user tokens for owned stacks
2
Meta's spam filter withholding
SOME leads in Leads Center never hit the API/CRM — often the fake-looking ones (asdf@, 000 numbers)
Nothing to configure — filtered leads deliver only via manual download; include them in every CSV backfill
3
Polling gaps & automation downtime
Leads missing in clusters that match an outage or a paused zap
Move from polling to webhook-based delivery; monitor the automation, not just the CRM
4
Field-mapping rejects
Leads with certain answers vanish; others flow — started after a form edit
Re-map after EVERY form change; custom questions are matched by name, and renames orphan them
5
Page & Business Manager permission changes
Stopped the day an admin left, an agency was removed, or Business settings changed
Re-grant page + leads_retrieval permission; check Leads Access Manager (below)
6
Leads Access Manager lockout
Integrations silently lose access the moment someone customizes lead access on the page
Business Settings → Leads Access → assign your CRM/integration explicitly; this overrides everything else
7
New form not connected
Old forms flow, the form launched last Tuesday doesn't
Connect every NEW form to the integration — most tools do not auto-subscribe new forms

Seven distinct failures, one lazy diagnosis ("the integration broke"). The symptom signature names the row.

#1 — Token expiry, the boring epidemic

The most common cause of the all-stopped pattern is also the least interesting: the access token behind the integration expired or was invalidated. Tokens die on a schedule (commonly ~60 or 90 days depending on type), and they die instantly when the connecting user changes their Facebook password, gets removed from the page, or trips a security checkpoint. The failure is completely silent on Meta's side — the webhook simply stops being authorized, nothing emails you, and the CRM shows an ever-more-peaceful inbox that reads as "leads slowed down" until someone checks the ad's Results column. The fix is a reauthorization in whatever tool owns the connection; the prevention is a calendar entry at 55/85 days, and — for stacks you control — connecting through a system user in Business Manager rather than a human's login, so password changes and departures stop being outage events.

#2 — The withholding filter (the one Meta won't tell you about)

Here is the sentence that resolves a thousand confused agency Slack threads: leads Meta's spam filter flags as suspicious are not delivered through the API at all — no webhook, no CRM record, no error. They exist, you paid for the impressions that generated them, and they appear in exactly one place: the manual download. This is why your CRM count and your Leads Center count never quite reconcile, and why the missing ones are disproportionately the asdf@gmail.com and all-zeros-phone-number entries — though the filter takes real leads with it often enough that writing them all off is a mistake. There is no setting to change this behavior. The operational consequence: every backfill and every reconciliation must use the CSV export, because the API view of your leads is structurally incomplete.

#3–#4 — Gaps in the pipe: polling, outages, and field mapping

Polling-based automations check for new leads on an interval — commonly every 15 minutes — and a lead that fires during a paused zap, a maintenance window, or a rate-limited hour is a lead the next poll may simply never see. The cluster pattern gives it away: missing leads bunched in time, matching an outage log. The durable fix is moving from polling to webhook-based delivery (push, not pull), and — more important — monitoring the automation layer itself instead of inferring its health from CRM volume. Field mapping fails differently: the integration receives the lead and the CRM rejects or mangles it, typically right after someone edited the form. Custom questions are matched by their names — rename "What's your budget?" to "Monthly budget?" and every integration mapped to the old name silently orphans that answer, which in stricter CRMs (required fields, validation rules) kills the whole record. The rule that prevents it: every form edit is a mapping review, no exceptions.

#5–#6 — Permissions, and the invisible Leads Access Manager

Lead data hangs off the page, so page-level and Business-Manager-level changes break delivery in ways ad-account permissions never would: the employee who originally connected the CRM leaves, an agency partnership ends, page roles get "cleaned up" — and delivery stops the same day, which is your forensic clue. The deeper cut is Leads Access Manager, the least-known screen in Business Settings: by default everyone with page access can read leads, but the moment anyone customizes access, the model flips to allowlist-only — and every CRM and integration not explicitly assigned loses delivery silently. It's the classic "we changed nothing, it just stopped" culprit, because the person restricting access for a compliance request had no idea they were unsubscribing the CRM. If the all-stopped date matches any personnel or permission event, check this screen before touching a single token.

#7 — The new form nobody connected

The simplest one, saved for last because of how often it survives audits: most integrations subscribe to specific forms, not to the page — and a new form launched with last Tuesday's campaign delivers nothing until someone connects it. Old forms flowing while the newest is silent is the entire signature. Bake "connect the form" into the campaign-launch checklist, next to the UTM check.

The recovery SOP: CSV backfill against the 90-day clock

The only replay button Meta gives you — and it has an expiry date.

The only replay button Meta gives you — and it has an expiry date.

Whatever broke, recovery is the same, because Meta never re-delivers through the pipe. Export the gap period from Leads Center (or per-ad via the Results column — Meta's download documentation covers both routes), dedupe against the CRM on email + phone + created time, and import with original timestamps, tagged as backfill so your speed-to-lead metrics don't lie to you later. Two hard deadlines govern this: leads are deleted from Meta's side at 90 days, and the leads' commercial value decays much faster than that — a backfilled lead from three weeks ago is data, not opportunity. Run the export the day you discover any gap, then fix the pipe.

A worked example: the 34 missing leads

Composite case, familiar shape. A lead-gen account spends $4,900 in July; Ads Manager reports 212 leads; the CRM holds 178. Where are the 34? The reconciliation: Leads Center export shows all 212 — so nothing is lost, only undelivered. Eleven are spam-withheld (the export's obvious junk plus three that look real — called anyway, one books). Nineteen cluster between July 9–11 — matching a Zapier auth error nobody saw; token had expired on the 9th, and the zap's own history confirms zero runs for 60 hours. Four came from the new "July Promo" form that was never connected. Total recovery: 23 real leads backfilled, one closed deal from the spam pile, and two process changes (token calendar, launch checklist) that make the next audit boring. Time cost: about 90 minutes. The alternative — the default — was never knowing, and 34 paid leads quietly aging out at day 90. At this account's $23 cost per lead, the missing rows represented $782 of paid inventory sitting in a CSV nobody had downloaded.

The five-minute weekly ritual

Every failure mode above is caught by one reconciliation: weekly, per form, compare the Leads Center count to the CRM count, expecting a small stable delta (the spam-withheld share). Delta widened? Something in the seven broke this week, and you're finding out in days, not quarters. Pair it with a monthly test lead through your own form — watching it land in the CRM within the expected latency — and with the same monitoring discipline your pixel gets. Lead-gen stacks fail quietly by design; the counterweight is a loud calendar.

Fire-once delivery, a 90-day clock, and a filter that hides leads from your API — the three facts that explain almost every 'lost' lead.

Fire-once delivery, a 90-day clock, and a filter that hides leads from your API — the three facts that explain almost every 'lost' lead.

Why media buyers run on Clikim
9,800+
accounts under management
$490M+
in ad spend processed
<3 min
average rep reply
0%
top-up & spend fees
Trusted by 1,200+ media buyers scaling 7–8 figures on whitelisted Meta & TikTok accounts.

Frequently asked questions

Why are my Facebook leads not showing up in my CRM?+
Seven distinct causes with distinct signatures: expired access tokens (all leads stop on a date), Meta's spam filter (some leads never delivered via API), polling gaps and automation outages (clustered misses), field-mapping rejects after form edits, page/Business Manager permission changes, Leads Access Manager lockouts, and new forms nobody connected. Match your pattern — all/some/late — before touching settings.
Does Meta resend leads that failed to deliver?+
No — delivery is fire-once. If your endpoint, zap, or token was down when the lead fired, Meta does not retry and no resend button exists anywhere. The only recovery is the manual CSV export from Leads Center, and the underlying data is deleted after 90 days.
How long do Facebook leads stay available for download?+
90 days from submission — after that the lead data is deleted from Meta's side and no backfill is possible. Any gap you discover should be exported the same day.
Why do some leads appear in Leads Center but never reach my integration?+
Meta's spam filter withholds suspicious-looking leads from API delivery entirely — no webhook, no error. They appear only in manual downloads. That's why CRM counts never quite equal Leads Center counts, and why reconciliations must use the CSV, not the API.
What is Leads Access Manager and why did it break my integration?+
A Business Settings screen controlling who may read a page's leads. By default access is open — but the moment anyone customizes it, the model flips to allowlist-only and every CRM or integration not explicitly assigned silently loses delivery. It's the classic 'we changed nothing' culprit after a compliance or permissions cleanup.
My leads stopped on an exact date — what happened?+
Credentials or permissions: an access token expired (~60/90-day lifetimes, or instantly on password changes and security checkpoints), the connecting employee lost page access, or lead access was restricted. Check the integration's connection status first, then Leads Access Manager, then page roles — in that order.
Why don't leads from my newest form sync?+
Most integrations subscribe to specific forms, not the whole page — new forms deliver nothing until connected. Old forms flowing while the newest is silent is the entire diagnosis. Add 'connect the form' to every campaign-launch checklist.
Can editing my Instant Form break lead delivery?+
Yes — custom questions are matched by name, so renaming one orphans every mapping pointed at the old name; in CRMs with required fields or validation, the whole record can fail. Every form edit should end with a mapping review and a test lead.
How do I backfill missed leads into my CRM?+
Export the gap period from Leads Center (or per-ad via Results → Download leads), dedupe against the CRM on email + phone + created time, import with original timestamps, and tag records as backfill so speed-to-lead reporting stays honest. Then fix the pipe — backfill recovers data, not momentum.
What's the best way to catch lead delivery failures early?+
A weekly five-minute reconciliation: per form, compare Leads Center count to CRM count. A small stable delta is the spam-withheld share; a widening delta means one of the seven failure points broke this week. Add a monthly live test lead through your own form.
Should I use webhooks or polling for Facebook leads?+
Webhooks (push) beat polling (pull) on both latency and reliability — polling automations check on intervals and can permanently miss what fires during downtime. If you stay on a polling tool, monitor the tool itself; inferring its health from CRM volume is how gaps go unnoticed for weeks.
Do missed leads still cost me money?+
You already paid for them — a missing lead is paid inventory rotting in a CSV. At a $23 CPL, a 34-lead gap is $782 of spend, and lead value decays by the hour (contact rates are several times higher within minutes than after an hour). Silent pipe failures are budget failures.

Lead flow fixed, account to match

Whitelisted infrastructure for lead-gen operators — stable infrastructure on the ad side while you keep the pipe honest.