Click-to-WhatsApp ads conversion tracking means telling Meta what happened after the chat began. When someone taps your ad, Meta attaches a click ID, called ctwa_clid, to the message they send from it. You store that ID, and when the person becomes a lead, a qualified lead or a buyer, you send the event with the same click ID to Meta’s Conversions API, with action_source business_messaging and messaging_channel whatsapp.
That loop is what lets Meta judge your ads by sales instead of by chats. This guide explains each step, the exact event names Meta accepts, how optimisation changes once the events arrive, and the mistakes that quietly break the setup. Every Meta rule below was checked against Meta’s own documentation in October 2026 and links to its source.
Why is “messaging conversations started” a weak signal?
Most click-to-WhatsApp campaigns are judged on conversations. Ads Manager reports messaging conversations started: the conversations with your business that Meta attributes to your ad. It is an honest count of attention. It says nothing about intent.
A chat started by a curious student, a competitor checking your prices and a buyer ready to pay all count the same. If the campaign optimises for conversations, Meta’s delivery system does exactly what it was asked: it finds more people who are likely to start chats. In many markets the people most likely to message are not the people most likely to buy, so the cost per conversation can fall while sales stay flat. The table shows what each signal actually teaches Meta.
| Signal Meta receives | What Meta learns from it | What it is good for |
|---|---|---|
| Messaging conversation started | This person opened a chat from the ad | Reach and creative testing at the top of the funnel |
| LeadSubmitted | The chat turned into a real lead | Separating real enquiries from idle taps |
| QualifiedLead | The lead fits what you sell | Judging ads and audiences on lead quality |
| Purchase with value and currency | This click produced revenue, and how much | Cost per sale, return on ad spend and purchase optimisation |
How does click-to-WhatsApp ads conversion tracking work?
The whole mechanism is six steps, and each one depends on the step before it:
- The click. Someone taps your ad and WhatsApp opens a chat with your business.
- The first message. When they send it, the WhatsApp Business Platform delivers it to your system through the message webhook, together with a referral object that describes the ad and contains the ctwa_clid.
- The capture. Your system saves the click ID on the contact or lead record at that moment.
- The milestones. As the conversation moves on, your team or your software records what happened: a lead, a qualified lead, a purchase with its value.
- The event. For each milestone, your server sends one event, carrying the click ID, to the Meta dataset linked to your WhatsApp Business Account.
- The result. Meta matches the click ID to the ad click, so the conversion counts for the campaign, ad set and ad that produced it, and becomes something the campaign can optimise toward.
Two parts are easy to underestimate. The click ID must be caught when the first message arrives, and the milestones must be recorded somewhere a server can read them, not in a salesperson’s memory or a chat that nobody labels.
Where does the ctwa_clid come from, and why capture it on the first message?
Meta’s message webhook reference says the referral object is only included when the message was sent through a click-to-WhatsApp ad. That is the message the ad produced; the rest of the conversation arrives without it. If your system does not read and store the ctwa_clid then, there is no later moment to recover it, and every event for that customer becomes impossible to attribute.
Three details matter in practice:
- The click ID needs the WhatsApp Business Platform. It arrives in the platform’s webhook, so the number must be connected to the platform, directly or through software built on it. The WhatsApp Business app on its own gives you nothing to read it from; our comparison of the WhatsApp Business app and the API explains the difference.
- Status ads carry no click ID. Meta states that the ctwa_clid is omitted entirely for messages that come from an ad shown in WhatsApp Status, so those conversations cannot be reported through the Conversions API.
- Pick first touch or last touch, and keep it. A customer may tap two of your ads over a few weeks. Keeping the first click ID credits the ad that started the relationship; replacing it credits the most recent one. Either is defensible, but switching between them makes your reports impossible to compare.
Which events does the WhatsApp Conversions API accept?
The Conversions API for Business Messaging does not take any event name you invent. Meta’s business messaging documentation lists a fixed set of fourteen: Purchase, LeadSubmitted, InitiateCheckout, AddToCart, ViewContent, OrderCreated, OrderShipped, OrderDelivered, OrderCanceled, OrderReturned, CartAbandoned, QualifiedLead, RatingProvided and ReviewProvided. Familiar website pixel names such as Lead, Contact or Schedule are not on that list, so map your own stages to the names above.
For a business that sells through conversation, three of them do most of the work:
| Event name | What it should mean | When to send it |
|---|---|---|
| LeadSubmitted | A person who came from an ad is now a lead | When the ad-started conversation opens, once per lead |
| QualifiedLead | The lead matches what you sell: need, budget, timing | When your qualification questions are answered well, once per lead |
| Purchase | Money actually changed hands | When the sale is recorded, with its value and currency |
Shops that take orders inside the chat can add the order and cart events. Meta’s guidance is that business messaging events should represent customer interactions in the messaging thread, while a purchase made on your website belongs to the website’s own Conversions API or pixel setup. Reporting the same sale through both counts it twice.
What does a WhatsApp Conversions API event need?
Each requirement below comes from Meta’s documentation, and an event that misses one is either refused or useless:
- A dataset linked to your WhatsApp Business Account. Meta creates it, or returns the existing one, through the WhatsApp Business Account’s dataset endpoint. Meta states that the dataset is owned by the business, not by the software vendor.
- The right permissions. The access token needs whatsapp_business_management and whatsapp_business_manage_events.
- action_source set to business_messaging and messaging_channel set to whatsapp.
- user_data with whatsapp_business_account_id and ctwa_clid. Meta calls the click ID a required field for WhatsApp events. No click ID, no event.
- An event_time within the last 7 days. Meta’s server event parameters allow an event_time up to 7 days before you send it, and if any event in a request is older, the whole request fails.
- Value and currency on every Purchase. Meta’s custom data parameters mark both as required for purchase events.
One more rule shapes the design. Meta says it does not help deduplicate events for the Conversions API for Business Messaging. If your system sends the same purchase twice, Meta sees two purchases, so deduplication is your job before the event leaves your server.
How does ad optimisation change once Meta receives deeper events?
Measurement improves first. Each event carries the click ID of one ad click, so Meta can tie a qualified lead or a purchase to the campaign, ad set and ad behind it. Instead of ranking ads by cost per conversation, you rank them by cost per qualified lead and by revenue. An ad that brings many cheap chats and no buyers stops looking like a winner.
Optimisation can follow. Meta’s business messaging documentation says the Conversions API enables purchase optimisation for click-to-WhatsApp ads, and Meta’s click-to-WhatsApp ad reference lists conversions as an optimisation goal for the Sales objective, next to conversations. When a campaign optimises for purchases, the delivery system looks for people who resemble your buyers rather than people who resemble your chatters.
A sensible order of work:
- Start sending LeadSubmitted, QualifiedLead and valued Purchase events while the campaign still optimises for conversations.
- Use the events to judge creatives and audiences: keep the ads that produce qualified leads and sales, and cut the ones that only produce chats.
- Once purchases arrive steadily, test a Sales campaign that optimises for conversions next to your conversation campaign, and compare the cost per purchase.
Meta’s options change, and the goals you can pick depend on the objective and on your account, so check what Ads Manager offers you before planning around one.
What are the common mistakes in WhatsApp conversion tracking?
- Sending events without the click ID. A WhatsApp event without ctwa_clid cannot be attributed to an ad, and Meta treats the click ID as required. The fix is upstream: capture it from the first message, every time.
- Sending purchases with no value. Meta requires value and currency on purchase events, and a purchase without a value cannot tell you which ad paid for itself.
- Tracking only in a spreadsheet. A sheet can show you which ads worked, but Meta’s delivery system never reads it, so the campaign keeps optimising for conversations.
- Reporting a label as a sale. Marking someone “customer” in a CRM is not a purchase. A Purchase with no real sale behind it teaches Meta to find people who look like your mislabelled leads.
- Sending the same event twice. Meta does not deduplicate business messaging events, so a lead qualified twice or a sale entered twice inflates every number.
- Waiting too long. A sale typed in at the end of the month may be older than 7 days, and Meta refuses it.
- Using website event names. Lead, Contact and Schedule are not on the business messaging list; use LeadSubmitted, QualifiedLead and the other listed names.
How does Scale track click-to-WhatsApp ad conversions?
Scale is an AI agent that answers your WhatsApp, Instagram and Messenger and keeps every conversation in a built-in CRM, so the milestones Meta wants already exist inside it. This is exactly what its Meta Ads conversion tracking does:
- Setup from the WhatsApp connection. When you connect your WhatsApp Business number through Meta’s official signup, Scale sets conversion tracking up from that connection and reads the dataset linked to your WhatsApp Business Account. A manual connection with a Meta access token is also available.
- The click ID is caught on the first message. Scale stores the ctwa_clid on the lead when the ad-started conversation opens. It is first touch: a later ad click by the same customer does not replace it.
- Three events. LeadSubmitted when an ad-started conversation begins; QualifiedLead when the lead’s stage becomes Qualified, whether the AI agent set it from your qualification questions or a teammate did; Purchase only when a sale is recorded with an amount and a currency, or an order is created in the chat through a connected store. Moving a lead to Customer by hand sends nothing on its own.
- Each event once. One event per lead for each stage and one Purchase per sale, with no customer name, phone number or message text inside.
What it does not do: conversion events are sent for WhatsApp only, not for Messenger or Instagram ads. Conversations that did not start from an ad are never sent, and nothing older than 7 days is sent. Appointments stay inside Scale, because the business messaging list has no booking event. Scale does not yet show which campaign or ad produced each conversion, so read that in Ads Manager, and it cannot see or change your campaigns, audiences or budgets.
This suits businesses where the sale closes after a conversation: a real estate agency qualifying buyers on budget and area, or a car dealership turning model and finance questions into recorded sales. The lead stages, owners and assignment that feed these events are covered in our guide to running a sales team on a WhatsApp CRM. To try it on your own ads, create your Scale account.
Frequently asked questions
What is the Conversions API for WhatsApp?
It is Meta’s Conversions API (CAPI) used with action_source business_messaging and messaging_channel whatsapp: your server sends events such as LeadSubmitted, QualifiedLead and Purchase to a dataset linked to your WhatsApp Business Account. Each event carries the click ID of the ad that started the chat, so Meta can attribute it and optimise toward it.
What is ctwa_clid?
The ctwa_clid is the click ID Meta generates when someone taps a click-to-WhatsApp ad. It arrives in the referral object of the message sent from that ad, and Meta requires it on every WhatsApp event you send through the Conversions API.
Which event names can I send for click-to-WhatsApp ads?
Only the fourteen names Meta lists for business messaging, including LeadSubmitted, QualifiedLead, Purchase, the order events and the cart events. Website pixel names such as Lead, Contact or Schedule are not on that list.
Can I track click-to-WhatsApp ad conversions with only the WhatsApp Business app?
Not on its own. The click ID is delivered through the WhatsApp Business Platform’s message webhook, so the number has to be connected to the platform, directly or through software built on it.
Why does Meta show fewer conversions than I have WhatsApp chats?
Only conversations that started from an ad carry a click ID, and only those can be reported. Customers who saved your number, wrote from your website or tapped an ad in WhatsApp Status have no click ID, so their purchases never reach Meta as ad conversions.
Should I optimise click-to-WhatsApp ads for conversations or purchases?
Start with conversations while you send lead, qualified-lead and purchase events, and use those events to decide which ads to keep. Once valued purchases arrive steadily, test a Sales campaign that optimises for conversions against it and keep whichever brings sales at the lower cost.
How late can I send a conversion event to Meta?
Meta accepts an event whose event_time is up to 7 days in the past and rejects the whole request if any event in it is older. Record each sale when it happens, not at the end of the month.
