Phone call conversions: send call outcomes to Google Ads and Meta
A call is not a sale. The outcome of the call is. DataCops makes sure the booking, the show-up and the win land on the same contact that carries the ad click, and sends them to Google Ads, Meta and every other platform you run, so your ads learn from real customers.

Trusted by agencies and brands running paid media










From ad click to call outcome
The click is kept on your domain. The call result comes from your CRM. DataCops joins them.
- Step 01Saved on yourdomain.comfbclid from Meta Keptgclid from Google Ads Keptttclid from TikTok KeptKept for up to 90 days
Someone clicks your ad and fills in a form. DataCops keeps the click ID on your own domain.
- Step 02
Stages your CRM reports
Booked call ReportedShowed up ReportedWon, with value ReportedYour team calls them. The CRM records booked, showed or won on the same contact.
- Step 03Finding the ad click againWon dealby email or phoneAd click, 23 days earlierMatched
DataCops matches the outcome to the click by click ID or hashed email and phone.
- Step 04Won deal sent
Meta Sent once
Google Ads Sent once
TikTok Sent once
LinkedIn Sent once
The outcome is checked for consent, bots and duplicates, then sent to every platform you connected.
HighLevel stages go out as they happen. Other CRMs go out when your webhook posts.
The call has to land on the right contact
Ad platforms learn from the click. The click ID lives on a contact, saved when the lead first came from an ad and filled in a form on your site. Everything after that only counts if it attaches to the same person.
That is the one rule of phone call tracking: the call outcome must land on the contact that carries the ad click. If the call is logged on a fresh, empty contact, the outcome exists in your CRM but Google Ads and Meta never connect it to an ad.
This page shows how DataCops keeps that link, which call stages are worth sending, and a weekly routine that catches problems early. The wider idea is in our offline conversions guide.
How DataCops keeps the click
The DataCops script runs on your own subdomain, so it is first-party and ad-blocker safe. When someone lands from an ad, it saves the click ID with the visitor: gclid, wbraid and gbraid for Google, fbclid for Meta, ttclid for TikTok, li_fat_id for LinkedIn, msclkid for Microsoft and twclid for X. UTM tags are kept too.
When the visitor fills in a form, auto-capture picks up the lead with no setup, or you pick the form with the point-and-click picker. The email and phone are tied to the visit, so the click travels with the lead. With the first-party server cookie switched on for your site, returning visitors can be remembered for up to 400 days. A returning buyer who gives the same email can still be linked to their first ad click.
So when your team calls the lead back, the hard part is already done. The contact in DataCops knows which ad it came from.
Call stages worth sending
A ringing phone is not a result. Send the steps that show a lead is turning into a customer:
- Booked: the call ended with an appointment or a next step on the calendar.
- Showed: the person came to the appointment. This is where many businesses lose track.
- Won: the deal was signed or the job was sold, with its value.
- Paid: the money arrived. The strongest signal of all.
If your phone system marks answered calls in your CRM, you can post that as an event too through the webhook. It is a useful early signal of lead quality, but the later stages teach the ad platforms more.
What DataCops sends, and to where
With HighLevel, the free DataCops app sends lead, booked, showed, won (with value) and paid. Cancelled, no-show and lost are never sent, so a failed call never teaches an ad platform to find more of the same person.
Each outcome goes to every platform you connected: Meta, Google Ads, TikTok, LinkedIn, Microsoft Ads, Reddit, Pinterest and X. Meta, Google Ads, TikTok, LinkedIn and X connect with one-click sign-in. Microsoft Ads, Reddit and Pinterest connect with an API key.
On Google Ads, leads and purchases go by default; booked and showed go to a conversion action you map yourself. Meta gets the stages through the Conversions API. Read more on Google Ads and Meta.
Every outcome carries the click ID when DataCops has one, plus the email and phone, cleaned and SHA-256 hashed before they leave our servers. In Ads Warmup, DataCops shows a match score from 0 to 10 for each person, our own estimate of how well the details can be matched.
HighLevel native or webhook: which one
If your calls and pipeline already live in HighLevel, use the native app. Install it once on the agency, link the sub-accounts, and the stages are sent from there. The app is free in HighLevel. Agencies pay DataCops on the Agency plan.
If you use Salesforce, Pipedrive, Close, Zoho or another CRM, use the private DataCops sales webhook. A small automation in the CRM, or a Zapier, Make or n8n scenario, posts each call outcome when it happens. Send the event name, an email or phone (at least one), and optionally value, currency, an order ID and the click IDs. Every post is logged in plain words: sent, not sent, duplicate, ignored or rejected.
The order ID matters. With it, the same outcome sent twice counts once per ad platform, remembered for 400 days.
Send only qualified calls
Some businesses get a lot of calls that go nowhere. You do not want every form fill to count as a win. DataCops can hold a lead and send it to the ad platforms only after your CRM marks it qualified.
With HubSpot, DataCops checks every 5 minutes for the field and value you chose, then releases the lead with its original click IDs. With any other CRM, one call to the release API does the same. You can also change a lead's status in the DataCops dashboard. Held leads expire after 14 days, and "not a fit" drops them, so a lead that never qualifies is never sent.
The duplicate contact trap
This is the most common reason call tracking quietly fails. A lead fills in your form on Monday, and the contact is saved with the ad click. On Thursday they call from a different number. Your phone system creates a second contact for the call.
The call is booked and won on contact two. Contact one, the one with the click, is still sitting at new lead. The ad platform sees a lead and no sale.
Ways to prevent it: match calls to contacts by phone number in your phone system, ask for an email on every call, merge duplicates on a schedule, and never let a call create a contact without first searching for an existing one. DataCops helps from its side too: because it matches by hashed email as well as phone, an outcome posted with the right email still finds the person who clicked.
Checks before every send
- Consent. The built-in cookie banner is shown in Europe by default and built to the IAB TCF v2.2 standard. Google Consent Mode v2 is on by default. The server re-checks consent before every send, and for EU, UK and Swiss visitors nothing goes out until they opt in.
- Real people only. Turn it on per platform and conversions from bots and datacenter traffic are not sent. VPN, proxy and Tor can be added. It is off by default.
- Health mode. For clinics, health mode keeps health details out of ad payloads and uses neutral event names.
- Routing. Per event, choose which platforms get it, pause one, or watch in observe mode without sending.
A made-up example
This is an example, not a real result. A clinic gets 50 form leads from ads in a week. 30 are called back. 18 book. 12 show. 5 pay.
If only the 50 form fills were sent, the ad platforms see 50 equal leads. If the outcomes are sent from the right contact, they see that 5 of the 50 became customers, and which ad clicks those were. That is what steers the next week's spend.
A weekly review routine
Ten minutes on the same day each week is enough.
- Check the delivery report. DataCops shows per platform what was sent, skipped or failed, with the reason. Open the non-sent rows first.
- Compare counts. Calls booked and won in the CRM against the outcomes sent. A big gap points to duplicates or missing contact details.
- Spot-check five contacts. Open each one, find the call, and confirm it sits on the contact with the ad click.
- Merge duplicates. Fix them now, not at quarter end.
- Write down one change. One fix per week beats a rebuild.
Good to know before you start
- Keep your call tracking tool. DataCops sends the outcomes your CRM already holds.
- The call must sit on the contact with an email or phone, so DataCops can match it.
- Meta accepts events within 7 days of when they happened, so send outcomes live, not in a monthly batch.
- The Free plan includes 2,000 sessions. Business is $59 a month ($49 yearly). See pricing.
Everything else DataCops does around the call

