LeadMove Docs
Sending leads in

Meta (Facebook & Instagram) lead ads

Meta doesn't post leads to a URL on its own — connect it through Zapier, Make or your CRM so every instant-form lead lands in your pipeline.

Meta instant forms don't post to a URL on their own, so you connect them through a bridge: Zapier, Make, or any tool that already pulls your Facebook lead ads (most CRMs do). The bridge takes each new lead and POSTs it to your source's posting URL.

POST https://app.leadmove.io/api/i/{source_key}

From there it's an ordinary lead: validated, deduped, scored, routed and delivered like any other.

Add a buyer first

A pipeline with no buyer accepts leads and leaves them unrouted — they arrive, they're stored, nobody receives them. Set up at least one buyer before you connect Meta, so your first real lead goes somewhere. See Adding buyers and the quickstart.

What you need

  • A pipeline with at least one buyer and a routing rule that matches.
  • The posting URL of the source you want Meta to feed.
  • An account on the bridge (Zapier, Make, or the Facebook integration your CRM already has).

Get the posting URL from the pipeline canvas: click Intake, click a source, copy the URL. Name that source after the ad account or the form so you can tell Meta traffic apart later.

A source editor: the supplier's name, its own POST URL with a copy button and a Regenerate key link, then the field mapping turning e_mail, phone_number, fname and lname into email, phone, firstName and lastName, with already-matching names tagged auto.

With Zapier

  1. Trigger — app Facebook Lead Ads, event New Lead. Connect the Facebook account that manages the Page, then pick the Page and the form. One Zap per form.
  2. Action — app Webhooks by Zapier, event POST.
  3. URL — paste your source's posting URL.
  4. Payload typejson.
  5. Data — one row per field: the key is what your pipeline calls the field (email, phone, firstName), the value is the matching field from the trigger.
  6. Test — Zapier sends its sample lead. A 200 with a displayId means it landed; open Leads to see it.

Webhooks by Zapier is a premium action on Zapier's side. If you'd rather stay on a free plan, use Make or your CRM's own Facebook integration — the LeadMove side is identical.

With Make

Two modules: Facebook Lead Ads → Watch Leads (choose the Page and form), then HTTP → Make a request with Method POST, Body type Raw, Content type application/json, and a JSON body mapping the lead's fields onto your pipeline's field names. Run once to confirm, then schedule the scenario.

Field names coming from Meta

Meta identifies instant-form answers by key, not by label. The standard ones:

Meta keyUsually maps to
full_name, or first_name + last_namefirstName / lastName
emailemail
phone_numberphone
city, state, zip_codeyour location fields
Any custom questionwhatever you named the field in your pipeline

Matching ignores case, spaces, dashes and underscores, so phone_number, Phone Number and phoneNumber all land on the same field. Anything LeadMove doesn't recognise still arrives and is stored — it shows up as unmapped in the Intake panel, where you map it or ignore it. See Sources & posting URLs.

Meta returns phone numbers with the country code (+13105551234), and names arrive exactly as the person typed them, capitals and all. Set the normalization you want once, on the pipeline, rather than in the bridge: Data normalization.

Testing the connection

Use Meta's Lead Ads Testing Tool to submit a test lead on your form. It travels the whole chain: Meta → bridge → your pipeline → your buyer.

A Meta test lead is a real lead

Unlike the test console, which previews routing without delivering, a lead submitted through Meta's testing tool is stored, routed, counted in your monthly quota and actually delivered to the matching buyer. Point the test at a buyer that delivers to your own email first, or pause the buyer while you check the plumbing.

One source per form

Give each form its own source, and each source its own Zap or scenario. You get per-form volume and quality counters in the Intake panel, you can pause one form's traffic without touching the others, and a leaked URL can be regenerated for that form alone.

Common questions

I run the same form on several ad accounts. One source or several? One source per form is the useful line. If two ad accounts share a form and you want to tell them apart, send an extra field from the bridge (ad_account, campaign) and it's stored on every lead.

What about the leads I collected before connecting? Meta doesn't backfill them through the bridge. Download the leads from the form's Leads Center as CSV and import them: CSV import.

A lead arrived but no buyer got it. It came in as unrouted: no rule matched, or every matching buyer was capped, paused or outside its hours. The lead's routing trace names each buyer considered and why it was skipped.

Meta sent the same person twice. Someone who submits two forms is two Meta leads. Deduplication on your side catches it — the second one is recorded as a duplicate and never billed. See Deduplication.

Can I connect Meta without a bridge? Not today. Tell us what you use at hello@leadmove.io — we'll help you get the bridge working, and it tells us which direct connections are worth building.

On this page