Smileline
Lead capture

Call tracking

Phone numbers that attribute every call — rotating numbers for your website, and static numbers for the adverts you print.

Most patients still pick up the phone. Call tracking closes the gap web forms leave: a visitor who arrived from an ad sees a dedicated tracking number on your site, and when they call it, SmileLine knows exactly which campaign, keyword and click brought them — the same attribution a form submission gets.

Call tracking is part of the core plan. There is no add-on to enable: you pay only for the numbers you hold and the minutes you use, listed on the billing page.

How it works

  1. You create a tracking pool and buy a few numbers into it.
  2. The website tracking script you already installed swaps your published phone number for one from the pool, per visitor. Each visitor keeps their number for a few hours after their last visit, so a same-day callback still matches.
  3. When the number is called, SmileLine answers, records, and forwards the call to your practice. The caller's web session — UTM parameters, click IDs, landing page — is attached to the call.
  4. The call becomes a lead: a known caller is matched by phone number; an unknown caller becomes a patient with a journey and a Today task, exactly like a form submission. Missed calls become leads too — a missed call is someone to ring back.

Every tracked call is logged and recorded, and transcribed when the transcription switch is on.

That is the rotating pool your website uses. Anything printed — a leaflet, a newspaper advert, a radio slot, your Google Business Profile — has no website visit to read, so it gets a static tracking number instead: one number, one lead source, no rotation. See Track printed and offline ads.

Set up a pool

Go to Settings → Call tracking (you need a role that manages phone settings) and click New pool.

Name it after the audience — for example “Website — Google Ads”. One pool per website is a fine start; add more when different pages should forward to different places. Up to ten pools can be live at once — archive one to make room. Archiving stops the pool's numbers being swapped into the page; calls to the numbers it still holds keep forwarding, and those numbers keep billing until you release them.

Choose where calls forward. The default is the location's own phone number — a live pool needs a location with a phone number in the practice's country, and saving refuses otherwise rather than leaving callers with a busy tone. If you forward to one of your SmileLine Voice numbers, calls ring your devices directly instead of dialling out. Forwarding to a number outside the practice's country isn't supported yet. This destination is also the pool's safety net: if SmileLine itself is ever unavailable, calls to the pool's numbers are forwarded straight there, and each one is written to the review queue within the hour so you can ring the caller back. It updates by itself within about five minutes of a change here or to the location's phone.

Pick what new enquiries become. The treatment is required while the pool is live — it is what guarantees an unknown caller turns into a journey on the board and a task in Today.

Choose where the number appears. Under Where the tracking number appears on your website pick any mix of three ways — all optional:

  • Replace every phone number on the site (off by default) — the script finds every phone-shaped number on the page, in text and tel: links, and swaps them all for this pool's number. Only one live pool per practice can have this on; saving a second fails with “Another live pool already replaces every number on the site”.
  • Specific numbers to replace — list the numbers currently shown on your site in international form (+44…); only those are swapped.
  • Tag the elements yourself — mark any phone link or text element on the site and the script fills it, no number list needed. See Mark the elements on your site.

