HOME/OUR WORK/GOOGLE ADS · HUBSPOT · AI AUTOMATION
B2B Services — Commercial HVAC & Building Maintenance ContractorUnited States · Commercial and light-industrial buildingsSearch & CRM rebuild · Composite case

From Calls to Contracts: How a Commercial HVAC Contractor Tied Google Ads to Signed Service Agreements

A commercial HVAC and building-maintenance contractor (name anonymised) lived on the phone. Emergency repairs paid the bills, but the profitable work was recurring service agreements for offices, clinics and warehouses, and nobody could say which ads brought those. We separated urgent searches from planned-maintenance searches, put every call and quote request into HubSpot, and automated the follow-up that used to depend on whoever had time. This is a composite case: client details are anonymised and illustrative, and no measured figures are implied.

From a ringing phone to a signed agreement, on one trail

Ad spend now answers to contracts and renewals, not to the number of calls

Commercial HVAC contractor — Google Ads and HubSpot service contracts case study
The situation

The challenge

Scope of work
Google AdsHubSpot CRMAI AutomationCall TrackingQuote Follow-upB2B Services

The contractor maintained heating, cooling and ventilation for commercial buildings. A broken chiller on a hot Friday produced a flood of calls; a facility manager planning next year’s maintenance produced a quiet form fill that nobody noticed. Google Ads treated both the same. One campaign bought every keyword with “HVAC” in it, so a large share of the budget went to homeowners looking for a quick repair, students looking for a job and people searching for parts.

The phone rang, which felt like success, but calls were logged on paper or in a shared inbox, and nobody knew how many became a quote, how many quotes became a contract or how many contracts renewed. Quotes were written by two senior estimators between site visits, so many waited days and some were never chased. Service agreements expired quietly, and the first sign was often a customer who had gone elsewhere.

The owners were spending more every quarter on ads and could not answer the one question that mattered: which clicks turn into agreements worth keeping?

Our approach

What we built together

01

Search split by buyer intent

We rebuilt the Google Ads account around what the searcher needed. Emergency and same-day repair terms run in their own campaigns, scheduled for hours when dispatch can answer and limited to the service area. Planned-maintenance, retrofit and service-agreement terms run separately, with copy and landing pages written for facility managers. Residential, jobs and parts searches were excluded.

02

Every call and form in one record

Call tracking and form submissions now create or update a contact and company in HubSpot, with the campaign, keyword and landing page attached. The office no longer relies on a paper log: each enquiry is a record with an owner and a next step.

03

A pipeline that follows the contract

The HubSpot pipeline runs from enquiry to site visit, quote, signed agreement and renewal, with defined exit criteria at each stage. Deals carry building type, equipment and agreement value, so reports show revenue by campaign and by customer segment instead of calls by day.

04

Follow-up that no longer depends on memory

With AI automation, a quote request triggers a same-day acknowledgement, a draft summary of the site notes for the estimator and a sequence of reminders until the customer answers. Renewals are flagged months ahead, and signed agreements return to Google Ads as the conversions worth optimising for.

Results

What changed

Intent-ledBudget moves toward searches that lead to agreements, away from one-off repairs and irrelevant clicks
TracedEach signed agreement can be followed back to the campaign, keyword and call that started it
ChasedEvery quote gets a same-day response and a follow-up, instead of waiting for a free estimator
Renewal-readyExpiring agreements are seen early, with time to renew rather than to apologise
How it happened

The process

Weeks 1–2

Listening to calls and reading the account

We sat with the office team, listened to recorded calls and traced a sample of past jobs from first click to invoice. That showed which searches brought agreements, which brought one-off repairs and where leads were lost between the phone and the quote.

Weeks 3–4

Tracking and CRM foundation

We installed call tracking and form capture, designed the HubSpot pipeline with the owners and estimators, and migrated the existing customer and agreement list so renewals had real dates behind them.

Weeks 5–8

Campaign rebuild by intent

We launched the emergency and planned-maintenance campaigns beside the old account, tightened the negative keyword list and moved budget gradually once calls and quotes were landing in HubSpot correctly.

Month 3 onwards

Automation, renewals and optimisation

We switched on quote follow-up and renewal alerts, imported signed agreements back into Google Ads as conversions and set a monthly review where owners read spend, quotes and renewals together.

Composite case based on typical engagements; client details anonymised and illustrative; no client name or measured figures implied.

Search spend only becomes a business decision when the contract, not the call, is the number everyone watches. Everything else is a way of getting there.
— Studio Ideago, on every lead-generation project for service businesses
Work with us

Most clients come to us with one problem.They stay because we solve the next one.

We work with a limited number of clients to keep the quality high. If this case resonated, let's talk.