Appearance
Meta Webhooks for Lead Ads for Customer Relationship Management
Updated: May 21, 2026
This guide shows you how to implement Meta Webhooks for Lead Ads for Customer Relationship Management integration.
Overview
An app user logs in to your app using Facebook Login and grants your app the permissions for their Facebook Page that is subscribed to Meta Webhooks for leads. Facebook Login returns a Page access token with the required scopes that allow the app user to view the lead notifications sent to your server from Meta.
Before you start
You will need:
- A Meta App ID
- A Page access token from an app user, client, or advertiser, who can perform the
ADVERTISEtask on the Page - The following permissions:
pages_read_engagementpages_manage_metadatapages_show_listads_managementlead_retrieval
- Web server with an endpoint to receive Meta Webhooks
- A subscription to the leadgen webhook
- Facebook JavaScript SDK added to your app
- Facebook Login added to your app
The following content is taken from /docs/graph-api/webhooks/getting-started/webhooks-for-leadgen.
Webhooks for Leads
Webhooks for Leads can send you real-time notifications of changes to your Page's Lead ads. For example, you can receive real-time updates whenever users click on a lead ad.
First, set up a Page Webhook:
- Set up your endpoint and configure the Webhooks product.
- Install your app using your Facebook page.
Setting Up Your Endpoint and Webhook Product
Follow our Getting Started guide to create your endpoint and configure the Webhooks product. During configuration, make sure to choose the Page object and subscribe to the leadgen field.
Install Your App
Webhook notifications will only be sent if your Page has installed your Webhooks configured-app, and if the Page has not disabled the App platform in its App Settings. To get your Page to install the app, have your app send a POST request to the Page's subscribed_apps edge using the Page's acccess token.
Requirements
- A Page access token requested from a person who can perform the ADVERTISE task on the Page being queried
- The following permissions:
leads_retrievalpages_manage_metadatapages_show_listpages_read_engagementads_management
Sample Request
Formatted for clarity
curl -i -X POST "https://graph.facebook.com/{page-id}/subscribed_apps
?subscribed_fields=leadgen
&access_token={page-access-token}"Sample Response
{
"success": "true"
}To see which app's your Page has installed, send a GET request instead:
Sample Request
Formatted for clarity
curl -i -X GET "https://graph.facebook.com/{page-id}/subscribed_apps
?access_token={page-access-token}Sample Response
{
"data": [
{
"category": "Business",
"link": "https://my-clever-domain-name.com/app",
"name": "My Sample App",
"id": "{page-id}"
}
]
}If your Page has not installed any apps, the API will return an empty data set.
Graph API Explorer
If you don't want to install your app programmatically, you can easily do it with the Graph API Explorer instead:
- Select your app in the Application dropdown menu. This will return your app's access token.
- Click the Get Token dropdown and select Get User Access Token, then choose the
pages_manage_metadatapermission. This will exchange your app token for a User access token with thepages_manage_metadatapermission granted. - Click Get Token again and select your Page. This will exchange your User access token for a Page access token.
- Change the operation method by clicking the
GETdropdown menu and selectingPOST. - Replace the default
me?fields=id,namequery with the Page's id followed by/subscribed_apps?subscribed_fields=leadgen, then submit the query.
Common Uses
Getting Page LeadGen Details
Your app can subscribe to a Page's Leads and get notified anytime a change occurs. For example, here's a notification sent when a User clicked on a lead ad.
Sample Webhook Response
{
"object": "page",
"entry": [
{
"id": 153125381133,
"time": 1438292065,
"changes": [
{
"field": "leadgen",
"value": {
"leadgen_id": 123123123123,
"page_id": 123123123,
"form_id": 12312312312,
"adgroup_id": 12312312312,
"ad_id": 12312312312,
"created_time": 1440120384
}
},
{
"field": "leadgen",
"value": {
"leadgen_id": 123123123124,
"page_id": 123123123,
"form_id": 12312312312,
"adgroup_id": 12312312312,
"ad_id": 12312312312,
"created_time": 1440120384
}
}
]
}
]
}See Also
- Visit our Lead Ads Retrieval guide to learn how to use the
leadgen_idfrom the notification to retrieve data associated with the leads.