The short version
- Most small businesses track leads up to the form fill or phone call, then lose the trail before the money comes in.
- You need four pieces working together: UTM tags, call tracking, form capture of source data, and a CRM that keeps the source attached to the deal.
- Phone calls are the biggest blind spot for local businesses, and dynamic number insertion closes most of that gap.
- The goal is a monthly report showing revenue by channel, not clicks or leads by channel.
Lead tracking means following each lead from the first time they find you to the day they pay you, and keeping a record of where they came from the whole way. Most businesses get halfway. They know Google Ads produced 84 calls last month. They know the website got 37 form fills. What they can’t tell you is which of those turned into $412,000 in closed jobs and which were tire-kickers, wrong numbers, and spam. Without that last step, you’re setting budgets on lead volume, and lead volume lies.
What full-funnel lead tracking looks like
Picture one customer. She searches “AC repair near me,” clicks your Google Ad, reads two pages, leaves, comes back three days later from a Google Business Profile listing, and calls. Your CSR books the appointment. The tech sells a $9,800 system replacement.
Good tracking captures every piece of that:
- The first touch (Google Ads, with the campaign and keyword)
- The converting touch (Google Business Profile)
- The lead type (phone call, with a recording)
- The booked appointment in your field service software
- The invoice amount when the job closes
When all five are connected, you can say Google Ads produced that revenue, or at least helped. When they’re not, the $9,800 shows up in ServiceTitan as “source: Google” or worse, “source: unknown.”
Step 1: Tag every link with UTMs
UTM parameters are tags added to the end of a URL that tell your analytics where a visitor came from. They look like ?utm_source=facebook&utm_medium=paid&utm_campaign=spring_tuneup.
Tag everything you control:
- Paid social ads
- Email campaigns and newsletters
- Your Google Business Profile website link (use utm_source=google and utm_medium=organic_gbp so you can separate it from regular organic traffic)
- QR codes on trucks, yard signs, and mailers
- Links in partner or directory listings
Google Ads handles this automatically through auto-tagging (the gclid parameter), as long as it’s turned on and your GA4 property is linked. Keep naming consistent. “Facebook,” “facebook,” and “fb” will show up as three different sources. A shared spreadsheet of approved UTM values saves a lot of cleanup later.
Step 2: Track phone calls properly
For home services, healthcare practices, and most local businesses, the phone is where the money is. At a lot of home service companies, phone calls outnumber form fills by a wide margin. If you only track forms, you’re blind to most of your marketing.
Call tracking software like CallRail, WhatConverts, or CallTrackingMetrics solves this with dynamic number insertion. Each visitor sees a tracking number tied to their traffic source, so when they call, the system knows they came from Google Ads, organic search, or a Facebook ad. It records the call, logs the caller’s number, and pushes the data into GA4 and your CRM.
You also need static tracking numbers for offline channels: one for your truck wraps, one for direct mail, one for your Google Business Profile, one for radio if you run it. Our guide to marketing tracking phone numbers explains the setup, and the call tracking software roundup compares the main tools.
One rule: score your calls. Not every call is a lead. Existing customers, vendors, and spam calls inflate your numbers. CallRail and WhatConverts both let you tag calls as qualified or not, manually or with AI scoring.
Step 3: Capture source data on forms
Your web forms should grab the visitor’s source data in hidden fields and pass it along with the name, phone, and message. At minimum:
- utm_source, utm_medium, utm_campaign
- gclid (for Google Ads)
- Landing page URL
- First-touch source, stored in a cookie so it survives a return visit
Most form builders (Gravity Forms, HubSpot forms, GoHighLevel, Jotform) support hidden fields. WhatConverts and CallRail’s form tracking can also capture this data for you. Test it by filling out your own form from a tagged link and checking that the values land in the CRM.
Don’t ask the customer “how did you hear about us?” and treat it as your main source of truth. People forget, guess, or pick the first option on the list. Use it as a secondary check.
Step 4: Keep the source attached in your CRM
This is where most setups break. The lead arrives with perfect source data, then a CSR creates a new customer record by hand in Jobber or Housecall Pro, and the source gets lost or overwritten with “website.”
Fixes that work:
- Integrate your call tracking and forms directly with your CRM or field service software so records are created automatically with the source attached.
- Lock the original source field so it can’t be overwritten later.
- Keep both a first-touch and a last-touch source field.
- Train your team on the one or two fields they must fill in when a lead comes in some other way.
- Make sure the closed invoice links back to the original lead record.
ServiceTitan, HubSpot, and GoHighLevel all have native or well-documented integrations with CallRail. If your stack doesn’t connect cleanly, Zapier or Make can fill the gap, though you’ll want someone checking those zaps monthly.
Step 5: Report on revenue, not leads
Once data flows end to end, build one monthly view. Looker Studio pulling from GA4, your call tracking tool, and a CRM export works for most small businesses. The columns that matter:
| Channel | Spend | Qualified leads | Booked jobs | Revenue | Cost per booked job |
|---|---|---|---|---|---|
| Google Ads | $ | # | # | $ | $ |
| Local Services Ads | $ | # | # | $ | $ |
| Organic and GBP | $ | # | # | $ | $ |
| Referral and repeat | $ | # | # | $ | $ |
Look at it monthly, adjust budgets quarterly. One month of data in a small business is noisy. Three months usually shows a real pattern. For more on choosing a model for credit across touches, see our marketing attribution guide.
Run one sanity check every quarter. Add up the revenue your report assigns to all channels and compare it to total revenue from new customers in your accounting software. If the report only accounts for 55% of it, the other 45% is leaking somewhere, usually untracked calls, walk-ins, or records created by hand. Find the leak before you trust the channel numbers enough to move budget.
FAQ
What’s the best lead tracking software for a small business?
For most local businesses, a call tracking tool like CallRail or WhatConverts plus a CRM or field service platform that integrates with it covers most of what you need.
How do I track leads that come from phone calls?
Use dynamic number insertion on your website and static tracking numbers for offline channels, then score calls so only real leads count.
Do I need GA4 for lead tracking?
It helps for website behavior and Google Ads data, but the revenue connection lives in your CRM. Use both.
How long does it take to set up?
A basic setup takes one to three weeks. Expect another month of cleanup before you trust the numbers.
If you want help connecting your leads to real revenue, our marketing analytics and attribution service is built for exactly this.
This is the Foxy account shared by our leadership team, Ethan, Jonathan and Helen. Our writing is inspired by situations we encounter (or would like to encounter) with our clients. We aim to post new articles about AI, SEO, PPC, marketing automation and all the other related topics that appear in our day-to-day marketing lives.




