Why not build it yourself?
Meta can notify your server about new leads, but you need a Meta app with the leads_retrieval permission approved, a verified callback endpoint, Page subscriptions for every Page, a long-lived token, and code to fetch each lead and handle retries. Then you maintain it through Graph API version changes.
With LeadAdd, you paste one token, tick your forms and give it a URL. You get JSON shaped the way you want.
How the webhook works
Connect your lead forms
Paste a Meta token in LeadAdd and connect your forms. See the token guide.
Create a Webhook notification
In Notifications, choose Webhook and enter your endpoint URL. Tags work in the URL too, for example
https://example.com/leads?source={{channel}}.Shape the payload
Write the JSON body your system expects, using tags for the lead's details.
Pick the triggers
Send when a lead is created, updated or both, for every source or specific forms.
LeadAdd sends an HTTP POST with Content-Type: application/json. Prefer a GET request? Use the Web GET action, which calls your URL with the tags filled in.
Payload template
{
"first_name": "{{firstname}}",
"last_name": "{{lastname}}",
"mobile_number": "{{mobile}}",
"email": "{{email}}",
"channel": "{{channel}}",
"course": "{{custom.course}}",
"facebook_ad_id": "{{custom.facebook_ad_id}}",
"facebook_form_id": "{{custom.facebook_form_id}}",
"leadadd_id": "{{id}}",
"received": "{{currentdatetime}}"
}
Available tags
| Tag | Value |
|---|---|
{{firstname}} / {{lastname}} | Lead's first and last name |
{{email}} | Email address |
{{mobile}} | Mobile number |
{{channel}} | Where the lead came from |
{{custom.fieldname}} | Any form answer or custom field (lowercase name) |
{{custom.facebook_lead_id}}, {{custom.facebook_ad_id}}, {{custom.facebook_form_id}} | Meta IDs for attribution |
{{id}} | LeadAdd lead ID |
{{currentdatetime}} | Date and time the notification ran (UTC) |
Reaching HubSpot, Salesforce, Zoho and others
CRMs that accept an unauthenticated JSON POST, or a secret URL, can take the webhook directly. For CRMs that need OAuth or special headers, point the LeadAdd webhook at a Zapier "Catch Hook", a Make custom webhook or an n8n Webhook node, and let that tool create the record. You still get LeadAdd's sync of every Page and form and its duplicate matching. The automation tool only handles the last step, with one scenario for all your forms.
Security tip: use a long, unguessable URL or a token in the query string, and check it on your side before accepting the lead.
Frequently asked questions
Do I need my own Meta app or app review?
No. LeadAdd fetches the leads with your Meta token. Your webhook just receives clean JSON from LeadAdd.
Is the webhook a POST or GET?
The Webhook action sends an HTTP POST with a JSON body. The Web GET action calls a URL with the lead details in the query string.
Can I include custom form questions in the payload?
Yes. Every extra form answer is stored as a custom field. Use {{custom.fieldname}} with the field name in lowercase.
Can one webhook receive leads from every form?
Yes. Set the notification to Any lead source and every connected form (plus API, USSD and WhatsApp leads) uses the same webhook. Or create one notification per form.

