An HVAC CRM earns its keep on one test: can you pull a list of every customer with a system over ten years old, no open estimate, and permission to email, in under a minute? If the answer is "we'd have to export two spreadsheets and match them," the CRM is holding names and phone numbers while the records that sell replacements and memberships sit somewhere else.
For most residential HVAC shops, the CRM and the field service software should be the same system. This page, part of our guide to the marketing side of a contractor CRM, covers that system for HVAC: the records it must hold, the lists it must produce, and the questions to ask in a demo.
CRM vs field service software: why HVAC blurs the line
A sales CRM was built for a pipeline: a contact, a company, a deal, a stage. HubSpot's free CRM, for example, centers on contacts, activities and deals.1 That model fits a commercial HVAC salesperson chasing a chiller replacement for six months. It doesn't fit a residential service shop, where the "deal" is a service call that happens tomorrow, gets diagnosed in the attic, and turns into an invoice, a membership and a ten-year equipment record.
That's why the big field service vendors now call themselves CRMs too. ServiceTitan's own blog ranks ServiceTitan first in a list of home service CRMs.2 The label matters less than where the data lands. If the job, the equipment and the invoice are in the field service system, that's where your marketing lists come from.
The 8 records marketing needs
Every HVAC marketing play that works off your own customers needs some combination of these eight fields. If one is missing, a campaign that depends on it can't be built, or gets built on a guess.
The marketing records an HVAC CRM must hold
- Lead source and campaign on every job, kept from the first call through the invoice
- Equipment on each location: type, make, model, serial, and install year
- Membership status, plan, term end, and which visits are due
- Unsold estimates with their option values and the date presented
- Completed and invoiced revenue per job, not just booked
- Marketing consent per email address and per phone number, with the date it was given
- Do Not Mail, Do Not Service, unsubscribes, bounces and STOP replies
- Service address ZIP, so lists can follow your service area and truck routes
Two of these carry most of the weight for HVAC. Install year is the field that turns a customer list into a replacement list. ENERGY STAR tells homeowners to consider replacing a heat pump or air conditioner more than 10 years old and a furnace or boiler more than 15 years old.3 Those are the ages your list should filter on, and they're only useful if a technician typed the install year (or a serial number you can decode) on a real visit.
Consent per channel decides who can be on which list. The FTC's CAN-SPAM guide requires a working opt-out on marketing email, honored within 10 business days, and says you can't sell or transfer the addresses of people who opted out.4 Marketing texts sent with automated systems generally need the customer's prior express written consent under the FCC's rules.5 A CRM that stores "OK to market: yes" once per customer can't tell you which of their two numbers gave consent.
The lists you should be able to pull in one minute
Here's the practical version of the checklist. Each list is a filter on fields above. If a system can't produce these without an export and a spreadsheet, it isn't doing the CRM's job.
| List | Filter (fields) | What you do with it |
|---|---|---|
| Maintenance due | Active membership, visit due this month or overdue | Book the visits before the season turns |
| 10+ year cooling systems | Equipment type AC or heat pump, install year 10+ years ago, no open estimate | Replacement mailer or a call from a comfort advisor |
| Unsold estimates over a set value | Estimate presented 7 to 120 days ago, status open, top option over your threshold | Follow-up call, then a reminder of the options |
| Lapsed customers | Last completed job 18+ months ago, no active membership | Tune-up offer by mail or email |
| Expiring memberships | Term ends in the next 60 days, auto-renew off | Renewal call with the visit history in hand |
Worked example (hypothetical numbers). Say a 9-tech shop has 4,200 active service locations. Filtering for AC or heat pump equipment with an install year of 2015 or earlier and no open estimate returns 610 locations. Removing Do Not Mail and anyone without a mailing address leaves 580 for a postcard. Of those, 240 have an email address with recorded marketing consent, so the email version goes to 240, not 580. The difference between those two numbers is the whole reason consent lives on the record: the postcard list and the email list are not the same list.
Three ways shops set this up
Most HVAC shops land in one of three setups. None is wrong for every shop. The difference is how many of the eight records your marketing can reach without someone copying data.
| Marketing record | Sales CRM + field software | Field software with built-in CRM | Field software + marketing platform |
|---|---|---|---|
| Lead source on the job | Only if synced both ways | Native | Native in field software; platform reads it |
| Equipment and install year | Rarely; custom fields typed by hand | Native | Native; platform reads counts or lists |
| Membership and visits due | Usually not | Native | Native |
| Unsold estimates with value | Possible as deals, but duplicated | Native | Native |
| Completed revenue | Usually not | Native | Native; platform reads it for reporting |
| Consent per channel | Native for email; texting varies | Varies by vendor; check it | Has to match in both systems |
| Do-not-contact flags | Separate list to keep in sync | Native | Has to be honored in both |
| ZIP | Native | Native | Native |
The third column is the one many growing shops end up in: field software that owns the records, plus a marketing platform such as TradesForce or an agency that reads lists and results from it. That setup works when the field software stays the single source of truth and the marketing side gets list sizes, or consented contacts, rather than a second customer database.
The first column is where most "we bought a CRM and nobody uses it" stories come from. The office books in the field software, so the sales CRM goes stale within a month.
Evaluating an HVAC CRM: questions for the demo
Vendors demo dispatch boards and invoices. Bring your own script for the marketing side. Ask them to do each of these live, on their demo data, while you watch.
- 1
Pull the 10+ year list
Ask for every location with a cooling system installed 10 or more years ago and no open estimate. Watch whether install year is a real field or a note.
- 2
Show the lead source on an invoice
Open a paid invoice and ask where the original lead came from. If the campaign doesn't follow the job to the invoice, revenue by channel will be guesswork.
- 3
Show consent for one phone number
Ask how the system records texting consent for a single number and what happens when the customer replies STOP.
- 4
Build the maintenance-due list
Ask for members with a visit due this month, then ask how the office books them. Count the clicks.
- 5
Export a list and re-import a change
Ask what leaves the system in an export and whether unsubscribes from your email tool can come back in.
- 6
Ask what costs extra
Ask which of the above needs an add-on. ServiceTitan, for example, sells its marketing tools as Marketing Pro, separate from the core tiers, and shows Request Pricing on its pricing page.
On the last question: ServiceTitan doesn't publish prices for its tiers or for Marketing Pro.6 Its Marketing Pro pages describe audiences built from ServiceTitan data, such as unsold estimates or expiring memberships.7 If you're comparing, ask for the add-on price in writing, and read our ServiceTitan Marketing Pro alternatives for what each part of it does.
Switching without losing marketing history
The records that make a CRM valuable are the ones that take years to build: install years, membership history, estimates that didn't sell. When you change systems, those are the ones to check first, not the customer names.
If you're leaving ServiceTitan for TradesWork, the importer brings customers, locations, equipment, price book, job and invoice history, memberships and visits due (with billing held until the owner starts it), open estimates, tasks, open A/R and email unsubscribes. Several ServiceTitan file layouts were built from ServiceTitan's screens and help docs and are still being validated against real exports, so check the preview before you save. The switching page walks through the order.
Whatever you switch to, test three things on the imported data before you cancel the old system:
- Equipment count by age band. Count units installed 10+ years ago in both systems. They should match.
- Unsubscribes. Pick five customers you know unsubscribed and confirm they're suppressed in the new system.
- Membership visits due. Compare next month's due list in both systems, line by line for a sample.
How to measure it from your jobs
A CRM is working for marketing when the lists are complete and the revenue comes back to them. Three numbers tell you.
Metric
Equipment coverage
The share of active service locations with at least one piece of equipment and an install year on file. The lower it is, the more of your replacement list is guesswork.
Locations with equipment + install year ÷ active service locations
Where the numbers come from: Equipment records on each location; active means a completed job in the last 36 months.
Metric
Consented reach
How many customers you can legally email or text with marketing, as a share of everyone you served. It sets the ceiling on owned-list marketing.
Customers with recorded marketing consent on at least one channel ÷ customers with a completed job in the last 36 months
Where the numbers come from: Consent fields per email address and phone number; exclude unsubscribed, bounced and STOP.
Metric
Completed revenue per list
What a list actually produced, counted from finished, invoiced work rather than bookings.
Invoiced revenue from jobs tagged to the list's campaign within 90 days ÷ contacts on the list
Where the numbers come from: Campaign on the job, invoice total, and the list size on the day it was pulled.
Track all three monthly. If equipment coverage rises, the replacement list grows without buying a single lead. If the word itself needs pinning down, the glossary entry on what a CRM is is short. For the same framework applied to every trade, see CRM for contractors, and for the rest of an HVAC marketing plan, the HVAC marketing guide.
Free download · ExcelField Service Software ScorecardWeight what matters to your shop, score up to five systems, and see year-one cost side by side.Where TradesWork fits
TradesWork is field service software with the CRM records built in: equipment on locations, memberships with visits due, estimates, invoices, a campaign on every lead and job, and consent per email and phone. It builds marketing lists from those records. It doesn't send marketing email campaigns yet, so today you build the list in TradesWork and send it from your email tool or through your marketing partner. For membership selling specifically, see the memberships feature.
Footnotes
-
HubSpot, Free CRM product page (contacts, activities, deals). https://www.hubspot.com/products/crm ↩
-
ServiceTitan blog, "The 7 Best Home Service CRMs for Trade Contractors in 2026" (vendor-written). https://www.servicetitan.com/blog/home-service-crm ↩
-
ENERGY STAR, "When is it time to replace?" https://www.energystar.gov/saveathome/heating-cooling/replace ↩
-
Federal Trade Commission, "CAN-SPAM Act: A Compliance Guide for Business." https://www.ftc.gov/business-guidance/resources/can-spam-act-compliance-guide-business ↩
-
47 CFR 64.1200(a)(2), via Cornell Legal Information Institute. https://www.law.cornell.edu/cfr/text/47/64.1200 ↩
-
ServiceTitan pricing page, checked 2026-10-15: Starter, Essentials and The Works each show "Request Pricing." https://www.servicetitan.com/pricing ↩
-
ServiceTitan, Marketing Pro product page. https://www.servicetitan.com/features/pro/marketing ↩