A contractor's CRM is the cheapest marketing channel the business owns. Every customer in it has already trusted you once, and the records say what they own, how old it is, what you quoted and whether they agreed to hear from you. The catch is that most of that value depends on fields the office fills in on busy days.
This hub covers the marketing side of contractor CRMs: which records matter, how to check whether yours are complete, and how to measure what they produce. The guides below go deeper by trade and by decision.
The marketing loop a CRM runs
Every repeat-business campaign follows the same loop. The CRM's job is to keep each step attached to the same customer record.
- 1
Lead arrives with a source
Phone, form, lead service or referral, tagged with the campaign that produced it.
- 2
Job keeps the source
The booked job, and later the invoice, carry the same campaign so revenue rolls up by channel.
- 3
Technician records what's there
Equipment and install year, roof age, panel size, water heater age: whatever your trade sells next.
- 4
Office records what wasn't sold
Open estimates with value and date, so follow-up has a list.
- 5
List gets pulled
Filters on those fields, limited to customers with consent for the channel.
- 6
Campaign tags the next job
Whatever the list produces is tagged, so the loop starts again with a known source.
Break any step and the loop leaks. The most common break is step 2: a lead source captured on the call but never carried to the job, so the channel report shows a growing pile of "unknown."
A 30-minute CRM completeness audit
Here's the one exercise worth doing before you buy anything. Take your active customers (a completed job in the last 36 months) and count how many have each field filled in.
| Field | Why marketing needs it | Count filled ÷ active customers |
|---|---|---|
| Lead source on first job | Channel reports and cost per job | fill in |
| Email with marketing consent | Who can get email campaigns | fill in |
| Mobile number with texting consent | Who can get marketing texts | fill in |
| Equipment or property age | Replacement and upgrade lists | fill in |
| Open estimate value (where one exists) | Unsold estimate follow-up | fill in |
| Service ZIP | Route and area targeting | fill in |
CRM completeness score
Example (hypothetical). A 7-tech plumbing shop runs the audit and finds lead source on 82% of first jobs, email consent on 31%, texting consent on 12%, water heater age on 44%, estimate value on 90% and ZIP on 99%. Its score is about 60%. The fix isn't new software: it's adding water heater age to the technician's job checklist and asking for email consent at booking. Both raise the size of every future list.
Why consent sits in the audit: the FTC's CAN-SPAM guide requires a working opt-out on commercial email, honored within 10 business days, and bars selling or transferring the addresses of people who opted out.1 A record that says "OK to market" without saying which address can't prove either.
The lists that pay first
Two lists usually produce most of the revenue from an owned customer base, in every trade: unsold estimates (a known need, a known price, a known decision-maker) and aging equipment (a known need, coming soon). For HVAC, ENERGY STAR's guidance to consider replacing cooling equipment over 10 years old and furnaces over 15 sets the filter.2 Our CRM for HVAC companies page builds those lists field by field.
Memberships are the third. Visits due and memberships nearing term end are a list the office works every month; the memberships hub covers selling and renewing them.
Choosing the setup
There are three common shapes: a sales CRM next to field software, field software with built-in CRM, and field software plus a marketing platform or agency that reads from it. The right one depends on how you sell more than on how big you are. CRM for contractors has the decision table and a demo scorecard.
If you're on ServiceTitan and paying for its marketing add-on, ServiceTitan describes Marketing Pro as building audiences from your ServiceTitan data, such as unsold estimates or expiring memberships.3 Our Marketing Pro alternatives page breaks it into parts and prices the replacements.
How to measure it from your jobs
Three numbers tell you whether your CRM is a marketing asset or an address book.
Metric
CRM completeness score
How much of your customer base can actually be reached by a list that depends on a given field.
Average share of active customers with each of six marketing fields filled in
Where the numbers come from: Customer, job, equipment, estimate and consent records; active = completed job in the last 36 months.
Metric
Repeat revenue share
How much of last year's invoiced revenue came from customers you'd served before. Rising share means the CRM is doing its job.
Invoiced revenue from customers with an earlier completed job ÷ total invoiced revenue
Where the numbers come from: Invoices joined to each customer's first completed job date.
Metric
List revenue vs holdout
What a campaign to a CRM list added beyond what those customers would have bought anyway.
(Sold revenue per contacted customer − sold revenue per holdout customer) × contacted customers
Where the numbers come from: A random 15% to 20% holdout of the list; invoices 90 days after the send.
Where TradesWork fits
TradesWork keeps the campaign on every lead and the job it books, reports booked, completed and collected revenue by channel, and builds marketing lists from your records with consent checked per email and phone. It doesn't send marketing email or text broadcasts yet, so lists go to your email tool or marketing partner. For the definition behind most of this, see lead source attribution in the glossary.
Footnotes
-
Federal Trade Commission, "CAN-SPAM Act: A Compliance Guide for Business." https://www.ftc.gov/business-guidance/resources/can-spam-act-compliance-guide-business ↩
-
ENERGY STAR, "When is it time to replace?" https://www.energystar.gov/saveathome/heating-cooling/replace ↩
-
ServiceTitan, Marketing Pro product page, checked 2026-10-15. https://www.servicetitan.com/features/pro/marketing ↩