Call tracking + CRM: closing the attribution loop
Every healthcare account I open has call tracking installed. Most have half of it working — the half that tells you a call happened and where it came from. The half that tells the ad platform what that call became is where almost every setup quietly stops.
On this page
Two halves, one usually missing
Call tracking software is good at the first half of this problem: dynamic number insertion swaps the phone number a visitor sees based on which ad or campaign brought them, so when they call, you know the source before they say a word. Most healthcare and high-ticket accounts have this working. Where it stops is the second half — what happened after the call. Did it become a booked consult? Did the patient show? Did they get admitted? That information lives in the CRM, and in most setups it stays there, disconnected from the ad platform that needs it to bid intelligently.
What closing the loop actually requires
Three pieces, in order. First, the call needs a persistent identifier — the GCLID (or an equivalent click ID) captured at the moment of the ad click and carried through to the call via the tracking number's session data. Second, the CRM needs a disposition field someone actually fills in — not just "call logged" but an outcome: booked, no-show, spam, existing patient, not qualified. Third, a scheduled job — native integration, Zapier, or a direct API push — exports the qualified/booked subset back into the ad platform as an offline conversion, matched by that same click ID. Miss any one of the three and the loop doesn't close; it just gets longer.
Where it breaks in real accounts
The two failure patterns I see most: front-desk answers that never get logged in the CRM at all — the call happened, nobody recorded what it became, so there's nothing to import — and multi-location routing that strips the tracking number before the call reaches whoever is disposition-ing it, losing the source even though the outcome gets logged. Both look fine on the surface. Call volume reports look healthy. It's only when you try to reconcile call-sourced conversions against the CRM that the gap shows up.
What a closed loop looks like day to day
A call comes in, tagged with its GCLID by the tracking number. It becomes a CRM record within minutes, not end of day — delay is where dispositions get skipped. Front desk (or an automation) sets a disposition before the record goes stale. A weekly job, or daily for higher-volume accounts, pulls every disposition marked qualified or booked and imports it as an offline conversion, GCLID intact. Google Ads sees, within days, which campaigns and keywords are actually producing patients — not just phone rings.
The compliance layer
For healthcare, this whole loop has to run without moving PHI into ad-platform systems. The identifiers that make the trip back to Google Ads are the click ID and a qualification flag — not the patient's name, condition, or any clinical detail. BAA-capable call tracking tooling, and a CRM field structure that keeps clinical notes separate from the disposition flag, are what make this compliant instead of a liability.
VERIFIED EXAMPLE · When I inherited a wasteful account at a luxury US healthcare clinic, it was optimizing toward platform conversions. Rebuilt around admitted patients imported from the CRM, cost per admitted patient fell ~78% while spend scaled ~2× and approved patients rose ~9×.
What clients say
"He monitors the full lead flow across systems and CRMs – data accurate, attribution clear, nothing falls through the cracks."
Ruben Mirakyan ↗ · Marketing Manager, luxury US healthcare clinic
| Break point | Symptom | Fix |
|---|---|---|
| Front desk never dispositions | Call volume looks healthy, CRM has no outcome | Disposition required before the record goes stale |
| Multi-location routing | Tracking number stripped before the call is logged | Preserve the number through the full routing path |
| No scheduled import job | Dispositions sit in the CRM, never reach Ads | Weekly (or daily) job pushing qualified outcomes back |
Questions owners ask
We already have call tracking. Isn't that enough?
Call tracking alone tells you a call happened and where it came from. Without the CRM outcome importing back, the ad platform still doesn't know if that call became a patient — it's bidding on ring volume, which correlates with patient volume loosely at best.
Does closing the loop require exposing patient data to Google Ads?
No. The only fields that need to make the trip are a click ID and a qualification outcome — booked or not, admitted or not. Clinical details and PHI stay in the CRM and never enter the ad platform's import.
How often should the import run?
Weekly is the practical minimum for most healthcare accounts; daily is better once call volume and budget are high enough that Smart Bidding is actively re-learning within the week. The usual constraint is staff bandwidth to disposition calls promptly, not the technical import.