On this page
What you are building
Meta can see a new lead, but your CRM knows whether that lead became qualified, booked or won. This setup sends those later outcomes back to Meta automatically, so you can measure lead quality and eventually optimise campaigns towards a better result than a form submission.
The simple version
Do not build the API first. Use your CRM’s built-in Meta connection if it has one. Otherwise, we recommend Zapier for the simplest no-code setup, LeadsBridge for a guided Meta-specific setup, or Make for more flexibility.
Step 1
Choose one conversion to send first
Pick the earliest stage that reliably means “this is a good lead”. For many lead generation businesses, that is Qualified Lead, Appointment Booked or Appointment Attended. Do not start with every CRM status.
- Write the exact rule for entering the stage. Example: correct service, inside the service area and contactable.
- Make the stage a controlled CRM value, not free text.
- Record the actual time the lead enters the stage.
- Keep the raw lead and won sale flowing too, but use the chosen quality stage as your first practical feedback signal.
Choose a stage that happens often and quickly enough to be useful. Meta’s current Instant Form guidance points to roughly 200 leads per month, a stage reached within 28 days and a 1%–40% stage conversion rate as a suitable starting shape. Smaller businesses can still improve measurement, but a rare won sale may be too sparse for optimisation.
Step 2
Save the matching fields when the lead arrives
Add these fields to the CRM before building the automation. Preserve the original values; do not wait until the lead qualifies.
| Field | What to do | When it matters |
|---|---|---|
| Internal lead ID | Create one unique ID and never reuse it. | Every lead source. |
| Meta Lead ID | Save leadgen_id exactly as a string. Do not hash it. | Meta Instant Forms. |
| Email and phone | Keep normal CRM values; normalise and SHA-256 hash them only for the server request. | Matching where authorised. |
fbc and fbp | Save the first-touch values where permitted. | Website leads. |
| Stage time | Save when the stage became true, not when a batch runs. | Every later event. |
Use Meta’s current customer information rules for exact formatting. Avoid tools that hash an already-hashed field. Never put names, emails or phone numbers in URLs or UTMs.
Step 3
Choose the easiest tool
Use the first option below that supports your CRM and the lead source you are tracking.
| Option | Best when | What to check |
|---|---|---|
| Your CRM’s built-in Meta connection | You already use a CRM such as HubSpot or HighLevel. | It can send the exact CRM stage you chose. |
| Zapier | You want the simplest general no-code option. | Your CRM has a reliable stage-change trigger. |
| LeadsBridge | You want a Meta-focused connector and upload history. | It supports your CRM and lead source. |
| Make | You need flexible workflow logic. | You are comfortable building a visual scenario. |
| Custom API | None of the connectors can meet the requirement. | Use a developer to build and monitor it. |
Step 4
Build the no-code automation
Zapier: the simplest option
- For Instant Forms, confirm the Meta Lead ID is saved in the CRM.
- Create a Zap triggered when the lead, contact or deal moves into your chosen CRM stage.
- Add a filter so it runs only for that exact stage.
- For Instant Forms, add Facebook Conversions → Send Funnel Event. For website, phone, chat or in-person leads, use Send Other Event or the matching standard event.
- Connect the correct Meta account. Map the stage, real stage-change time and permitted matching fields. For Instant Forms, map the Meta Lead ID too.
- Send one test, find it in Meta Test Events, then publish the Zap.
- Turn on failed-Zap alerts and check Zap History each week.
Zapier’s Send Funnel Event action updates an existing Meta lead from the previous 90 days. If the CRM does not expose the Meta Lead ID or a reliable stage-change trigger, choose LeadsBridge, Make or your CRM’s native connection instead.
Already use HubSpot?
- Open Marketing → Ads.
- Select Create → Event → Meta.
- Choose the correct ad account and Lifecycle stage change.
- Select the CRM stage and the permitted matching fields.
- Create the event, then repeat only for the other stages you genuinely need.
- Move a new test lead into the stage and confirm the event in Meta.
This route requires HubSpot Marketing Hub Starter or above and only sends changes that happen after the event is created. Follow HubSpot’s current Meta conversion event instructions.
Using LeadsBridge or Make instead?
- LeadsBridge: choose your CRM as the source. Use Facebook Conversion Leads for Instant Forms or Facebook Conversions API for other sources. Map the stage, time and identifiers, run the simulation, then publish.
- Make: start with the CRM’s stage-change module and a filter. Use Facebook Conversions API for CRM → Create a Lead Event for Instant Forms, or the separate standard CAPI module for other sources. Run once, check the result, then schedule it.
Whichever tool you choose, leave free-text sales notes and unnecessary CRM fields out. Meta’s Business Tools Terms still apply.
Step 5
Test it, then check it daily
One-lead test
- Create one labelled test lead through the real form.
- Confirm it reaches the CRM once with its original identifiers.
- Move it into the chosen stage.
- Find the exact event in Meta Test Events.
- Confirm the timestamp, event name, action source and matching fields are correct.
- Force one retry and confirm it does not create a second conversion.
- Remove the test record from commercial reports.
Daily monitoring
- Compare CRM stage entries with Meta events accepted for the same day.
- Alert if no recent events arrive, counts fall outside tolerance or permanent errors appear.
- For website events, review Event Match Quality and diagnostics.
- For general offline events, review Dataset Quality, freshness and upload frequency.
- For Instant Forms, monitor accepted stages and lead coverage; Meta currently recommends at least 60% coverage.
Run the new event for a few normal business cycles before changing campaign optimisation. Change one campaign setting at a time and keep the original lead conversion available while the deeper signal proves reliable.
Frequently asked questions
Can Zapier do this without a developer?
Often, yes. Use Send Funnel Event for Meta Instant Form stage changes and a standard Conversions API event for website, phone, chat or in-person outcomes. If your CRM cannot supply the required trigger or identifiers, use its native connection, LeadsBridge or Make.
Can one automation handle Instant Forms and website leads?
Yes, but it must build the correct payload for each source. Instant Forms use the CRM-specific path; website and other events use standard CAPI.
Which event should we optimise towards?
Use the earliest stage that is consistently defined, uploaded promptly, frequent enough and clearly related to won business. Measure deeper stages before testing them as optimisation goals.
Do website leads need both Pixel and CAPI?
Using both can improve resilience. Give the browser and server copies of the same form submission the same event name and event ID so Meta deduplicates them.
How quickly should we send CRM events?
Near real time is ideal; at minimum, run the process daily. Standard CAPI events currently have a seven-day backfill limit, so daily reconciliation leaves time to recover failures.
How do we know it is working?
Match CRM stage counts to accepted Meta events, inspect Test Events and diagnostics, and monitor freshness, errors, duplicates and coverage. A successful API response alone is not enough.

