Skip to content

Housecall Pro's lead source says “Google.” It can't tell you which campaign sold the job.

The field is a label someone picks from a list, the ROI Table divides by spend you type in, and the CallRail integration shows who is calling. A once-a-month phone number match turns all three into cost per sold job by campaign.

TL;DR

  • Housecall Pro's lead source is a label from a list you build. It sits on the customer and, separately, on each job and estimate. Day to day it gets there because someone picked it or because it is one of the 13 system sources Housecall Pro fills in by itself (a Housecall Pro tracking number is tied to a lead source too, but its help page doesn't say that source is written onto the job). Google Ads is not one of the 13, and nothing in the field records which ad was clicked, so a row called "Google" can't tell you which campaign sold the job.
  • The ROI Table on the Marketing Dashboard divides the revenue under each lead source by spend you type in by month. Every row is only as good as the lead source your CSRs picked.
  • The CallRail integration, as both companies' help pages describe it, shows the call in Housecall Pro and looks the caller up in your customer list. Neither page says it writes the campaign onto the job.
  • The campaign and the caller's phone number sit on the same row in Google Ads' call details report (for most calls longer than 15 seconds) or in CallRail's call log. Match those numbers to Housecall Pro jobs once a month, bulk-update the job lead source to the campaign, enter spend per campaign, and each campaign's spend divided by its sold jobs (completed jobs invoiced above your diagnostic fee) gives cost per sold job by campaign.

What does the Housecall Pro lead source field actually record?

Housecall Pro's help page opens with the field's purpose: "Our Lead Source field allows you to track where your customers found your business without having to use tags." It appears on the customer profile, on each job and on each estimate. The values come from a list you build under Settings → Lead Sources.

Going by Housecall Pro's pages, a lead source gets onto a record in two everyday ways, and a third may:

  1. Someone picks it. A CSR creating the customer, job or estimate chooses from the list. The Customers, Jobs and Estimates lists also have an "Update lead source" button for changing many records at once.
  2. Housecall Pro fills it in. "In some scenarios, we will automatically add the lead source if we know where they came from." The page lists 13 of these system sources: Google Reserve, My Website (Online Booking), Yelp, HouseCall Marketplace, the HouseCall app, Thumbtack, and seven other partner integrations.
  3. A tracking number may carry it. Housecall Pro's call tracking add-on ties each tracking number to one lead source: "When a customer calls in, you will know exactly where they found you because that call tracking number will be tied to your lead source." The setup page explains where to put those numbers: Google Business Profile, Facebook, HomeAdvisor, Angi, Yelp and Thumbtack. The page doesn't say whether that lead source is written onto the customer or job created from the call; check one test call in your account.

Three more things look like attribution and are not. The website Lead Form can ask "How did you hear about us?", but the page doesn't say the answer fills the lead source field. A tracking attribute on an online booking link means the job "will be tagged with the applicable tag", and a tag is not the lead source the ROI Table groups by. Local Services Ads leads land in a "Google" inbox where, in Housecall Pro's words, bookings from Local Services Ads and Reserve with Google "are not differentiated".

None of these records the ad click. If your CSRs pick "Google" for all of them, a customer who clicked your AC repair search ad and called the number on the page lands in the same "Google" row as the caller who found you on Maps and the Local Services lead. Housecall Pro's pages don't say which lead source, if any, a Local Services booking gets. Reserve with Google bookings get the system source "Google Reserve". Our reading: in a shop running Local Services Ads and two or three search campaigns, "Google" becomes the biggest row in the report and the one that tells you least.

What does the ROI Table do with that label?

The ROI Table sits under Marketing → Dashboard. Each row is a lead source. The default columns include marketing spend, new customers, new jobs, job revenue, amount paid, ROI and ROAS. "Cost per job" and "Jobs completed" can be switched on in column settings. Three things on Housecall Pro's page matter before you trust a row:

  • Spend is typed in by hand, by month and by lead source. ROI and ROAS show "--" until you enter it. There is a bulk import. The page describes no link to your Google Ads spend.
  • Two views read two different fields. The "New customers" view reads the customer lead source. The "New jobs, estimates, and leads" view reads the job and estimate lead source, and a job with no job lead source lands under "No lead source" even if the customer has one. For businesses that market to existing customers, Housecall Pro recommends filling in the job and estimate fields. In the accounts we run, search ads bring existing customers back too (what those clicks cost), so judge ads in the jobs view.
  • A month's row keeps changing after the month ends. For its completed-job count, Housecall Pro says the table uses jobs created in the selected dates that are now marked complete. Its own timeline has revenue starting to appear in months two to three and payments filling in by months three to four.

