Troubleshooting Posted by the DataCops team

The call came from one person and the CRM contact is another: how do you match calls to CRM records?

Short answer

Match on several keys, store the caller's number separately, pass the call source to the contact, review unmatched calls weekly and track the match rate.

You match on more than one key, accept that some calls will never match, and make the match visible so you know your coverage. A call made by Joe about a case opened for Kim, with a different number in the CRM, cannot be matched on phone alone, and no tool fixes that after the fact.

Understand why mismatches happen. People call from a work phone and give a home number. A spouse calls for a partner. A receptionist books on behalf of someone. The CRM holds the number typed at intake, not the number that rang.

First, record the caller's number on the call itself, separately from the contact's number. Many call tracking tools store it. When the call is logged in the CRM, save it as a secondary phone on the contact if the contact has a different one.

Second, add the other matching keys. Email, name, and a reference the caller gives, such as a case number or a booking code. A short question at the end of the call, such as 'what email should we use', adds a key that survives.

Third, use the call tracking source. If the call came from a tracking number tied to a campaign, the source is attached to the call record, not to the person. Pass that source to the CRM contact when the match is made manually or by a rule.

Fourth, accept manual review for the unmatched. A short list of calls with no match, reviewed weekly by someone who knows the callers, is cheaper than building a perfect system. It also shows where the process leaks.

Fifth, track the match rate. Count calls, matched calls and unmatched calls each week. If the match rate is low, the cause is in the intake process, and that is where to change it.

Be careful with closed systems. If your CRM cannot export data or accept an API, you may be limited to a manual process or a different tool. Check this before you commit to an automation.

DataCops matches stages to the click by click ID or hashed email and phone, and holds a send that lacks enough matching details instead of dropping it silently, with the reason in the delivery log. It does not know that Joe and Kim are connected unless your CRM does.

What details do you record when someone phones in?

DataCops in short

For this question: DataCops matches stages by click ID or hashed email and phone, and holds a send that lacks enough details instead of dropping it, with the reason in the delivery log.

DataCops is a tool that makes the ads learn from real sales: it sends booked, showed, won and paid stages from your CRM back to your ad platforms, gives every visit a bot verdict with a Real people only switch per platform, warms up new campaigns with your existing customers, and logs every send. It is not an attribution report.

How DataCops does it

  • The sale after the form. HighLevel natively (lead, booked, showed, won with value, paid; cancelled, no-show and lost are never sent), any other CRM through a private webhook, matched to the click by click ID or hashed email and phone.
  • The click is kept on the server. Click IDs are stored for up to 90 days, so a deal that closes weeks later still finds its click.
  • Real people only. Every visit gets a bot verdict against 360+ billion IPs and 350+ monitoring points, with a Real people only switch per ad platform, off by default. CRM events carry no bot flag.
  • Counted once, logged every time. Pixel and server events share an event ID, and a delivery log shows each send as sent, held, skipped or failed, with the reason.
  • One script, one DNS record. Collection runs on your own domain; with DNS on Cloudflare, the free Worker reads the click at the edge before the page loads.

Best for: ad-funded businesses whose sales close in a CRM or on a call: clinics, home services, agencies, B2B and lead gen.

Ads Warmup: tell the ads who pays

Ads Warmup, DataCops' flagship feature, sends customers you already have to Meta, Google Ads and TikTok before a new campaign spends: upload a CSV (only email is required, up to 20,000 rows), see a 0 to 10 match score per person, pick the event, and send. Rows are dated when you send, and Google Ads credits only people who clicked a Google ad. Preview is free; sending needs a paid plan. Check your own consent basis for the list first. See Ads Warmup.

Ways to do this job

OptionBest for
DataCopsCRM stages to Meta and Google Ads, with a bot verdict and a delivery log
Zapier or MakeOne simple CRM-to-ad flow you build and maintain
Direct API uploadTeams with an engineer
Manual CSV uploadOccasional batches

When not to use DataCops

  • You want a reporting dashboard. DataCops cleans and sends what goes into your ads. It is not a multi-touch reporting layer.
  • Your sales never leave one store checkout. If everything happens in one checkout, the platform's own pixel plus server events may be enough.

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

1 comment

Comments (1)

DataCops team author · 30 Sep 2026

Pick ten recent calls and try to match them by hand. The failures show which keys you are missing.

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