Why do click-to-message ad leads have no source?
Click-to-Messenger and click-to-WhatsApp ads start a chat without a website visit, so there is no landing page, UTM or referrer to record. The lead reaches your CRM with no real source unless you capture the ad or campaign from the conversation itself. Tools like Trakt record sources only when a visitor reaches your site.
Quick start: Start free with Trakt to build tagged links for the ads and posts that send people to your site. Or follow the manual steps below.
Why the source disappears
A click-to-Messenger or click-to-WhatsApp ad opens a chat window directly inside Messenger, Instagram, or WhatsApp. The person taps the ad and starts typing. They never click through to a landing page, so there is no destination URL for a UTM parameter to live on and no referrer for your analytics to record. For every other paid channel, that click-through is the moment a tracked session gets created. Click-to-message ads skip that step by design, since the entire point of the format is removing the extra tap.
The conversation still needs to get from the chat app into your CRM, and that trip is where most of the damage happens. Teams typically move it in one of three ways: a chatbot platform like ManyChat or Chatfuel, Meta's native CRM integrations, or a support inbox such as Front or Intercom that forwards conversations along. None of these carry campaign or ad-set detail by default. Unless someone explicitly maps a source at setup, every chat-started lead across every ad lands in the same undifferentiated pile, and you cannot tell which ad actually drove a reply.
There is also a clock on this. Messenger and WhatsApp conversations go cold fast, and a lead that sits unsynced for even a day is far more likely to get re-entered into the CRM by hand later, which is exactly the moment the original source gets dropped for good.
How to fix it: 5 steps
None of this requires new tracking infrastructure. It requires mapping the source deliberately instead of letting the default win.
- Give every ad its own named source. Instead of one shared "WhatsApp" or "Messenger" value, set a distinct CRM source per ad set, for example "WhatsApp Click-to-Chat - Q3 Retargeting" rather than "WhatsApp."
- Pass the ad's ref parameter into the conversation. Meta's click-to-Messenger and click-to-WhatsApp ad formats support a ref field that gets delivered with the first message. Use it to carry the campaign or ad name through to your chatbot or CRM the same way a UTM parameter would on a landing page.
- Sync through a chatbot platform or native integration, not manual copy-paste. Tools like ManyChat, Chatfuel, or Meta's own CRM connectors apply the same field mapping to every conversation. A rep manually copying details into the CRM depends on remembering to tag the source correctly each time, and eventually someone won't.
- Route new conversations into the CRM in near real time. Messenger and WhatsApp threads go cold within hours. Build the sync so the source lands with the lead immediately, not on whatever schedule someone remembers to check the inbox.
- Reconcile monthly against Meta Ads Manager. Compare the "messaging conversations started" count Meta reports for each ad against what actually shows up in your CRM under that ad's name. A gap between the two means the sync is silently dropping leads.
For the campaigns that do send people to your site, pre-register for Trakt.
Click-to-message ads vs. website contact forms
These are two different funnels wearing the same "someone wants to talk to us" label, and blending them into one lead count hides more than it reveals.
| Aspect | Click-to-Messenger / WhatsApp ads | Website contact forms |
|---|---|---|
| Where the conversation starts | Inside Messenger, Instagram, or WhatsApp, no click-through to your site | On your website, after a tracked click |
| What reaches your CRM | Whatever the chat captures, plus the ad's ref parameter if it is mapped | Whatever your form captures, plus UTM and referrer data |
| Campaign-level detail | Only if the ref parameter or a per-ad source tag is set explicitly | Native, via UTM parameters on the ad's destination URL |
| Typical response speed | Fast, since it is a native mobile chat window with no page to load | Slower, usually needs a follow-up email or call after submission |
| Best used for | Low-friction, top-of-funnel capture where volume and speed matter | Leads where you need full session context and content engagement data |
Your click-to-message ad attribution checklist
Run through this before you trust a single cost-per-lead or response-rate number from your Messenger or WhatsApp ad campaigns.
- ☐ Each ad or ad set has its own named source, not a shared "Messenger" or "WhatsApp" bucket.
- ☐ The ad's ref parameter, or an equivalent hidden field, is mapped to a CRM-visible field on every conversation.
- ☐ Conversations sync through a chatbot platform or native integration, not manual copy-paste.
- ☐ New conversations land in the CRM in near real time, before the source can get lost to a manual re-entry.
- ☐ CRM conversation counts are reconciled against Meta Ads Manager's reported totals on a set schedule.
- ☐ Click-to-message leads are reported separately from website form leads, so response rate and cost per lead are not blended across two different funnels.
Where to start
Click-to-message ads are not the only channel that hands your CRM a lead with no real source attached. LinkedIn Lead Gen Forms have the same blind spot for a similar reason, which we broke down in why LinkedIn Lead Gen Form leads show up as Unknown, and the same "Unknown" or "Direct" default shows up across your CRM more broadly, covered in why your leads show up as Direct.
Run the free attribution audit to see where else your CRM is losing source data, then fix the ref parameter mapping so every dollar spent on click-to-message ads ties back to a campaign you can actually compare.
Click-to-Messenger and WhatsApp Ad Attribution FAQ
Why do click-to-Messenger and WhatsApp ad leads show up as Direct or Unknown in my CRM?
Because the conversation starts inside Messenger, Instagram, or WhatsApp itself and the person never visits your website, there is no page visit, UTM parameter, or referrer for your tracking to record. Unless your integration explicitly maps a source at the point of sync, the lead lands with whatever default value your CRM assigns to contacts with no detected source.
Can I use UTM parameters on a click-to-Messenger or WhatsApp ad the way I would on a landing page?
Not directly, since there is no destination URL to attach them to. Instead, use the ref parameter Meta's click-to-message ad format supports. It gets delivered with the first message and can carry the campaign or ad name through to your chatbot or CRM, doing the same job a UTM parameter does on a landing page.
Should I copy chat conversations into my CRM manually or use an integration?
Use an integration. A chatbot platform like ManyChat or a native CRM connector applies the same source mapping to every conversation, while manual copy-paste depends on someone remembering to tag the source correctly each time. That consistency breaks down fast once volume picks up.
How fast do I need to sync a click-to-message conversation into my CRM?
As close to real time as you can manage. Messenger and WhatsApp conversations go cold within hours, and the longer a lead sits unsynced, the more likely it gets re-entered into the CRM by hand later, which is exactly when the original source gets dropped.