Does the CallRail integration with Housecall Pro fix it?

  • CallRail: it "sends calls from your chosen company directly to your Housecall Pro dashboard", with desktop notifications so you see each call arrive.
  • Housecall Pro: CallRail "can look up incoming phone calls to see whether the caller is already in your current HCP customer database." When an active or returning customer calls, a notification pops up, and clicking it opens the customer profile. The page lists an Essentials plan or above as a requirement.

Neither page describes sending job status or invoice amounts back to CallRail, and neither says the call's source reaches the Housecall Pro job. Our reading: going by these two pages, it tells a CSR who is on the line. Place one test call from a tracked number and look at the job before you rely on it.

CallRail does hold the campaign. Its source tracking page describes one tracking number per campaign, with each call logged with its source and the caller ID. What CallRail's Google Ads integration sends to Google as a conversion is a call or a form submission, not a job.

Where do the campaign and the caller's number sit together?

The key that joins an ad to a job is the caller's phone number. On the Housecall Pro side, use the exported dashboard report: the Exported Report Breakdown page lists its columns, including the customer's mobile and home phone, Amount, Job Status, and Finished (when "Finish" was clicked). Housecall Pro doesn't list the columns of the Jobs list export, and the drill-down columns listed on its Managing Reports page don't include a phone number. The ad side has to supply the campaign on the same row as that number.

  • Google Ads call details report. For calls to Google forwarding numbers, Google lists the start time, duration, campaign, ad group, search keyword and "Caller phone number (available for most calls longer than 15 seconds, except in India and Japan)". It sits under Insights and reports → Report editor → Call details, and needs call reporting switched on in account settings. Forwarding numbers appear on call assets, location assets and call ads, and on your website if you set up website call conversion tracking. One catch from the same page: with the "Ad group" column in the report, calls from Performance Max campaigns don't show.
  • Local Services leads. Google's page on the move into Google Ads lists "the ability to download your leads to import into your own CRM" among the features of the new Leads page, and says lead history, including customer contact details, carries over. The rest of that move is in what changes when Local Services Ads move to Google Ads.
  • CallRail's call log, if you use CallRail numbers in your ads or on your site. Google's call reporting page offers turning call reporting off for third-party tracking and says that "prevents Google Ads from tracking calls", so in that setup CallRail's log is your only list.
  • Forms need a tracker that records the source. CallRail's Google Ads page covers form submissions as well as calls.

A worked example: one "Google" row, split by campaign

These numbers are an illustration, not client data.

A shop runs Local Services Ads and two search campaigns, Repair and Replacement. In September it spends $4,000 on Local Services, $5,000 on Repair and $3,000 on Replacement. The office enters $12,000 against "Google" in the ROI Table. In late November, the jobs view's "Jobs completed" column shows 60 under "Google". $12,000 divided by 60 is $200 a job. That division is ours, not a number the table prints.

Then someone exports September's call details report and Local Services leads, exports Housecall Pro's dashboard report, and matches them by phone number. Every completed job in this example invoiced above the diagnostic fee, so each one counts as sold:

RowSpendCompleted jobsCost per sold job
Local Services Ads$4,00018$222
Search: Repair$5,00020$250
Search: Replacement$3,0004$750
No matching ad record—18—
All ads$12,00042$286

What the single row hid:

  • Almost a third of the "Google" jobs have no ad record. Some are Business Profile or organic callers. Some may be ad clicks that phoned the main number from the website, or calls too short for Google to log a number. The row credits the ads with all 18.
  • The ads cost $286 a sold job, not $200, 43% more than the single row suggested.
  • Replacement costs $750 a job. Whether that is too much depends on what those four jobs invoiced. Once each job carries its campaign as its lead source, the Job Revenue column answers that. The general arithmetic is in why cost per lead is the wrong number.

How do you get campaign rows into the ROI Table?

Create new lead sources. Don't rename "Google". Housecall Pro warns that "Editing a lead source will update all existing Leads with that name." Renaming "Google" to a campaign name would move every old organic job into that campaign. Add "Google LSA", one source per search campaign, "Google Business Profile" and "Google (unmatched)" instead. The CSR keeps asking how the customer found you; once a month the phone match overwrites the job lead source wherever it ties a job to an ad.

