Phone call conversions and offline conversion tracking: send call outcomes to Google Ads and Meta

Call outcomesAnswered, Booked, Showed, Won
HighLevel and webhookWeekly review

A call is not a sale. The outcome of the call is. Here is how to make sure the answered call, the booking, the show-up and the win land on the same contact that carries the ad click, so Google Ads and Meta learn from real customers.

Setup in 5 minutes
No credit card
One lead from a Meta ad
From form fill to won deal in HighLevel
With DataCops
Form fillSent to Meta
Booked callSent to Meta
Showed upSent to Meta
Deal wonSent with its value
Matched to the original ad click by email

Trusted by agencies and brands running paid media

AffilinoBigfishClever DigitalKeetraxLegendListingLogicNumeroStormZealdBurst Digital

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 filled in a form on your site. Everything after that only counts if it attaches to the same contact.

That is the one rule of phone call tracking: the call outcome must land on the same 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 to keep 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.

Call stages worth sending

A ringing phone is not a result. Send the steps that show a lead is turning into a customer:

  • Answered: a real conversation happened, not voicemail. A useful early signal for lead quality.
  • 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.

What DataCops sends, and to where

With HighLevel, the native connection 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.

Google Ads conversion actions start as secondary. Leads and purchases go by default; booked and showed go only to a conversion action you map yourself. Meta gets the stages through the Conversions API. Read more on Google Ads and Meta.

For any other CRM, your system posts each outcome to a private DataCops webhook. Fields are the event name, plus email or phone (at least one), and optionally value, currency, an order ID, and the click IDs.

HighLevel native or webhook: which one

If your calls and pipeline already live in HighLevel, use the native connection. You install once on the agency, pick the sub-accounts, and the stages are sent from there. The result is also written back onto the HighLevel contact, so you can see it where you work.

If you use Salesforce, Pipedrive, Close, Zoho or another CRM, use the webhook. There is no native app for those. A small automation in the CRM, or a Zapier, Make or n8n scenario, posts each call outcome when it happens. The order ID field means the same outcome sent twice counts once.

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, or a different email. 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.

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 log. DataCops shows every send as sent, held, 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.
Honest note

What DataCops does and does not do here

Sends call stages from HighLevel

Lead, booked, showed, won with value, and paid, written back onto the contact.

Any CRM through the webhook

Your CRM or Zapier, Make or n8n posts each outcome with email or phone.

Does not record or answer calls

DataCops is not a call tracking phone system. It sends outcomes your CRM already holds.

Never sends cancelled, no-show or lost

From HighLevel, those stages are held back on purpose.

Set up call outcome tracking

About 5 minutes per site. Agencies: about 15 minutes per client.

  1. Step 1
    code

    Add the DataCops script
    One script and one DNS record, so every ad click is kept on your own domain for up to 90 days.

  2. Step 2
    ads_click

    Connect your ad platforms
    Meta, Google Ads, TikTok and LinkedIn by one-click sign-in.

  3. Step 3
    hub

    Connect where your sales happen
    HighLevel natively, or any other CRM through your private webhook. Pick the stages to send.

FAQ

Save the ad click on the lead when the form is filled, make sure the phone call is logged 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 and Meta.

Let your ads learn from answered calls that turn into sales

Send call outcomes to Meta and Google Ads the day they happen, 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