SmileLineDocs
Lead capture

Call tracking

Rotating phone numbers that swap into your website and attribute every call to the campaign that drove it.

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.

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.

Choose where calls forward. The default is the location's own phone number. If you forward to one of your SmileLine Voice numbers, calls ring your devices directly instead of dialling out.

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. When every number is held by a recent visitor, new visitors simply see your real number — pool size is the dial to turn if that happens often.

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.

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 on a page 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. A visitor who already holds a tracking number keeps the swap rules that came with it for up to 30 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.

What shows up in the CRM

  • Today — a new-lead task for every lead-eligible call, missed calls included.
  • 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.
  • 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.

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. Releasing a number stops its monthly charge immediately; released numbers cannot be recovered.

On this page