One first-party script, served from your own domain
- Runs first-party from datacops.yourdomain, not a blockable third-party host
- One script, one CNAME, live in about 5 minutes, no container to host
- Server-side collection on Cloudflare's edge, close to every visitor
- Captures click IDs at the network level, so fbclid and gclid still reach your CAPI feed after browsers strip them
- Recovers 15 to 25% of the sessions other setups lose
Traffic Visibility
First-Party Script
Blockers and ITP cut your sessions
Set up call outcome tracking
About 5 minutes per site. Agencies: about 15 minutes per client.
- Step 1code
Add the DataCops script
One script and one DNS record, so every ad click is kept on your own domain. - Step 2ads_click
Connect your ad platforms
One-click sign-in for Meta, Google Ads, TikTok, LinkedIn and X, an API key for Microsoft Ads, Reddit and Pinterest. - Step 3hub
Connect where your calls are logged
HighLevel natively, or any other CRM through your private webhook. Pick the stages to send.
Phone call conversions with DataCops, in short
DataCops is a tool that sends call outcomes, booked, showed, won and paid, from HighLevel or any CRM to Google Ads, Meta, TikTok and LinkedIn, matched to the ad click, and keeps your existing call tracking tool.
How DataCops does it
Keep your call tracking tool
DataCops does not replace call tracking. It sends the outcomes your CRM already holds, so the booking, the show-up and the win land on the same contact that carries the ad click.
The call must sit on a contact
DataCops matches by email or phone on the contact. The click is kept on your own domain for up to 90 days, with a signed server-set cookie up to 400 days where enabled, and with your DNS on Cloudflare the free Worker reads the click at the edge.
The stages it sends
HighLevel natively: lead, booked, showed, won with value, paid. Cancelled, no-show and lost send nothing. Any other CRM posts to the private webhook. Held leads wait up to 14 days.
Send outcomes live
Meta accepts events within 7 days of when they happened, so send outcomes as they happen, not in a monthly batch. Google Ads takes uploads up to 90 days after the click.
Qualify before you send
Every visit gets a bot verdict against 360+ billion IPs and 350+ monitoring points, with a Real people only switch per platform, off by default. CRM posts carry no bot flags, so the check applies to the site visit. Every form email is checked for disposable providers, domains with no mail server and an email risk score, and LeadCops can hold a lead.
Warm up, and see every send
Ads Warmup sends a CSV of up to 20,000 past callers and customers to Meta, Google Ads and TikTok, dated when you send. A delivery log row shows each send as sent, held, skipped or failed with the reason.
Best for: phone-led businesses, clinics, home services and agencies whose sales are made on a call and recorded in a CRM.
Free to start. See pricing.
When not to use DataCops
You need call recording or number swapping
DataCops does not track calls. CallRail, WhatConverts and similar tools do. See Ruler Analytics alternatives for call tracking tools compared.
The call is not on a contact
Without an email or phone on a contact, DataCops cannot match the outcome to a click.
You need refunds sent to Meta or TikTok
Refunds do not reach Meta or TikTok. Google Ads is corrected: a full refund retracts the conversion and a partial one lowers its value.
You need bot checks on CRM outcomes
CRM posts carry no browser bot check. Qualify in the CRM first.
Sources
Platform rules checked October 2026. Rules change; check the platform's own page before you build.
FAQ
Keep the ad click on the lead when the form is filled, log the call outcome on that same contact in your CRM, and send the outcome (booked, showed, won) when the CRM reports it. DataCops does the sending to Google Ads, Meta and every other platform you connected.
Works with the rest of DataCops
Conversion API
Server-side conversions to Meta, Google Ads and TikTok, no code.
See Conversion APIAds Warmup
Feed your customer list to the ad platforms before you spend.
See Ads WarmupLeadCops
Verified leads, and conversions only once a lead qualifies.
See LeadCopsOffline Conversions
CRM, store and CSV sales matched back to the ad click.
See Offline ConversionsLet your ads learn from calls that turn into sales
Send call outcomes to all 8 ad platforms the day they happen, logged per send.
Setup in 5 minutes. No credit card.