Skip to content

Meta Lead Ads to Your CRM: Webhooks, Lead Retrieval and Getting the Lead in Under a Minute

Anam Jalal

Founder & CEO, MAJ Leads

Updated 4 Nov 2026 · 9 min read

Quick answer

To get Meta lead ads into your CRM, subscribe your app to the Page's lead webhook. Each submission sends a small notice with a leadgen_id, and your server then fetches the answers from the Graph API. Meta says the notice can arrive up to a few minutes late, so keep a bulk read as a backstop.

Note

Sources and status. We read Meta's pages on 4 November 2026. Rule marks something a Meta page states. Practice marks our advice. Meta's pages carry no date, so check them before you build. MAJ Leads connects to lead ads this way, but this guide reports no customer results, because we have none.

How do Meta lead ads get into a CRM?

Rule. Meta's guide names three ways to get leads out of a lead ad: a webhook that notifies your system of each new submission, a bulk read through the Graph API, and a download from Leads Center in Meta Business Suite. A CRM can use a partner that supports lead ads or a custom build with webhooks and the Graph API. The guide suggests the bulk read for fetching new leads "a few times a day" and webhooks for anything more frequent.

The three ways to get a lead out (Meta's Lead Ads guide)
MethodHow fastGood forWatch for
WebhookReal time, but Meta says pings can arrive up to a few minutes lateCalling the lead nowYour endpoint must answer every notice, and retries can send duplicates
Bulk read (Graph API)As often as you ask, within rate limitsA backstop that catches anything the webhook missedReads by ad or by form; a form can be reused by many ads
Leads Center downloadManualOne-off exportsNot a way to follow up in time

What does the Meta lead ads webhook actually send?

Rule. The Retrieving Leads page describes the flow. You set up an endpoint and configure the webhook, generate a long-lived Page access token, and install your app on the Page. When someone submits the form, the notice carries leadgen_id, page_id, form_id, adgroup_id, ad_id and created_time. It does not carry the person's answers. You call the Graph API with the leadgen_id to fetch the lead's field_data, which holds the name, phone and whatever else the form asked.

Rule. If the form uses custom field IDs, the returned fields and values use those IDs. Answers to a custom disclaimer checkbox are not in field_data; you fetch them by asking for custom_disclaimer_responses on the lead. Leads with no ad or ad group ID can be organic, submitted from an Ad Preview, or requested by someone without advertiser rights on the ad account.

What permissions and tokens does lead retrieval need?

Permissions Meta lists for each method (Retrieving Leads page)
ForPermissionsToken
Webhooksads_management, pages_read_engagement, pages_show_list, pages_manage_metadataLong-lived Page access token
Bulk read and full lead and ad dataads_management, leads_retrieval, pages_show_list, pages_read_engagement, pages_manage_adsPage access token

Rule. The token must come from a person who can advertise on the ad account and has access to the Page. Your app must pass App Review for leads_retrieval and pages_manage_ads, and after approval Meta requires Business Verification. An app in Development mode cannot retrieve leads, and Development-mode users can only see leads from people with a role in the same app. Who may read leads also depends on Leads Access Manager: if the Page admin has not customised it, all Page admins have access, and if business admins have, access follows their setup. The guide notes that Page tokens can be short or long lived and that their lifetimes may change without warning or end early.

What must your webhook endpoint do?

Rule. Meta's webhooks getting-started page sets out the endpoint rules. Meta sends a verification GET with hub.mode, hub.challenge and hub.verify_token, and your endpoint must check the token and return the challenge. Answer every event notice with a 200 OK. Each notice carries an X-Hub-Signature-256 header, which you check by computing a SHA-256 signature of the payload with your app secret; Meta calls the check optional but recommended. The endpoint needs HTTPS with a valid certificate, and self-signed certificates are not supported.

Rule. If a delivery fails, Meta retries at once and then at decreasing frequency for the next 36 hours, after which it drops the update. Because of retries, your server should deduplicate. Meta batches up to 1,000 updates per request without guaranteeing batching, and it gives no delivery order, so process each update on its own. The time field is when Meta sent the notice, not when the person submitted the form.

Can you get the lead in under a minute?

Meta does not promise a delivery time. The Retrieving Leads page says real-time pings can be delayed by up to a few minutes, so a fixed "under a minute" depends on how Meta behaves on the day. What you control is everything after the notice arrives. Practice. Our own target runs from the moment a lead reaches MAJ Leads, and in that stretch a call due for the assigned rep reaches them within about 30 seconds. In our own build, 10 of 10 test leads from each of 3 sources got a first task due within 30 seconds, inside working hours. These were test leads we sent ourselves, not customer results, and the time Meta takes before it sends the notice is not in that number.

Practice. Four habits shorten the wait and stop leads from falling through:

  1. Answer Meta's webhook with a 200 straight away and do the Graph API fetch afterwards, so a slow CRM call never makes Meta retry.
  2. Fetch the lead the moment the notice arrives and store it with its leadgen_id. Meta's pages give no retention period, so treat your copy as the record.
  3. Deduplicate on leadgen_id for retries, and on phone number for the person who submits twice. We dedupe on phone number in MAJ Leads, as our 30-second post describes.
  4. Run a bulk read by form with a time_created filter a few times a day, the cadence Meta's guide suggests, and import anything you have not seen. Use the webhook for speed and the read for safety.

What breaks in a Meta lead ads integration?

  • An expired or replaced token. Meta says lifetimes can change without warning. Leads stop arriving and nothing errors in your CRM. Check for silence, not only for errors.
  • A changed role or access setting. Retrieval needs the right Page and ad account access, and Leads Access Manager can restrict it.
  • An app in Development mode. It cannot retrieve leads at all.
  • A missing field. Disclaimer checkbox answers sit outside field_data, and custom field IDs change the keys you read.
  • Rate limits. Meta gives the limit for a Page as 200 multiplied by 24 and by the number of leads created in the past 90 days, per 24 hours. A quiet Page has a low ceiling for a bulk read.
  • Test leads that are not real. Meta's testing tool creates organic test leads with dummy data, one per form until you delete it.

How do you test lead ads delivery before spending on ads?

Rule. The Testing and Troubleshooting page describes Meta's Lead Ads Testing Tool. Choose a Page and a form, create a lead with dummy data, and use Track Status to see it move from pending to success or failed. On success the tool shows the payload Meta sent to your endpoint, and on failure an error_code. You can also create a test lead through the API with a POST to the form's test_leads edge. It needs the Advertiser role or higher on the Page, allows one test lead per form until you delete it, and the tool does not work for apps in developer mode.

How does MAJ Leads connect to Meta lead ads?

A business subscribes its Facebook or Instagram Page to lead webhooks through its own Business Manager, and a per-client Page access token lets MAJ Leads retrieve each lead. The lead lands on the same board as your other sources, with its attribution, and becomes a call due for the assigned rep, as set out in Google Ads lead forms and Meta lead ads: called in 30 seconds. Sending stages back to Meta is rolling out and is described in Meta Conversions API for CRM. If your form tool is not Meta, see your form tool can post to one link. The full flow is on how it works.

Sources

Frequently asked questions

How do I get Facebook lead ads into my CRM?
Subscribe your app to the Page's lead webhook, or use a CRM partner that supports lead ads. Each submission sends a notice with a leadgen_id, and your server calls the Graph API with it to fetch the field_data. Meta also offers a bulk read by ad or by form and a Leads Center download.
What is the leadgen_id?
It is the ID of one lead submitted through a lead ad. The webhook notice carries it with the page, form and ad IDs, but not the person's answers. You call the Graph API with the leadgen_id to fetch the answers in field_data.
How fast does the Meta lead ads webhook arrive?
Meta's Retrieving Leads page says real-time pings can arrive with a delay of up to a few minutes. It gives no guaranteed time. If speed matters, answer the webhook with a 200 at once, fetch the lead straight away, and use a bulk read as a backstop.
Which permissions do I need to retrieve leads from Meta lead ads?
For webhooks, Meta lists ads_management, pages_read_engagement, pages_show_list and pages_manage_metadata with a long-lived Page token. For bulk reads and full lead data it lists ads_management, leads_retrieval, pages_show_list, pages_read_engagement and pages_manage_ads. Your app needs App Review for leads_retrieval and pages_manage_ads, then Business Verification.
Why did my Meta lead ads stop arriving in my CRM?
Common causes are an expired or replaced Page token, a change to who has access to the Page or to Leads Access Manager, and an app set to Development mode, which cannot retrieve leads. Meta also says webhook updates are dropped after 36 hours of failed delivery, so a long outage loses notices that a bulk read can recover.

Anam Jalal

Founder & CEO, MAJ Leads

Anam Jalal is the founder of MAJ Leads, a Dubai-based lead management system that puts every paid lead on a rep's phone within about thirty seconds and chases it until it has an answer. He works hands-on with UAE clinics, brokerages and trading companies on lead follow-up, WhatsApp and CRM integrations, and ran voice AI deployments in the UAE before the company focused on lead management.

Read more about Anam

Related articles

Explore our services