Facebook leads look like they vanish for one of a handful of reasons, and almost none of them are the CRM's fault. The lead form worked, Meta has the data, and something between the form and your CRM either was never switched on, lost permission, or is pointed at the wrong Page. This article walks through how the pipe is built, where it actually breaks, and how to prove in about 15 minutes that leads are reaching your CRM before you tell a client something is wrong.
How a Facebook lead actually gets to a CRM
A lead ad is not a form that emails you a submission. It is a chain of systems, and each link can be tested separately.
- Someone fills out the Instant Form on Facebook or Instagram. The form belongs to a specific Facebook Page, not to an ad account and not to a business portfolio.
- Meta creates a
leadgen_idand attaches it to that Page's lead data. Meta's own developer documentation describes this as theleadgenfield inside a webhook payload, carryingleadgen_id,page_id,form_id,adgroup_idandad_id. - One of three things picks the lead up:
- A webhook subscription on the Page, subscribed to the
leadgenfield, which fires in near real time whenever a new lead is created. - A direct CRM integration that Meta lists in its own CRM integrations, which handles the webhook and the fetch for you once it is connected and granted access.
- Manual or scheduled download from Ads Manager, Meta Business Suite, or the Graph API's bulk leads endpoints, with no live webhook at all.
- A webhook subscription on the Page, subscribed to the
- Whatever received the
leadgen_idthen calls the Graph API to fetch the actual field data for that lead (name, email, phone, and any custom questions), using a Page access token that has the right permissions. - The CRM writes the lead into its own fields, mapping Meta's field names onto its own, and that mapping is where garbled or blank fields usually come from.
The practical point: a lead can exist perfectly well on Meta's side, visible in Ads Manager, while never reaching step 4 or 5. That is the failure state people mean when they say "Facebook leads not showing" or "not syncing to CRM." The lead was captured. It just was not delivered.
The three ways to connect a CRM
Meta's own Business Help Center describes three integration types for lead ads, and most of the paths above fall into one of them:
| Type | What it is | When to use it |
|---|---|---|
| Direct integration | The CRM connects straight to your Facebook Page through Meta's list of supported CRM integrations (HubSpot, Salesforce, and others), handling the webhook and fetch internally | Your CRM is on Meta's supported list and you want the simplest setup |
| Third-party / Zapier or Make | A middleware tool watches for new leads on the Page and pushes them into a CRM that has no direct integration | Your CRM is not on Meta's list, or you want custom logic (filtering, enrichment) before the lead lands |
| Custom integration | You build your own endpoint, subscribe it to the Page's leadgen webhook, and call the Graph API yourself to fetch and write the lead |
You need full control over field mapping, deduping, or routing, or you are building the CRM yourself |
Meta is explicit that a CRM connection is optional. You can always download leads manually from Ads Manager or Meta Business Suite without connecting anything. The tradeoff is the 90-day download window covered below, and the fact that manual downloads do not give you real-time follow-up.
Leads Access: the permission screen that breaks most syncs
This is the single most common cause of "leads worked yesterday, stopped today," and it is not where most people look first.
Meta's Business Help Center describes a setting called Leads Access inside Business Settings, under Integrations. By default, before anyone touches this setting, every admin of the connected Facebook Page can access and download leads, and any CRM you connect inherits that same access automatically.
The moment someone with full control of the business portfolio clicks Customize access inside Leads Access, the behavior changes: from that point on, only the people and CRMs explicitly listed under Leads Access can read lead data from that Page, even if they are still Page admins in every other sense. Meta's help article notes that when you first customize access, the system automatically carries over the existing Page admins and integrated CRMs, but anything added, removed, or reconnected after that point has to be granted access by hand.
Where to check it, as of the names Meta uses in October 2026:
business.facebook.com → Business Settings → Integrations → Leads Access → CRMs tab
If your CRM is not listed there, it will not receive leads, no matter how correctly everything else is configured. This is also the exact screen several CRM vendors (HubSpot, Zoho, Make, GoHighLevel's LeadConnector) point to when their own troubleshooting guides describe a sync that silently stopped: a business admin enabled Leads Access restrictions at some point, which quietly orphaned every CRM that was not re-added.
A second, related trap: adding someone as a Page admin does not automatically give them Leads Access once it has been customized. Those are two separate permission layers, and granting one does not grant the other.
Page roles and tasks you need
Meta moved Facebook Pages off the old Page Roles system onto a newer permission model built around the Page asset inside a business portfolio, assigning people a business-level role (Admin or Employee, formerly called Business admin or Employee) plus asset-level tasks on each individual Page (Manage, Advertise, Analyze, and similar). The practical requirement that has stayed constant through that change: to connect or manage a CRM integration for lead ads, the person doing it needs to be a full admin of the connected Page and to have Leads Access on that Page, not just an advertiser or analyst role on the ad account.
If a client revokes a team member's Page access, or an employee leaves and their access is removed, any CRM connection they personally set up can lose its working token even though the CRM integration itself still shows as "connected" in your dashboard.
The Lead Ads Testing Tool
Meta publishes a dedicated testing tool at developers.facebook.com/tools/lead-ads-testing. It lets you push a fake lead through a live form to confirm the whole pipe end to end, without spending ad budget and without waiting for a real prospect to submit the form.
How it works, based on Meta's own tool and the behavior confirmed across multiple CRM vendors' support docs that depend on it:
- Open the tool and sign in with an account that has admin access and Leads Access on the Page.
- Pick the Page, then the specific form you want to test.
- Click Create Lead. Meta requires a Page admin to accept the Lead Ads Terms once per Page before any lead, test or real, can be created.
- Click Track Status to see whether a connected webhook, Zapier/Make scenario, or CRM picked the test lead up.
- Facebook allows only one active test lead per form at a time. Click Delete Lead before creating another, or the next test will fail silently.
Do not substitute a live ad's preview link to "test" a form instead. That submission counts as a real lead and will distort your reported conversion numbers.
How long you can download leads, and why that matters
Meta's Business Help Center states that lead data is available for download for up to 90 days from the moment a person submits the form. After 90 days, that lead cannot be downloaded at all, even if the campaign's lifetime results in Ads Manager still show it as part of the total lead count. Meta gives the reason directly: security and storage considerations, on the view that 90 days is long enough to cover most follow-up use cases.
There is one exception: if the lead came through Messenger rather than an Instant Form, the conversation stays in the Page inbox indefinitely and is not subject to the 90-day limit.
The practical consequence for an agency: if a CRM sync has been broken for more than 90 days, you cannot go back and recover the missed leads from Meta's side. Meta's own recommendation is to download leads often, or keep a CRM connection live at all times, specifically to avoid this. If you discover a sync has been down, check how long it has been down before you promise a client their leads can all be recovered.
Common causes and fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| Leads show in Ads Manager but never appear in the CRM | CRM was never granted access in Leads Access Manager, or access was customized and the CRM was dropped | Business Settings → Integrations → Leads Access → CRMs tab, add the CRM back |
| Sync worked for months, then stopped all at once | The integration user left the business, was removed as a Page admin, or lost Leads Access | Reassign a current admin with Leads Access, reconnect the CRM under that account |
| Sync stopped right after someone changed their Facebook password | The access token tied to that person's login expired when the password changed | Reconnect the CRM integration and generate a fresh token |
| One form syncs, another does not | The second form lives on a different Facebook Page than the one connected to the CRM | Confirm in Ads Manager which Page owns the form; connect or reconnect the CRM to that specific Page |
| No webhook activity at all for a custom integration | The app's webhook subscription to the leadgen field was never set up, or was removed |
Re-subscribe via POST /{page-id}/subscribed_apps?subscribed_fields=leadgen with a valid Page access token |
| Leads arrive in the CRM but every form submission is being treated like a new webhook event with no data | The app is still in development mode in the Meta developer console, so it is not receiving live traffic | Submit the app for the required permissions and move it to live mode |
| Leads from organic posts show up, ad leads do not, or vice versa | Organic and paid lead forms can be separate forms even when they look identical, and are typically mapped and synced separately | Check the form ID on each lead source, confirm both are mapped in the CRM's field mapping screen |
| Leads sync but half the fields are blank | Field mapping mismatch between a custom question in the form and the CRM's field, or a question was optional so the lead skipped it | Compare the raw downloaded CSV against the CRM's mapped fields; make phone or email a required question in the form if you cannot afford a blank |
| The same lead shows up in the CRM twice | No dedupe logic on the receiving end, often from a retried webhook delivery or a resubmitted form | Dedupe on leadgen_id, which is unique per submission, rather than on name or email |
| Leads are correct but arrive minutes or hours late | Using scheduled bulk download instead of the webhook, or a middleware tool (Zapier/Make) running on a polling interval rather than instant triggers | Switch to a webhook-based or instant-trigger integration if speed of follow-up matters |
A 15-minute checklist to prove the pipe works
Run this before telling a client leads are fixed, and rerun it any time a sync "just stopped."
- Confirm the Page. In Ads Manager, open the ad's lead form and note the exact Page it is attached to.
- Check Leads Access. Business Settings → Integrations → Leads Access → CRMs tab. Confirm your CRM (or Zapier/Make, if that is your middleware) is listed for that specific Page.
- Confirm admin access. Confirm the account connected to the CRM is a full admin of that Page, not just an advertiser.
- Send a test lead. Open
developers.facebook.com/tools/lead-ads-testing, pick the Page and form, click Create Lead. - Watch the CRM. Check whether the test lead lands within a minute or two. If it does not, click Track Status in the testing tool to see whether Meta recorded a delivery attempt at all, which tells you whether the problem is on Meta's side of the handoff or the CRM's side.
- Check the fields. Confirm name, email, phone, and any custom questions all mapped correctly, not just that a lead record was created.
- Delete the test lead before running the test again, since Facebook allows only one active test lead per form.
- Repeat for every form that feeds that CRM, not just one. A fix on one form does not mean every form is connected to the same Leads Access list.
If the test lead never reaches the CRM, work backward: webhook subscription, then Leads Access, then Page admin status, in that order, since those are the three places access actually gets revoked.
What good follow-up looks like once leads are landing
Getting the lead into the CRM is the easy half of the problem. Speed is the other half. A 2011 Harvard Business Review study of 1.25 million sales leads found that firms which tried to contact a lead within an hour were nearly seven times as likely to qualify it as firms that tried even an hour later, and more than 60 times as likely as firms that waited 24 hours or longer. The same article audited 2,241 US companies and found the average response time among those that answered was 42 hours. The research is old, but nothing about buyers since then suggests they have become more patient.
Once a lead is confirmed to be syncing reliably, the operational question becomes what happens in the first few minutes after it lands: who gets notified, how fast a first message goes out, and whether that first touch happens automatically or waits on someone to notice a new row in a list.
Inflowave pulls leads from Facebook Lead Ads directly into its CRM, maps the form's fields to CRM fields on the way in, and can trigger a follow-up workflow the moment a lead submission arrives.
Frequently Asked Questions
Why do my Facebook leads show in Ads Manager but not in my CRM?
Almost always because the CRM was never granted access in Leads Access, inside Business Settings → Integrations, for the specific Page the form belongs to. The lead exists on Meta's side; it was simply never handed off.
Why did my Facebook leads suddenly stop syncing to GoHighLevel or another CRM?
The most common triggers are a Page admin's password changing (which invalidates the connected access token), someone losing Page admin status, or a business admin customizing Leads Access and not re-adding the CRM afterward. Check Leads Access first, then confirm the connected account is still a Page admin.
How do I give a CRM permission to access my Facebook leads?
Go to Business Settings → Integrations → Leads Access → CRMs tab, and add the CRM there for the relevant Page. If Leads Access has never been customized, every Page admin and connected CRM already has access by default; once it is customized, each CRM has to be listed explicitly.
How long can I download Facebook leads before they disappear?
Up to 90 days from the moment the lead was submitted, according to Meta's own Help Center. After that window, the lead cannot be downloaded through Ads Manager, Meta Business Suite, or the API, even though it still counts toward the campaign's lifetime totals.
What is the Lead Ads Testing Tool and how do I use it?
It is Meta's free tool at developers.facebook.com/tools/lead-ads-testing for pushing a fake lead through a live form to confirm your webhook, CRM, or Zapier/Make connection is actually receiving data. Pick the Page and form, click Create Lead, then Track Status, and delete the test lead before running it again since only one test lead per form is allowed at a time.
Can I connect Facebook Lead Ads to a CRM without a direct integration?
Yes. Meta's documentation describes three paths: a direct integration if your CRM is on Meta's supported list, a third-party tool like Zapier or Make if it is not, or a custom integration you build yourself against the webhook and Graph API.
Why are some fields blank on leads that do sync?
Usually a mismatch between the form's custom questions and the CRM's field mapping, or because the question was optional and the lead skipped it. Compare a raw downloaded lead against what landed in the CRM to see exactly where the gap is, and make critical fields required questions in the form itself if a blank is not acceptable.
Sources
- About CRM System Integrations for Lead Ads (Meta Business Help Center), checked 12 October 2026
- Enable Leads Access in Meta Business Suite (Meta Business Help Center), checked 12 October 2026
- Assign or Remove Permissions in Leads Access Manager (Meta Business Help Center), checked 12 October 2026
- About Expired Leads (Meta Business Help Center, 90-day download window), checked 12 October 2026
- Retrieving Leads (Meta for Developers, Marketing API), checked 12 October 2026
- Leads - Webhooks from Meta (Meta for Developers), checked 12 October 2026
- Meta Lead Ads Testing Tool (Meta for Developers), checked 12 October 2026
- Harvard Business Review, "The Short Life of Online Sales Leads" (Oldroyd, McElheran and Elkington, March 2011), as cited for the speed-to-lead qualification-odds finding, checked 12 October 2026

