Fixing ServiceTitan tracking and cutting CPA 44% at a $20M home services company
NuBlue was under significant financial pressure. Growth had stalled, monthly ad spend was running as high as $300k, and nobody could say which channels were producing customers and which were burning cash. My mandate walking in was to fix the tracking, figure out why growth had stalled, and determine whether the marketing dollars were being spent wisely.
The tracking system was a complete mess. There were over 700 tracking phone numbers in ServiceTitan and their usage was basically random. Many were attributed to the wrong market or the wrong trade, so a Greenville plumbing number might show up as Lake Norman electrical. Because the per-campaign numbers were so unreliable, the team had defaulted to single catch-all numbers for everything. That left the call center with no visibility into where calls were coming from, and it made the backend attribution fiction. Some numbers (Angi and the Google Business Profiles) weren’t even in ServiceTitan. They were just Dialpad numbers that never touched the CRM.
The phone stack made it worse. The call center ran on Dialpad plus an AI answering product. Dialpad had no easy or accurate way to integrate with ServiceTitan, so there were big discrepancies in call volume and duration between the two systems. The AI answering layer was a liability on its own, and consumers hated it. With no IVR in place, spam and bot calls flowed straight through and got reported back to Google and Meta as conversions, which trained the ad platforms to go buy more junk. Business Units didn’t work at all because of the attribution issues, so the marketing dashboard and the business unit dashboards were completely useless.
First, I moved the call center off Dialpad and onto ServiceTitan’s native calling platform, and we ended the AI answering product. I built the new call flows and queue structures from scratch. Native calling integrates directly with the rest of ServiceTitan, so call volume, durations, and outcomes finally lived in one system. The transition was seamless for the call center team.
The new IVR routed every caller to the right team by trade and by market, and it included a no-response option that stopped most bots before they ever reached an agent. I then implemented CallRail as a layer between the call center and the ads platforms, because CallRail lets you set a minimum call duration before a call qualifies as a lead. We set an aggressive 60-second minimum. Bots that failed the IVR were excluded from the conversion data sent back to Google and Meta, and the platforms started optimizing toward real customers. CallRail also handled swapping numbers on the website based on visitor IP location.
Then the number system itself. We mapped out local area code numbers for every profile and collapsed 700+ chaotic numbers down to around 100 properly tracked ones. For each market and trade combination (four markets, three trades), every profile got its own dedicated line: main line, Google Business Profile, LSA, Yelp, Google Ads, Meta Ads, OTT, and Angi. Each number mapped to the correct ServiceTitan campaign and routed to the call center in a way that showed agents the lead source and location on every inbound call.
With source data finally reliable, I rebuilt Business Unit attribution so leads, booked sales, and recognized revenue rolled up to the correct trade and market. Leadership got dashboards they could actually trust.
Spend was cut channel by channel based on real performance data. We cut Angi entirely and scaled back LSA accounts that had clearly hit diminishing returns. Lead volume stayed steady on half the spend, resulting in a much lower CAC. Spam calls dropped sharply, the conversion data reaching the ad platforms reflected real customers, and the call center could finally see where every call came from.
The hardest part wasn’t technical. In a business under financial pressure there was real fear that cutting ad spend would mean fewer leads. I had to make the case channel by channel with the new attribution data. Once people could see exactly which dollars produced customers and which didn’t, cutting the waste stopped feeling like a gamble.
Spending ad dollars blind?
If your call tracking, attribution, or Business Unit reporting doesn’t add up, that is the exact problem I solve.
Get in touch