How to Track Lead Source in a Field Service CRM
Lead source tracking is the foundation of every marketing ROI decision. Here is how to set it up in Jobber, Housecall Pro, ServiceTitan, and Workiz, and what breaks if you skip it.
Key takeaways
- Lead source tracking requires a standardized list of 6 to 8 sources and consistent intake tagging. Without both, the data is useless.
- Most field service CRMs have a lead source field on the customer or lead record. Most businesses do not populate it consistently.
- Close rate by lead source is only meaningful if lead source is tagged on every lead, not just the easy ones (referrals always get tagged, Google Ads often doesn't)
- Phone number tracking (one number per channel) automates lead source attribution without requiring intake staff to ask or remember
- The cost per booked job by source is the metric that determines where to spend the next marketing dollar, and it requires lead source data to calculate
You cannot calculate cost per booked job without lead source data. You cannot calculate close rate by channel without lead source data. You cannot make a rational marketing budget decision without lead source data. And yet, most home service businesses have lead source data that is 40 to 60% complete, inconsistently tagged, and effectively useless for analysis.
Here is how to set up lead source tracking correctly in each major CRM and what to do with the data once it exists.
Step 1: Define your standard source list
Before you configure anything in your CRM, agree on the 6 to 8 sources you will track. More than 10 is too many for consistent intake execution. Fewer than 5 misses meaningful distinctions.
A standard list for most home service businesses:
| Source | What it covers |
|---|---|
| Google Organic | Calls/forms from Google search results (non-paid) |
| Google LSA | Google Local Services Ads calls and leads |
| Google Paid | Google Ads (non-LSA) clicks and calls |
| Referral | Customer or partner referrals |
| Repeat Customer | Returning customer who has booked before |
| Angi/Thumbtack | Any lead aggregator platform |
| Social Media | Facebook, Instagram, Nextdoor |
| Other | Everything else (door hangers, yard signs, direct mail) |
Create this list before touching CRM settings. Train your intake staff on what belongs in each bucket. Document it in a one-page reference.
Step 2: Configure lead source in each CRM
Jobber: lead source is a custom field you add to the Client record. Go to Settings → Custom Fields → Add Field to Client. Name it "Lead Source." Set it as a dropdown with your standard source list. Train intake staff to populate it when creating a new client record.
One limitation: Jobber's lead source field lives on the Client, not on the individual Job or Quote. If a returning customer calls from a different source, Jobber does not track source at the job level. For most businesses, this is acceptable. For businesses with heavy return customer traffic, a separate "Job Source" custom field on the Job may be needed.
Housecall Pro: Housecall Pro has a native "How did you hear about us?" field on the customer record in some plan tiers. Check Settings → Customer Fields. If it is not enabled, add it as a custom field. Use the same dropdown list as above.
ServiceTitan: lead source is tracked in the Customer record and on the Booking. Go to Settings → Lead Sources and configure your approved list. The Booking field allows you to attribute a specific booking to a source, which is more granular than the customer-level tracking in Jobber.
Workiz: custom fields are available on the Lead and Client record. Add a "Lead Source" field with your approved dropdown. The field is then available for filtering in the Leads and Jobs sections.
GoHighLevel: Opportunities have a built-in source field. More importantly, GoHighLevel's funnel tracking can automatically set the lead source based on which form, landing page, or ad campaign the lead came from, removing the manual tagging burden entirely.
Step 3: Use phone number tracking for automatic attribution
Manual tagging has a ceiling: intake staff remember to ask and tag when it is convenient, not consistently. Phone number tracking removes the manual step.
Assign a unique tracking number to each source:
- One number in your Google LSA profile
- One number in your Google Ads campaigns
- One number on your Angi profile
- One number on your website (catches organic and direct)
- One number on your yard signs or print materials
When a call comes in through a specific number, the CRM (if your phone system integrates with it) automatically tags the lead with the source tied to that number. CallRail, WhatConverts, and CallTrackingMetrics all provide this capability and have integrations with major field service CRMs.
Cost: $50 to $150 per month for a small number pool with basic reporting. This is the single highest-ROI investment in your marketing measurement stack.
What to do with the data
Once you have clean lead source data (at least 90 days of consistent tagging), three reports become meaningful:
Cost per lead by source. Monthly spend on each channel divided by leads generated from that channel. Tells you where leads are cheapest.
Close rate by source. Accepted quotes divided by total quotes sent to customers from each source. Tells you which sources produce buyers vs. shoppers. A source with low cost per lead but 15% close rate may cost more per booked job than a source with high cost per lead but 55% close rate.
Cost per booked job by source. The decision metric. Monthly channel spend divided by jobs booked from that channel. This is what determines where to put the next marketing dollar.
Text Clint: "What was my close rate by lead source last quarter?" "Which lead source had the lowest cost per booked job in March?" "How many new customers did we get from Google vs. referral this month?"
For the full CRM reporting framework, see home service CRM reporting. For how lead source tracking connects to the overall marketing dashboard, see home service dashboard metrics.
How Clint Closes the Attribution Loop
Lead source data lives in your CRM. Ad spend lives in Google Ads, Meta, and Angi. Tying them together to calculate cost per booked job requires an export from each platform, a shared date filter, and a manual join. Most owners calculate it once a quarter.
Connect your ad platforms and CRM to Clint. Ask "what is my cost per booked job from each lead source this month?" and Clint joins spend data and booking data and returns the cost-per-job by source. Ask "which lead source had the best close rate last quarter?" and Clint answers from your actual job history.
Sources
Frequently Asked Questions
4 questions home service owners actually ask about this.
01What is the most important lead source to track for an HVAC business?
Google LSA (Local Services Ads) and referrals together typically drive 50 to 70% of revenue in a well-run residential HVAC business. Both need distinct tracking: LSA is tracked automatically if you use Google's reporting, but the booked job outcome needs to be in your CRM to calculate cost per booked job. Referrals are the easiest to forget to tag.
02Can Jobber automatically track where customers come from?
Jobber does not have automatic lead source attribution. It relies on manual tagging at intake. For automatic attribution, you need a phone tracking system (CallRail, CallTrackingMetrics) that pushes source data into Jobber via webhook or Zapier. ServiceTitan has the most native integration between marketing campaigns and lead source tracking.
03How do I convince intake staff to tag lead sources consistently?
Make it a required field in your CRM (so they cannot save the record without filling it in). Train with examples (what counts as "referral" vs. "repeat customer"). Review the data monthly and give feedback when you see unusual distributions ("Why did we have 45 'Other' sources last month?"). Consistency is a process problem, not a technology problem.
04What if I cannot tell where a lead came from?
If a customer does not remember and you have no tracking data, tag it as "Unknown" rather than guessing. A large "Unknown" bucket (over 10%) is a data quality signal to investigate. Causes: intake staff skipping the field, customers coming through channels you have not set up tracking for, or form submissions that are not capturing UTM parameters.
See Clint in action
Clint is the pre-built AI for home service shops. Connect your CRM, email, and phone system in minutes and the agents run on your real data.