How-to

Tracking Phone Calls as Conversions: CallRail + HubSpot + GTM

Tracking Phone Calls as Conversions: CallRail + HubSpot + GTMa call becomes a conversionInbound callCallRail(800) swapHubSpotqualify ✓Google Adsconversion

If phone calls are a real channel for your business, the most valuable conversions never touch a form. Connecting CallRail, HubSpot and Google Tag Manager lets you treat a qualified call like any other conversion, attributed to the campaign that drove it, scored in your CRM, and fed back to Google Ads. Here's how the pieces fit.

The four pieces and what each does

  • CallRail: dynamic number insertion swaps your phone number per visitor so it can attribute the call to a source, keyword and the Google click id.
  • GTM: captures the gclid and session source on the website and makes sure CallRail's swap and your analytics see the same visitor.
  • HubSpot: the system of record where the call becomes a contact/deal you can qualify and value.
  • Google Ads: receives the qualified call back as an offline conversion.
Visitorgclid via GTMCallRailtracks the callHubSpotqualify + valueGoogle Adsoffline conv.

What GTM actually does here

CallRail does the number-swapping, but GTM makes the attribution reliable:

  1. Capture gclid from the landing URL with a URL variable and store it in a first-party cookie.
  2. Make sure CallRail's script loads (you can deploy it via GTM) so dynamic numbers swap on every page.
  3. Push a dataLayer event when CallRail reports a call so GA4 and ad tags can react to "phone_call" like any other conversion.

Keep identity consistent

The whole chain depends on the same visitor being recognized across the site, CallRail and your analytics. Capture the click id early and let every downstream system read it, don't let the swap and your tags disagree about who the visitor is.

Qualify in HubSpot, then send the good ones back

Not every call is a conversion, most aren't. The point of routing calls through HubSpot is to qualify them: a 20-second wrong number shouldn't train Smart Bidding the same way a booked consultation does.

The flow

  • CallRail creates/updates a HubSpot contact with the call and its source data.
  • Your team (or a workflow) marks which calls are genuine leads and assigns a value.
  • Qualified calls import back to Google Ads as offline conversions, matched on the stored click id.

Practice this on a real container

The hard part is capturing and carrying the click id reliably. Practice the GTM half (URL variables, cookies and a dataLayer event), then read how the click id flows from web to CRM to ad platform.

Read: capturing the click ID →

Pitfalls to avoid

  • No click id stored → calls can't be attributed to a campaign.
  • Counting every call → Smart Bidding optimizes toward junk; qualify first.
  • Double-counting → if both CallRail and a manual import send the same call, dedupe on a call/contact id.
  • Consent → number swapping and tracking still need to respect the visitor's consent choices.

Now go practice it

Reading sticks when you do it. These hands-on lessons load your own GTM container and let you debug in Tag Assistant.

Frequently asked questions

How do CallRail, HubSpot and GTM work together for call tracking?

CallRail swaps your phone number per visitor and attributes the call to a source and the gclid. GTM captures the click id on the site and keeps visitor identity consistent across CallRail and your analytics. HubSpot records the call as a contact/deal you qualify and value. Qualified calls are then imported back to Google Ads as offline conversions.

What does GTM do in a call tracking setup?

GTM captures the gclid from the landing URL into a first-party cookie, can deploy CallRail's script so numbers swap on every page, and pushes a dataLayer event when a call happens so GA4 and ad tags can treat it as a conversion.

Should every phone call count as a conversion?

No. Most calls aren't qualified leads. Route calls through HubSpot to mark which are genuine and assign a value, then import only the qualified ones back to Google Ads so Smart Bidding optimizes toward real revenue rather than wrong numbers.

Why aren't my call conversions attributed to campaigns?

Almost always because the click id wasn't captured and stored with the visitor. Capture the gclid on the first page view, keep it in a first-party cookie, and make sure it reaches CallRail and your CRM so calls can be matched back to the campaign.

Related posts

About the author

Nathan Gage
Nathan Gage

Analytics & Tag Management Consultant

Nathan Gage got his start in marketing through Google Tag Manager. Seeing how tracking customer behavior could turn raw clicks into insight you can actually act on is what pulled him into the field. Since then he has worked both full time and as a consultant with 15 marketing agencies, supporting brands that spend anywhere from a thousand dollars a month to over a million. Along the way he built a multi-touch attribution app, and he created The Happy Tagger so anyone can practice GTM, GA4 and server-side tracking on a real container instead of a production site.