Marketing attribution
Housecall Pro Lead Source Tracking From the Ad Click to the Paid Invoice
Open the lead source report in a typical Housecall Pro account and one word does most of the work: Google. It covers the paid ad, the map listing, the Local Services Ad and the booking button on the business profile. That word is true and nearly useless.
November 3, 2026 · 8 min read
The short answer
Housecall Pro records a lead source on customers, jobs and estimates, adds system sources for online booking and Google, and reports jobs and estimate conversions by source. It does not connect to Google Ads conversions. To see which ads produce paid jobs, the website captures the click ID and UTM tags, writes them to the lead, and reports paid jobs back to Google.
On this page
- One word, four channels and a budget decided by feel
- What Housecall Pro already records about where work came from
- Naming sources so the report reads like a sentence
- Carrying the click from the landing page into the lead
- Closing the loop: telling Google Ads which jobs got paid
- The monthly page an owner can read in two minutes
One word, four channels and a budget decided by feel
The owner of a six-truck HVAC shop spends money in four places that all say Google: search ads, Local Services Ads, a Google Business Profile with a booking button, and the organic results for his service pages. At month's end he wants to know which one to feed. Housecall Pro tells him, accurately, that many jobs came from Google. Housecall Pro's help center even explains why it cannot say more: bookings from Local Services Ads and Reserve with Google arrive under one Google channel and are not told apart there.
Nobody did anything wrong. Field software records what it is told, and in most shops nobody tells it anything precise. This page covers what Housecall Pro records on its own, where the trail goes cold, and how a website hands it the missing detail. It belongs to our Housecall Pro integration section; the general problem has its own page under tracking problems.
What Housecall Pro already records about where work came from
Housecall Pro's lead source feature is solid, and worth using fully before buying anything. Its lead source article describes lead sources on customers, jobs and estimates, custom sources you create, archive or delete in Settings, a bulk update option on each list, and three reports: jobs by job lead source, jobs by customer lead source, and estimate conversion by estimate lead source. Some sources are added by the system and cannot be edited.
| Channel | What Housecall Pro records natively | What is missing |
|---|---|---|
| Book online button on your site | The system source My Website (Online Booking); tracking attributes on a link add a Job Tag | Which ad, keyword or campaign preceded the booking |
| Lead Form on your site | A lead in Job Inbox; a How did you hear about us? answer if you add that field | Anything the visitor did not type, including the ad click |
| Reserve with Google | The system source Google Reserve | Separation from Local Services Ads in the Google channel |
| Local Services Ads | LSA leads created as Leads in Job Inbox, under the Google channel | Separation from Reserve with Google; Housecall Pro points you to your LSA account for detail |
| Phone calls | With CallRail connected, a pop-up when a known customer calls | In the sources we read, no call source written to the job |
| Search and social ads | Nothing, unless someone picks a source by hand | The click ID needed to report results back to the ad platform |
Read the right-hand column and a pattern appears: everything missing is something that happened before the customer reached Housecall Pro. That is website territory, and our Housecall Pro online booking page shows where the booking side of it starts. Housecall Pro's tracking attributes are a good start for links you control, such as a booking link in an email; they tag the job, which shows in the customer profile. They do not carry a click ID back to Google Ads.
Naming sources so the report reads like a sentence
Before any code, agree on names. A report is only as useful as its labels, and a website that invents a new source for every ad group buries the signal. These rules keep a Housecall Pro lead source list short enough to read and specific enough to act on.
- 1.Name the channel and the vehicle, not the platform alone: Google Search Ads, Google Organic, Google Business Profile, Local Services Ads.
- 2.Keep campaign detail out of the source name; it goes into tags and the lead note, where it does not multiply the list.
- 3.Give each website form its own tag, such as emergency request or estimate request, so you can compare forms without new sources.
- 4.Keep the system sources Housecall Pro adds, and do not create look-alikes that split the same channel in two.
- 5.Write the rules down and give the office the same list, so hand-entered phone leads match web leads.