Buy numbers into the pool. Two or three numbers cover a typical site; busy campaigns need more. A visitor keeps their number for four hours after they were last seen (30 minutes if they never came back, so crawlers and one-page visits don't hold numbers all day), and a freed number waits ten minutes before it is handed to someone else. Sized against real traffic: at four new visitors an hour a pool of three numbers shows a tracking number to more than 85 % of them, and two numbers cover a quieter site with two an hour. When every number is held, new visitors simply see your real number, the pool shows All numbers held, and the card counts the page loads it could not serve — N unserved requests today / this week — so you can see whether it happens once a week or every afternoon. Pool size is the dial to turn if it does. Anyone who knows your public site key could hold numbers the same way; the page always keeps working, and the badge and the counter are how you'd notice.

Every number the practice holds — pool members, static numbers and phone-system lines — is listed together on Settings → Phone numbers, with the role each one plays. Release a number, or move one between roles, from there; this page keeps the pools themselves.

UK numbers need approved business verification first (an Ofcom requirement). One verification covers Voice numbers and tracking numbers alike — start it from the banner on the Call tracking page, and click View review there to see the reviewer's verdict on each detail, their messages, and to fix anything declined. See Complete UK verification.

Use Replace every phone number on the site only when the site shows a single practice number. Every number it swaps forwards to this pool, and it also rewrites other phone-shaped numbers on the page — a partner practice's number, an NHS helpline — so those callers reach you instead.

Mark the elements on your site

Add class="sl-phone" (or the attribute data-sl-phone) to any phone link or text element. The script fills its text and its tel: link — the element itself when it is the link, otherwise the link around or inside it — with the visitor's tracking number:

<a href="tel:+442079460958" class="sl-phone">020 7946 0958</a>

With several pools, data-sl-phone="<pool id>" picks which pool the element shows — the id is displayed in the pool dialog.

The script processes roughly the first 2,000 text nodes that contain a digit on a page (indentation and prose cost nothing) and watches content added during the first 10 seconds after load, so keep phone numbers in the page's own markup rather than in late-loading widgets. It only ever rewrites a run that is exactly one of the numbers a pool lists — a number glued to other digits, like an opening-hours line, is left alone rather than damaged. A visitor who already holds a tracking number keeps the swap rules that came with it for up to 10 minutes, so a change to these settings reaches returning visitors after that.

Qualify callers with a menu

If regulars keep calling the tracked number, add the optional caller menu on the pool: for example “Press 1 if you're an existing patient, or 2 for new enquiries.” Every caller is still forwarded, recorded and logged, but only the keys you mark as new-enquiry create a lead. Existing patients who match by phone number get the call attached to their timeline instead of a fresh lead in Today.

You choose what silence means: treat a caller who presses nothing as a new enquiry (the default — nothing genuine is dropped) or just log the call.

Track printed and offline ads

A pool answers the question which campaign sent this visitor to my website. A leaflet, a press advert, a radio slot or your Google Business Profile listing has no visit to read, so a pool cannot attribute it — a caller with no web session is simply recorded as Phone call.

Give each of those its own static tracking number instead: one number, printed in one place, pinned to one lead source. Every call to it is attributed to that source, however the caller found it.

Website poolStatic tracking number
Who sees the numberone website visitor at a time, swapped in by the scriptwhoever reads the advert
Attributionthe visitor's campaign, keyword and clickthe one lead source pinned to the number
Forwarding, treatment, locationtaken from the poolset on the number itself
Caller menuoptionalnot available
Good forGoogle Ads, Meta, organic search, any web campaignleaflets, press, radio, vehicle livery, directory listings, your Google Business Profile

Set one up

Get the number. Click Buy number on any pool on this page to order one, or use a number you already hold.

Go to Settings → Phone numbers, click Change role on that number and choose Static tracking number. See Change a number's role.

Pick the lead source every call to it is attributed to. Make one per advert — “Autumn leaflet”, “Metro half-page” — so the reports separate them. Add them under Settings → Lead sources first if they don't exist yet.

Pick the treatment a new enquiry becomes and the location the call belongs to, and optionally the number calls forward to. Leave forwarding empty and calls go to that location's own phone.

Print the number on the advert.

Static numbers behave like pool numbers everywhere else: calls are answered, recorded, forwarded and — with the transcription switch on — transcribed, and they reach Today, the timeline and the review queue in the same way. They are not in a pool, so they don't use up your ten-pool allowance and the website script never shows them. Because there is no caller menu on a static number, every caller who isn't already a patient becomes a new enquiry from that source.

While a static number is live it holds on to what it points at: you can't archive that lead source, treatment or location, and you can't clear the location's phone number while the number follows it. Change the number's settings first, or release it.

Read a static number's figures as new patients this advert brought, not everyone who rang it. A patient's Lead source is set once, when SmileLine first creates their record, so a first-time caller is acquired under the advert's source and counts there in acquisition reports. Someone who already enquired months ago keeps the source they arrived with — their call still lands on their timeline, and the touch still records the advert, but the report doesn't move them.

What shows up in the CRM

  • Today — a new-lead task for every lead-eligible call, missed calls included. A caller Smileline could not tie to a web session shows as an Incoming call at the top of New · Call now; a caller it could tie to one keeps that web source and sorts by time with the other new leads.
  • The patient timeline — the call with its duration, outcome, recording and transcript.
  • Attribution — the visitor's UTMs and click IDs on the lead touch, so conversion feedback reports the call to Google or Meta like any other lead. A new caller's Lead source is worked out from that campaign data — see How the lead source is chosen; a caller with no web session (someone who typed the number from a leaflet) gets the practice's Phone call source. A call to a static tracking number skips all of that and is attributed to the source pinned on the number.
  • The review queue — the rare call that could not become a lead by itself, such as a withheld number; listen to the recording and follow up by hand.
  • The Calls report — answer rate, ring time, calls by hour, the UTM source / campaign / keyword behind each call and the missed calls nobody rang back. See Calls.
  • A caller-ID label in the call log — where the carrier reports the call's STIR/SHAKEN attestation, the Desk call log shows Caller ID verified, Caller ID attested, Caller ID via gateway or Caller ID unverified on the row. It is a hint for the person answering, nothing more: an unverified caller with a real number is still logged, recorded, captured as a lead and followed up like everyone else. Only a withheld or unusable number keeps a call out of the pipeline, and that call is parked in the review queue where you can see it.

Send tracked calls to GA4

Google Analytics only sees what happens in the browser, so a visitor who reads your number and picks up the phone is a conversion GA4 never records. Connecting your GA4 property sends each attributed tracked call to it as a phone_call event, stitched to the same visitor and session the tracking script saw — so the call lands in the same reports, funnels and audiences as your web form submissions.

In GA4 open Admin → Data streams, pick your web stream, and copy its Measurement ID (G-…). Under Measurement Protocol API secrets, create a secret and copy the value.

On Settings → Call tracking, under Google Analytics 4, paste both and click Connect. The secret is stored encrypted and never shown again; to rotate it, paste the new one and Save.

What is sent: the visitor's GA client and session ids (the same ones the tracking script reads from your GA cookies), the time of the call, whether it was answered, the talk and ring durations, and a stable event id per call so a retry can never count twice. Nothing about the caller — no phone number, no name — leaves SmileLine. Personalised advertising is switched off on every event.

Only calls with a web session are sent: a caller with no session, or a visitor whose consent setting or browser kept the GA cookie from being stored, has nothing to stitch to and produces no event. Events are delivered within about five minutes and retried for up to three days, which is as far back as GA4 accepts them; a call that could not be delivered in that window is skipped and counted on the settings card, and saving the GA4 settings re-sends anything that is still deliverable.

Pricing

Call tracking bills three things, all usage-based and shown on the billing page: a monthly charge per held number, a per-minute rate for answered tracked calls (both call legs and the recording included), and a per-minute rate for transcription. Both pool members and static numbers cost the same per number. Releasing one from Settings → Phone numbers stops its monthly charge immediately; released numbers cannot be recovered.

When nobody answers a tracked call

A tracked call is forwarded to the practice like any other. If nobody picks up and the practice has Smileline Voice, the caller hears the practice's voicemail greeting and can leave a message — it lands in the voicemail inbox exactly like a call to the practice's own number, and the enquiry is still captured with its campaign attribution. Without Voice, the caller hears a short notice and the call is logged as missed; either way the missed-call follow-ups (text-back, call-back) apply to tracked numbers too.

On this page