Meta reports the lead count. Your CRM shows a different number. The gap between those two numbers is money you have already paid for and cannot get back. Leads that sit in Meta's Lead Center unclaimed decay in contact rate by roughly 21% for every hour that passes after submission. At 24 hours, the contact rate on a cold Meta lead drops below 3%. If your CRM sync has been broken for 30 days, you have been paying for leads that have a sub-3% contact rate by the time anyone sees them.
This problem is widespread because Meta's Ads Manager dashboard never shows you the delivery gap. The lead count in your campaign is accurate - Meta did collect those leads. The failure happens downstream, between Meta's Lead Center and your CRM, and nothing in Meta's reporting surface flags it.
How Meta Lead Delivery Actually Works
Meta Instant Forms do not push leads to your CRM directly. Meta stores every submitted lead in its own Lead Center - accessible at business.facebook.com/latest/instant_forms under each form. Your CRM receives those leads through one of three delivery methods, each with a distinct failure profile.
Native integration - Meta maintains direct CRM connections for HubSpot, Salesforce, Zoho, and a limited set of other platforms. You authorize the connection with OAuth credentials, and Meta sends new leads to the connected CRM as they come in. Simple to set up. Silent when it fails because OAuth tokens expire.
Webhook connection - Meta sends an HTTP POST request to a URL you specify (your CRM's webhook endpoint) every time a new lead submits. Reliable when working. Fails when your CRM's endpoint URL changes, when the receiving server returns errors, or when Meta's retry window expires after repeated failures.
Third-party automation tool - Zapier, Make (formerly Integromat), or similar tools that poll Meta's Lead API on a schedule (typically every 5 to 15 minutes) and push new leads to your CRM. More transparent - both Zapier and Make have error logs and can notify you on failure. But they add per-task cost and require someone to monitor those error logs.
Meta's native CRM integrations use OAuth access tokens that expire. When the token expires, the sync stops silently. Meta does not send you an alert. Your CRM does not flag missing imports. Leads continue to appear in Ads Manager with their normal counts while your CRM receives nothing. The default token lifespan for many integrations is 60 days. Check your integration's token renewal date right now - most accounts cannot tell you when it was last renewed.
The Lead Decay Problem
The economic damage from a sync failure compounds quickly because of how Meta lead intent works. Instant Form leads are generated with significantly less friction than website leads - the form pre-fills with the user's Facebook profile data and submits with two taps. That low friction is a feature (volume) and a liability (intent).
A person who fills out a Meta Instant Form is in a mobile scrolling context. They saw your ad, tapped, and submitted in under 30 seconds. Their attention has moved on before your sales team even knows they exist. The window to catch them while they still remember your offer - and while they are still psychologically in "considering this service" mode - is measured in minutes, not hours.
"A Meta lead contacted within 5 minutes has roughly a 21x higher conversion rate than one contacted at 30 minutes. At 24 hours, the window has effectively closed. A broken CRM sync means every lead from the affected period landed at roughly 24-hour response time."
Net Profit Positive, based on MIT Lead Response Management study data
The MIT Lead Response Management study put the 5-minute vs. 30-minute differential at 21x. For Meta leads specifically, where the submission intent is shallower than a website form, the decay curve is steeper. By 6 hours, you are working against significant momentum in the wrong direction. By 24 hours, the effort required to re-engage a cold Meta lead is roughly equal to a cold outbound call - which is not what you paid CPL rates to generate.
Contact Rate vs. Time Since Submission
Meta Lead Contact Rate by Response Time
% of submitted leads that answer or respond when contacted - Meta Instant Form leads, home services and financial services composite
The Numbers
That 58% figure - more than half of Meta lead campaigns experiencing at least one sync failure per month - is not a scare statistic. It reflects how frequently OAuth token expiry, Zapier scenario errors, and webhook endpoint issues occur in accounts that are not actively monitoring their sync pipeline. None of these failure modes send alerts by default. You only find out when you do a count-match audit.
How to Audit Your Current Sync in 15 Minutes
Lead Sync Audit - Step by Step
Step 1: Download Meta leads CSV
Go to: Meta Business Suite > Instant Forms > [Your Form]
Click "Download Leads" > select last 30 days > export CSV
Note the total row count. Example: 340 leads.
Step 2: Export CRM leads from same period
Filter by source = "Meta" or "Facebook Lead Ad"
Export to CSV for same 30-day date range.
Note the total row count. Example: 253 leads.
Step 3: Count-match
340 (Meta) - 253 (CRM) = 87 leads never synced.
87 / 340 = 25.6% of your paid leads went nowhere.
Step 4: Find the gap date
Sort Meta CSV by submission date (oldest to newest).
Find where CRM imports stopped or slowed.
This date is when your sync broke.
Step 5: Check your sync method
Native integration (HubSpot, Salesforce, etc.):
Go to: Meta Business Settings > Integrations > CRM
Check "Connection status" and token expiry date.
If expired: re-authenticate now.
Zapier / Make scenario:
Open the zap or scenario > check "Task History" or "Run History"
Filter for errors. Look for "Invalid OAuth token" or
"Endpoint unreachable" messages near your gap date.
Webhook:
Check your CRM's webhook delivery log for POST failures.
Match failure timestamps against your gap start date.
Step 6: Fix and re-import
Re-authenticate or fix the sync method.
Import the gap leads from Meta CSV into your CRM.
For cold leads (24+ hours old): tag as "Meta reactivation"
and add to a short re-engagement sequence:
"We received your inquiry on [date] - wanted to make sure
you got our earlier message."
Zapier vs. Native Integration - Which Is More Reliable Long-Term
Native integrations are simpler to set up but less reliable long-term. Meta's OAuth tokens expire and require manual renewal - when they expire, delivery stops silently. Zapier and Make are more reliable for ongoing operations because they provide immediate error notifications, retry logic, and an error log you can audit. For campaigns generating more than 50 leads per month, Zapier or Make is the better architecture. For lower volumes, native integration works if you set a calendar reminder to re-authenticate every 55 days (before the 60-day expiry).
The cost difference is real. Zapier charges per task, with pricing scaling on task volume. For a campaign generating 200 leads per month, Zapier cost runs roughly $15 to $30 per month depending on your plan tier. For a campaign at 200 leads per month with a $33.50 CPL, your monthly ad spend on those leads is $6,700. Paying $20 to ensure reliable delivery of $6,700 in lead spend is not a meaningful cost debate.
The more important variable is monitoring. Whether you use native integration or Zapier, the failure that costs real money is the one that runs undetected for 23 days. Set up monitoring appropriate to your method: Zapier email alerts on scenario errors, a 60-day calendar event for native token renewal, or a monthly count-match check as described in the audit steps above.
Setting Up Redundant Delivery
Best practice for campaigns generating more than 100 leads per month is to maintain two delivery paths, not one. Primary: webhook or Zapier to your CRM for real-time delivery. Secondary: Meta's lead notification email (found under Meta Business Settings - Notifications - Lead Ads email alert). This sends an email to a designated address when new leads come in. It is not a complete delivery solution - it does not create CRM records or trigger workflows - but it functions as a smoke alarm. If your primary sync is broken, you will at least see the lead notification emails still firing and know leads are coming in even if they are not arriving in your CRM.
Think of the email notification as a gap detector, not a gap fixer. It catches the problem faster. You still need a working primary sync to act on leads within the response window that matters.
Scenario
Home services franchise generating 340 leads per month from Meta at $33.50 CPL. Total monthly Meta spend: approximately $11,390. CRM audit found only 253 leads in the system over the same 30-day period. 87 leads were missing.
Root cause: the native HubSpot integration had expired its OAuth token 23 days earlier. Nobody noticed because Meta's Ads Manager continued to show the correct lead count - 340 leads, right cost, right volume. The CRM dashboard showed lower-than-expected lead volume but the franchise owner attributed it to "slow month." No alert had fired from Meta, HubSpot, or any monitoring system.
Recovery: re-authenticated the HubSpot integration. Imported the 87 gap leads from Meta CSV with a date-stamp tag and a short re-engagement sequence noting the original inquiry date. Revenue attribution from the recovered leads identified 9 closed jobs in the following 45 days, generating $18,000 in revenue on $2,912 in ad spend that had been sitting in Meta's Lead Center without reaching anyone.
Free Calculator
Calculate the revenue impact of your sync gap
Enter your CPL, monthly lead volume, average job value, and close rate. See exactly how much revenue is at risk if your CRM sync has been failing for even 2 weeks.