Carrying the click from the landing page into the lead
On the Max plan, Housecall Pro's API lets the website do the remembering. The visitor lands from an ad with UTM tags and, for Google Ads, a Google Click ID in the address. The site stores those on its own server the moment the page loads, before the visitor wanders to a second page. When the form or booking step submits, the site writes them into Housecall Pro: the agreed source into lead_source, campaign and form into tags, and the click ID and landing page into the note. The record in Housecall Pro now carries what the office never saw.
Calls need their own thread. Housecall Pro's CallRail connection, as its feature page describes it, looks up whether a caller is already a customer and pops a notification. It does not, in the sources we read, write the call's marketing source into Housecall Pro. So call tracking numbers on the site do the attribution work in CallRail or a similar tool, and the office picks the matching source when it books the job by phone. It is not perfect; it is honest. The ServiceTitan call tracking page shows how a heavier platform handles the same problem.
Closing the loop: telling Google Ads which jobs got paid
Housecall Pro lists no Google Ads conversion feature in the sources we read, a gap our three-platform comparison also notes, so the website closes the loop. Google's own help pages describe the method: Google Ads assigns a Google Click ID to each ad click, you store it with the lead, and later you give it back to Google Ads with the conversion details. Google also notes a 2026 change worth knowing: starting June 15, 2026, offline conversion imports and enhanced conversions for leads uploads move to the Data Manager API and are blocked in the Google Ads API. Anything built before then needs checking.
- 1
Capture on landing
The site stores the Google Click ID and UTM tags server-side the moment the visitor arrives.
- 2
Write it to the lead
The form or booking step creates the Housecall Pro lead or job with the agreed source, tags and a note holding the click ID.
- 3
Listen for money
On Max, Housecall Pro's webhooks send job.paid and invoice.paid events, signed so the site can verify them.
- 4
Match and report
The site matches the paid job to the stored click ID and sends the conversion and its value to Google through the route Google currently requires.
- 5
Read it monthly
Google Ads now optimizes toward paid jobs instead of form fills, and the owner reads spend against revenue by campaign.
Our conversion tracking setup service does this work, and our PPC advertising team runs the campaigns that use it. For the ad side in more depth, the Google Ads library covers costs and keywords.
The monthly page an owner can read in two minutes
Here is the shape of the report we hand a Housecall Pro shop. The rows are the agreed sources; the columns come from Housecall Pro records joined with ad spend. We show the columns, not numbers, because your numbers are the only ones that matter.
| Column | Where it comes from | Why it is there |
|---|---|---|
| Spend | Google Ads, Local Services Ads and Meta accounts | The cost side of every row |
| Leads and bookings | Housecall Pro leads and jobs, by lead source | Volume before quality |
| Jobs scheduled | Housecall Pro job.scheduled events | How many leads turned into work on the calendar |
| Estimates approved | Estimate option approval events | Close rate for replacement and install work |
| Revenue paid | Housecall Pro invoice.paid events | The only number that pays the bills |
| Revenue per dollar | Revenue paid divided by spend | The column that moves budget |
The same join of field data with ad data is what HomeService WebApp does for estimates and follow-ups, on top of ServiceTitan rather than Housecall Pro. Attribution work on an existing site starts at $575, depending on complexity, after a free review; a new site with tracking built in starts at $1,500 on our web design pricing page. Local marketing programs start at $575 a month, with ad spend billed by Google to you. Jobber shops can read the Jobber attribution guide. Or start with a free site audit and call (210) 346-0848.
Questions contractors ask about Housecall Pro integration
Create your sources in Settings under Lead Sources, set them on customers, jobs and estimates, and use the reports for job lead source, customer lead source and estimate conversion by estimate lead source. Housecall Pro also adds system sources automatically, such as My Website (Online Booking) and Google Reserve, which cannot be edited.
Housecall Pro's help center says bookings from Local Services Ads and Reserve with Google appear together under the Google channel and are not differentiated there. It suggests checking your Local Services Ads account for booking-type detail. A website cannot change that channel, but it can keep its own traffic separate.
Not in the Housecall Pro pages we read, as of November 2026. To report paid jobs to Google Ads, the website stores the Google Click ID with the lead, listens for Housecall Pro's paid-job webhooks on the Max plan, and sends the conversion to Google. Google moved those uploads to its Data Manager API starting June 15, 2026.
Housecall Pro's online booking article describes tracking attributes rather than UTM tags. Add an attribute to a booking link and the resulting job or estimate is tagged, showing in the customer profile as a Job Tag. For UTM tags and click IDs, a custom booking step or form writes them into the lead through the API.
Housecall Pro's CallRail page describes a caller lookup: CallRail checks whether an incoming caller is already a customer and Housecall Pro shows who is calling. It does not describe writing the call's marketing source onto a job. Attribution for calls stays in CallRail, and the office picks the matching source when booking.
Kairos · AI chat and booking
Book the job while the visitor is still on the page
Kairos answers questions from your own services, hours and published prices, offers real open times and books the appointment in the chat, at 2 p.m. or 2 a.m. Today it books into a Google or Microsoft 365 calendar; booking straight into Housecall Pro is rolling out. Clio, its dashboard, shows which pages and ads turned into bookings.
Keep reading
- The API, explainedThe Housecall Pro API, Endpoint by Endpoint, for Owners Who Will Never Read ItWhat the Housecall Pro API reads and writes, who can create a key, what the Max plan includes, how webhooks are signed, and what the public docs leave out.
- Online bookingHousecall Pro Online Booking on Your Website: Keep the Modal or Build the FlowHousecall Pro's Book online button against a custom booking step that reads its open windows: what each does, when each wins, and what the build costs.
- Lead formsHousecall Pro Lead Forms That Ask Less and File MoreGet website requests into Housecall Pro as leads: the native Lead Form, the Zapier limit, and a custom form on Max that matches customers, keeps the source.
- Everything in Housecall Pro IntegrationSee the section
Find out which of your ads produce paid jobs
Tell us where you spend and how sources are set in Housecall Pro today. We will show where the trail goes cold and price the fix.
Which of these sounds like you? (pick any)
Rather talk now? Call (210) 346-0848.