The Conversions API for WhatsApp leads: what it is, what it needs, and what it changes
Meta's Conversions API is usually described as a website thing: a server-side replacement for the pixel. There is a second version of it, the Conversions API for Business Messaging, that does the same job for conversations that started from a click-to-WhatsApp ad. It is less documented, harder to get access to, and the most useful piece of ad plumbing a real-estate business can have.
This note is what we learned building it: what an event has to contain, the requirements that took us three wrong theories to get past, and the one thing it does not do for a click-to-WhatsApp ad today.
What it is
When someone taps a click-to-WhatsApp ad, Meta attaches a click identifier to the first message they send. It arrives in the message webhook as a referral, with a field called ctwa_clid. That identifier is the thread between the ad and everything that happens in the conversation afterwards.
The Conversions API for Business Messaging lets the business send an event back to Meta carrying that identifier: “the person from this click did this, at this time, worth this much.” Meta attributes the event to the ad, the ad set and the campaign, and the account’s learning includes it. Without the event, Meta’s knowledge of that person ends at “conversation started.”
What an event needs
The things that trip people up
Why the value matters
Most implementations that exist send a Lead event with no value when a conversation starts. That gives Meta nothing it did not already have; it already counts conversations started.
The event worth sending is the one Meta cannot see: the moment the buyer stated a budget that fits the project, with that budget as the value. Two hundred of those and the account has a value-weighted picture of who a real buyer looks like, drawn from what buyers said rather than from an interest-targeting menu. A ₹1.4 crore buyer and a ₹40 lakh buyer are no longer the same “lead.”
Doing this requires the conversation to be turned into structured data as it happens: budget parsed from “1.4 Cr”, “80L” or “50-60 lakh” (take the lower bound of a range; refuse to bid on “3 BHK”), timeline and configuration captured as fields. A human reading the chat afterwards does not scale to two hundred a month. This is the part Vesma does.
What it does not do today
A click-to-WhatsApp ad set can only be optimised for conversations. Meta does not accept an offsite-conversion optimisation goal for an ad whose destination is WhatsApp, so the events you send do not directly steer that ad set’s delivery in the way a pixel-based purchase event steers a website campaign. They accumulate against the account and dataset, inform its learning, and are the data Meta’s messaging objectives are built to consume. That is the honest state of it, and a vendor page that says “optimise your WhatsApp ads for qualified leads” without this paragraph is overselling.
The Google equivalent
Google has the same shape with different names. The click id is gclid (or gbraid / wbraid on iOS), captured on the landing page and carried into the conversation. The outcome is reported through the Data Manager as a conversion with a value, against that click. Google Search and Performance Max campaigns can be optimised for that conversion directly, which is the one place Google is ahead of Meta for this use.
Everything above describes the API as it behaved when we built against it. Meta changes this surface often and quietly. We keep this note current when our own integration breaks, which is a reasonable proxy; if you find it has drifted, tell us.
Skip the three wrong theories
Vesma captures the click id, parses the budget, and posts the value-weighted event at the moment the lead qualifies. In beta while Meta reviews the app; switched on per workspace on request.