How to track which Facebook ad brought each WhatsApp lead
Ads Manager tells you how many conversations an ad started, not which of those people paid you. Here is how to keep the ad source on every WhatsApp lead, all the way to the sale.

KEY TAKEAWAYS
- Ads Manager reports conversations started, not sales.
- Meta sends the ad ID, headline and text with the first message from a Click-to-WhatsApp ad, through the API.
- Connecting your ad account (read-only) adds campaign, ad set and ad names.
- Send the source with the lead to your CRM, then compare ads by won deals, not by chats.
Short answer: use the WhatsApp Business API, record the ad details Meta sends with the first message of every Click-to-WhatsApp chat, and pass them to your CRM with the lead. Then judge ads by how many leads became customers, not by cost per conversation.
Why cost per conversation misleads
Click-to-WhatsApp ads are optimised and reported on conversations started. A cheap conversation is not always a good lead. One ad can bring many chats from people who never reply again, while another brings fewer chats from people who buy. If you only see conversations, you will keep spending on the first ad.
What does Meta send with an ad lead?
When someone taps a Click-to-WhatsApp ad and sends the first message, the API delivers a referral with that message. It includes the ad ID, the ad headline and the ad text. The WhatsApp Business app does not give you this data in a usable way, which is one reason ad-driven businesses move to the API.
Adding campaign and ad set names
The referral identifies the ad, but not by the names you use in Ads Manager. By connecting your Facebook ad account with read-only access, software can look up the campaign, ad set and ad names for each lead. In Upgrow Connect this is under Integrations → Ad campaign names. It only reads names; it never creates or changes ads.
Set it up in four steps
- Connect your number to the API. Use the same number your ads send people to.
- Connect Facebook Ads (read-only). Optional, but it adds campaign and ad set names you recognise.
- Send leads to your CRM or sheet. Connect Upgrow SalesFlow, Google Sheets or a webhook. The ad source travels with each lead.
- Mark outcomes. Your sales team updates leads to Booked or Won, so every sale is tied to an ad.
How to read the results
After two to four weeks, group won deals by ad. Compare cost per won deal instead of cost per conversation. Turn off ads that bring chats but no sales, and move budget to the ads that bring buyers. Give new ads enough time before judging: a week of data is rarely enough for a high-value sale.
Common mistakes
- Sending ad leads to a personal phone, where the source is lost.
- Judging ads after two or three days, before leads have had time to convert.
- Not updating lead status in the CRM, so sales never get linked back to ads.
- Using one generic welcome message for everyone instead of a flow that qualifies ad leads.
Frequently asked questions
You may see that a chat came from an ad, but the app does not pass the ad details on to your CRM. The API delivers the ad ID, headline and text with the first message.
In Upgrow Connect the connection is read-only. It only reads campaign, ad set and ad names.
The ad source is recorded on the lead from the first message, so it stays with the contact.




