Skip to content

Integration · Webhook

Send Facebook Lead Ads to any CRM with a webhook

Building your own Facebook leadgen webhook means a Meta app, app review, a public endpoint and token handling. LeadAdd does that part and POSTs each lead to your URL as clean JSON.

Updated 12 November 2026 · 6 min read

f
Facebook Lead Adslead form submitted
LeadAddsynced & matched
{ }
Your webhookJSON POST to your URL

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

  1. Connect your lead forms

    Paste a Meta token in LeadAdd and connect your forms. See the token guide.

  2. 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}}.

  3. Shape the payload

    Write the JSON body your system expects, using tags for the lead's details.

  4. 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

TagValue
{{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.

Stop losing Facebook leads

Create a free account, paste your Meta token and see your first leads in your CRM today.

Start free