Troubleshooting Posted by the DataCops team

Click ID on the contact but not on the opportunity: why the sale never matches

The sale never matches because the event is built from the opportunity, and the opportunity does not carry the click ID your contact has. Copy the click ID onto the opportunity when it is created, or make the workflow look it up from the contact before sending.

This one is sneaky because everything looks right. You open the contact, and there it is: a click ID from the ad, captured when the form was filled in. You open the deal, and the Won event went out. Yet the ad platform shows no match. So where did it go wrong?

Here is the mechanism. Many CRMs keep two separate records. The contact is the person. The opportunity is the deal. Fields you fill on one do not automatically appear on the other. When a form is submitted, the click ID usually lands on the contact. Later, someone creates an opportunity, and the automation that sends the sale reads its fields from the opportunity. The click ID field on that record is empty, so the event goes out with no click ID.

That is not always fatal. If the event still carries a hashed email or phone, Meta and Google can sometimes match on those. But a click ID is the strongest signal you have, because it points at one specific ad click. Losing it drops your match rate, and the drop tends to be worst on the people you most want to count, the ones who filled in a form from a phone and closed weeks later on a laptop.

There are a few ways the split happens. One is timing: the opportunity was created before the form data was written to the contact, so a copy step ran too early and copied nothing. Another is duplicates: the person filled in the form twice with two emails, so there are two contacts, and the deal hangs off the one without the click ID. A third is field mapping: the click ID field exists on both records but has a different name or type on each, so the copy silently fails.

To diagnose, take one closed deal and lay the records side by side. Does the contact have a click ID? Does the opportunity? Was the deal created before or after the form submission? Is there a second contact with the same phone number? Ten minutes with one real example beats an hour of theorising.

Then fix it at the source. Add a click ID field to the opportunity, and set a step that runs when the opportunity is created to copy it across from the contact. Better still, have the Won workflow read the click ID from the contact at send time, so timing never matters. Check the current documentation for your CRM to see which fields a workflow can read from a linked contact.

Here is a made-up example, invented to show the pattern. A mortgage broker runs Google Ads. Leads come in through a form, and the click ID is saved on the contact. Loan officers create the deal by hand two days later. Of 60 closed loans last quarter, only 9 reached Google with a click ID, because officers created most deals after a phone call from a different number, so a new contact was made without any click ID. Merging the duplicates and copying the field lifted the count to 41. It was not perfect, because 19 people had genuinely arrived without a captured click.

That leftover matters. Some click IDs will never exist. Safari limits how long cookies last, and iOS strips click IDs from links in some cases. So aim for most deals matched, not all, and be wary of any tool that promises everything.

Also keep the clock in mind. Click IDs are only useful for a limited time. Google Ads ignores uploads more than 90 days after the click, so a long sales cycle needs the click ID stored somewhere safe from day one.

Have you compared a contact and its opportunity side by side yet? Tell me which fields you see on each and I can help work out where it drops.

More on this: Meta offline conversions, and the complete guide to offline conversion tracking.

1 comment

Comments (1)

DataCops team author · 30 Sep 2026

If you only have time for one thing, pick a single closed deal and check whether the click ID exists on the record the Won event reads from.

1
Replies from DataCops account holders are coming soon. Until then, questions about your own setup can go to the team.

More threads

See what your own setup is missing

Send CRM sales back to the ad click that started them, logged per send.

Setup in 5 minutes. No credit card.

Live traffic quality

Updated just now

Visits · last 24h

487
Real users
35873.5%
Bots · auto-filtered
12926.5%

Without filtering, 26.5% of your reported traffic is bot noise inflating dashboards and draining ad spend.

Don't trust your analytics!

Make confident, data-driven decisions withactionable ad spend insights.

Setup in 2 minutes
No credit card