Guide · Ads and CRM

Meta Conversions API: how to train your ads on CRM data, not form fills

Meta's and Google's algorithms learn from what you send back to them. If the only event they get is «lead», your ads look for the people most likely to fill out a form, not the people most likely to buy. The Conversions API lets you send from your CRM which leads qualified, showed up to a meeting, and reserved. Below we explain how it works and what a developer needs to prepare.

GOST team · Updated · 9 min read

Why ads keep bringing in empty inquiries

A campaign optimized for leads counts every submitted form as a success. The algorithm quickly finds people who fill out forms often: the curious, people idly scrolling, sometimes bots. Cost per lead (CPL) drops, the report looks great, and sales complains the leads are junk.

It isn't a targeting problem. The ad platform simply doesn't know what happened to the lead after the form. It doesn't see that out of a hundred inquiries, twenty never answered, forty didn't have the budget, and five came to a meeting. As long as that data stays in your CRM, the algorithm keeps looking for more of the curious.

What the Conversions API is

The Conversions API is the channel through which your server or CRM sends events directly to Meta. The pixel runs in the browser: it only sees what someone did on your site, and it loses some data to ad blockers and privacy settings. The API sends events from the server and can report what happens after the form, inside your sales team.

PixelConversions API
Where it sends fromThe visitor's browserYour server or CRM
What it seesVisits and form submissions on your siteAny event, including CRM stages: qualification, meeting, reservation
Data lossAd blockers, cookies, browser privacyIndependent of the browser
When you need itFor on-site eventsTo let your ads learn from sales

The pixel and the API usually work together. If the same event arrives from both, it carries the same identifier (event_id), so Meta doesn't count it twice. Google Ads has an equivalent, enhanced conversions for leads, covered below.

Which CRM stages to send and which to optimize for

Send every funnel stage that's recorded as a fact rather than a sales rep's opinion:

  1. Lead
  2. First contact made
  3. Qualified
  4. Meeting held
  5. Reservation (apartado)
  6. Sale

Optimizing for sales is tempting, but a developer has few sales and they come months later. The algorithm won't get enough signals to learn. Pick the stage closest to the sale that still happens often and within the first few weeks after the inquiry. Usually that's «qualified» or «meeting held».

A stage only works if marketing and sales share the same definition. If a sales rep marks «qualified» on gut feeling, the algorithm learns noise. How to agree on criteria is covered in what is a qualified lead.

Meta lead forms: the conversion leads goal

For leads from native Facebook and Instagram forms, Meta has a dedicated CRM integration (Conversion Leads) and an optimization goal built for it. Here's how it works:

  1. Store the lead_id. Every lead from a Meta form has a unique 15–17 digit identifier. It needs to land in your CRM along with the contact details, in its own text field.
  2. Send every stage change. When a sales rep changes a lead's status, the CRM sends Meta an event with the lead_id, the stage name and «crm» as the event source. Phone and email are hashed before sending.
  3. Switch the campaign goal to conversion leads optimization and choose the stage it should learn from.

According to Meta, it can take 1.5–2 months after the integration for campaigns to reach full optimization: the algorithm needs a learning period. Don't change the goal or the stage during that time, or learning starts over.

Leads from your website and WhatsApp

If inquiries come through a website form, a quiz or WhatsApp, the setup is the same, but events are sent as Conversions API web events, and ads are optimized for a custom event, for example «QualifiedLead».

  • Store click identifiers. At the moment of the inquiry, save the fbclid and Meta cookies (fbc, fbp) in the CRM, plus the gclid for Google. That's how the ad platform knows which ad brought the person in.
  • Send contact details hashed. Email in lowercase, phone in international format with the country code (+52). The more data matches, the more events Meta can tie back to your ads.
  • Send the event as soon as the status changes. Events uploaded in a weekly batch train the algorithm worse.

The same thing in Google Ads

In Google Ads, sending CRM stages is called enhanced conversions for leads. Google recommends it over the older offline conversion import.

  • Store the gclid with the lead in your CRM.
  • Send the «qualified lead» and «converted lead» stages with hashed email and phone.
  • Optimize campaigns for qualified leads, not form submissions.

What to prepare in your CRM

WhatWhy
Source fields: campaign, ad, lead_id, fbclid, gclidTie each lead back to the ad
Fact-based statuses with a change dateSend the event at the moment it happened
Qualification fields: budget, timeline, area, payment methodMark «qualified» by criteria, not gut feeling
A required disqualification reasonSee why leads drop off and separate marketing's issues from sales'
No backdating status changesDon't train the algorithm on a rewritten history

What to expect after launch

  • Cost per lead will go up. The algorithm stops bringing people who fill out forms easily. That's expected.
  • Cost per qualified lead and per meeting will go down. Watch CPQL and cost per meeting, not CPL. How to calculate them is covered in the real estate sales funnel guide.
  • The first weeks are a learning period. Don't make sudden changes to the goal, the stage or the budget.

Common mistakes

  1. Sending «qualified» for every lead someone merely talked to.
  2. Optimizing for sales when there are only a handful a month.
  3. Not storing the lead_id, fbclid or gclid, so events can't be tied to ads.
  4. Sending phone numbers without the country code, or unhashed contact details.
  5. Changing the campaign goal during the learning period.
  6. Sending events in a weekly batch instead of as soon as the status changes.

Frequently asked questions

What is Meta's Conversions API?

A channel through which your server or CRM sends events directly to Meta. Unlike the pixel, it doesn't depend on the browser and can report the stages after an inquiry (qualification, meeting, reservation) so your ads learn from them.

Conversions API or pixel: which should you use?

Usually both. The pixel tracks on-site events, and the API sends events from your server and CRM. Matching events from both sources share an event_id so Meta doesn't count them twice.

Which CRM stage should a developer optimize ads for?

The stage closest to a sale that still happens often and within the first few weeks after the inquiry. Usually that's «qualified» or «meeting held». A developer has too few sales for the algorithm to learn from them alone.

Why did cost per lead go up after connecting the Conversions API?

That's expected: the algorithm stops looking for people who fill out forms easily and looks for people similar to those who reached qualification or a meeting. Watch cost per qualified lead and per meeting, not cost per lead.

Sources and methodology

  1. Meta for Developers: Conversion Leads Integration, Payload Specification
  2. Meta for Developers: How to Find the Meta Lead ID
  3. Google Ads Help: About enhanced conversions for leads
  4. Ley Federal de Protección de Datos Personales en Posesión de los Particulares

Technical requirements are based on Meta and Google documentation as of October 2026; interfaces and goal names may change. Stage-selection recommendations and project results come from the GOST team's practice on previous real estate projects, not from market statistics.

Your CRM is probably sitting on opportunities you've already paid for.

Let's find them.

We'll contact you within 24 hours. Your data is used only for your pilot.