Give the Business Profile its own number, then check your Local Services routing. Housecall Pro's setup page shows how to make a tracking number the primary phone on your Google Business Profile, which separates Maps callers from ad callers. Google's migration page says phone number changes on the Business Profile sync to Google Ads within 24 hours, and that you can edit in Google Ads the number your call and message leads route to. Our reading: after the change, check which number your Local Services leads ring, or those calls may be credited to "Google Business Profile".

Define a sold job before you count. Our definition for this match: a job marked Done ("Finish" clicked) with an invoice above your diagnostic fee. Use the same definition every month.

Tag online bookings per campaign. Give each campaign's landing page its own booking link with its own tracking attribute. Housecall Pro's Managing Reports page lets you display the Jobs report by job tag, so those bookings can be counted per campaign without a phone match. Housecall Pro's system lead sources include "My Website (Online Booking)", which these bookings will likely carry, so in the monthly pass, use Update lead source to move each tagged booking to its campaign's lead source before you read the ROI Table.

What this doesn't cover

  • Sending sold jobs back to Google Ads so bidding learns from them. None of the Housecall Pro pages we read describe it. The Zapier integration's triggers are Job Scheduled and Job Finished, and its published field list includes the customer's mobile number and the job's total amount but not the lead source. What it takes to get a job into Google Ads as a conversion is in the Jobber piece; the logic carries over.
  • Customers who call from a different phone than the one on file. A phone match misses them, and they stay under whatever the CSR chose. So do forms that no tracker recorded.

Do this in your account

  1. Open the ROI Table (Marketing → Dashboard), switch to "New jobs, estimates, and leads", and note the revenue under "No lead source" and under "Google". Those are the rows the match has to split.
  2. Add campaign-level lead sources under Settings → Lead Sources. Leave the old "Google" source as it is.
  3. Check that Google Ads logs caller numbers: call reporting on in account settings, then Insights and reports → Report editor → Call details. If you don't use CallRail, open your landing page from an ad click and confirm it shows a Google forwarding number; that needs website call conversion tracking. Without it, callers who dial from your site never reach the call details report. On CallRail, confirm each campaign has its own number or the website pool is live.
  4. Each month, once most of the month's jobs are complete, export three lists: the call details report, the Local Services leads, and Housecall Pro's Jobs report. Open Dash, click the eye icon on the Jobs card, set the date range, then click the Excel icon and choose Download CSV. The Exported Report Breakdown page lists its columns.
  5. Match by phone number, then select the matched jobs in the Jobs list and use "Update lead source" to set each one's campaign. The export's Invoice Number column tells you which job each match is.
  6. Enter each campaign's spend for the month against its lead source in the ROI Table.
  7. Work out cost per sold job by campaign: each campaign's spend divided by its jobs that meet your sold-job definition. Housecall Pro doesn't say how its optional "Cost per job" column is calculated. Before ranking by it, check one row against Marketing Spend ÷ New Jobs; if they match, the column divides by every new job, finished or not. Rank campaigns by cost per sold job next to a cost-per-lead ranking from Google Ads. Where the order flips, cost per lead has been steering the budget wrong. The rest of the account is covered in the 30-minute Google Ads audit checklist.

FAQ

Does Housecall Pro track Google Ads? Not Google Ads search campaigns, going by its help pages. They describe Google connections for Local Services Ads, Reserve with Google and your Business Profile, and a lead source field set by hand or by one of 13 system sources. The campaign comes from Google Ads' call details report or a call tracker, matched to Housecall Pro jobs by phone number.

Does the CallRail integration set the lead source in Housecall Pro? Neither company's help page says it does. What they describe is the call appearing in Housecall Pro and a lookup against your customer list, on an Essentials plan or above. Test one tracked call before relying on it.

Why is so much revenue under "No lead source" in the ROI Table? Housecall Pro says it "usually means the applicable lead-source field was not completed." The customer view reads the customer's lead source and the jobs view reads the job's, so a customer with a source can still have jobs under "No lead source".

Why doesn't the ROI Table match the Job Revenue Earned report? They count different jobs. In its completed-job count, the ROI Table includes jobs created in the period that are now complete. Job Revenue Earned counts jobs completed in the period, whenever they were created.

Sources

All read in full on September 24, 2026. Every quotation above is from these pages.

Request your free strategy

One page, five details, no card and no call.

Would rather talk it through? Ask for a callback on the form and pick a window. The person who would run your account calls you, not a salesperson.

This sets the testing pace. There is no minimum.

A good callback window or the first problem you want us to look at

No card and no call. Read-only access only.