Features Pricing Guides Security About Contact Sign in WhatsApp us Start free
Meta Troubleshooting Webhooks

Facebook Lead Ads Not Showing in Your CRM? Here Is Why

If Meta shows leads but your CRM is empty, the cause is almost always one of six things — and in our experience the most common by far is that the Facebook Page was never subscribed, which is a separate step from verifying the webhook and is silently skipped by most setup guides.

Work through these in order. Each has a specific test.

1. The Page is not subscribed to the app

Verifying a callback URL in Meta's dashboard subscribes your app to the leadgen event. It does not subscribe any particular Page. Until a Page is subscribed, Meta sends nothing at all, and every screen in both systems looks correctly configured.

Test: in Graph API Explorer, with a Page Access Token, run GET /{page-id}/subscribed_apps. Your app must be listed with leadgen in its fields. An empty array is your answer.

Fix: POST /{page-id}/subscribed_apps?subscribed_fields=leadgen. You must be an admin of the Page.

2. The app has not been published

While a Meta app is in Development mode, it delivers test webhooks from the dashboard and nothing else. Real lead data is not sent — not even for app admins, developers or testers. This catches everybody who tests with their own account, sees it work, and assumes it is live.

Test: check the App Mode toggle at the top of the App Dashboard. If it says Development, that is your answer.

Fix: publishing additionally requires App Review for the leads_retrieval permission, which requires Business Verification first. Start that early — it is the slowest part of the whole process.

3. The integration is configured but not switched on

Most CRMs have a status field separate from the credentials. The verification handshake typically works whether or not the integration is active — by design, so you can verify before going live — which means “Meta says verified” is not the same as “leads will arrive.”

Fix: set the integration to Active.

4. The app secret is missing

Every real notification Meta sends is signed. If your CRM has no app secret stored, it cannot verify that signature, so it rejects the request — and because Meta expects a fast response rather than an explanation, the rejection is invisible from Meta's side.

This is a nasty one, because the verification handshake does not use the app secret. Setup appears to succeed completely, and then every genuine lead is turned away.

Test: confirm the App Secret field is filled in. Blank is your answer.

5. The Page Access Token has expired

Meta's webhook sends only a lead ID, not the lead data. Your CRM must then call Meta to fetch the actual name, email and phone — and that call needs a valid Page Access Token.

A token generated in Graph API Explorer expires in about 60 days. So the integration works perfectly for two months and then stops, which makes it look like a sudden fault rather than an expiry.

Fix: generate the token from a System User in Business Manager instead. Those do not expire while the grant stands.

6. The leads predate the connection

A webhook only delivers leads submitted after it was connected. If your forms have been running for months, everything before the connection stays in Meta's dashboard and will never arrive on its own.

Fix: use a bulk import. Leads remain retrievable from Meta for about 90 days, so there is a real deadline on recovering them — after that they are gone from Meta's side too.

How to tell which one you have, quickly

Trigger a test lead from Meta's Lead Ads Testing Tool, then check your CRM's integration logs:

  • Nothing logged at all — Meta never sent it. Causes 1, 2 or 6.
  • Logged but rejected — it arrived and was refused. Causes 3 or 4.
  • Logged, accepted, then failed — the webhook worked and the data fetch did not. Cause 5.

That single distinction — did it arrive, and was it accepted — narrows six possibilities to two in about a minute.

How Claudphic Ads helps

Claudphic Ads records every notification before attempting to fetch the lead, so a failure is visible and retryable rather than silent — a lead that arrives while a token is expired is recovered automatically once the token is fixed, instead of being lost. It also imports leads already sitting on your forms, and connects via a single Connect button rather than four credentials, which removes causes 3, 4 and 5 entirely.

Causes 1, 2 and 6 are on Meta's side and no tool can remove them. If you are debugging a different CRM, the tests above still apply.

Want this running without spreadsheet exports?

Claudphic Ads captures the click ID automatically and uploads the conversion the moment you mark a lead Won. From ₹999/month, with a free trial.

Read next

← All guides

Call now Start free →