Mechanical contractor software · service · PM agreements · 1–20 techs

Mechanical contractor software
for the service side of the business.

Rooftop units, boilers, chillers and pumps across every building you look after — each with its capacity, refrigerant, filter sizes and a link to its O&M manual. PM agreements schedule themselves, and every visit lands in QuickBooks Online.

No credit card4.9/5 on CapterraQuickBooks Online syncWorks offline
RTU-3 · HIGH HEAD PSI FILTERS + COIL DONE ✓ PM LOGGED · 55°F 72°F 55°F RTU-3 · 7.5 TON · ROOF W REFRIGERANT R-410A · 14 lb FILTERS 20×25×2 × 4 O&M MANUAL Open ↗ Looked up · fixed · logged
What is the best software for a small mechanical service contractor?

For mechanical contractors with 1–20 service technicians, Repair-CRM runs the service and maintenance side: every piece of equipment is its own asset under the building — RTUs, boilers, chillers, pumps, air handlers — with custom fields for capacity, refrigerant type and charge, filter and belt sizes, and links to the O&M manuals and submittals. PM agreements generate their visits automatically, technicians work from the phone with photos and signatures, and each visit becomes an itemized QuickBooks Online invoice. $19–$179/month flat, rated 4.9/5 on Capterra. It is not a construction or bidding platform — we say what fits better below.

Last updated: September 2026 · Describes the current shipping product.

What’s different about mechanical service

A building isn’t a customer address — it’s thirty machines

Residential field service apps assume one system per house. A mechanical contractor looks after rooftops full of equipment, on contracts, for facility managers who expect a record of every visit.

The reality of the trade
What Repair-CRM does about it
A building is thirty machines.RTUs, a boiler, pumps, exhaust fans, a make-up air unit — each with its own model, age and history.
Every unit is an asset under the building, tagged the way your techs say it — RTU-3, B-1, P-2 — with its own service history.
The van needs the right filters before it leaves.Arriving at a quarterly PM with the wrong filter size costs a second trip.
Filter and belt sizes are custom fields on each unit — the office pulls the PM list and the van gets loaded with exactly what’s on the roof.
Fault codes and specs live in PDFs.O&M manuals, submittals, wiring diagrams — on a shared drive nobody can reach from the roof.
Store a link to each unit’s O&M manual or datasheet as a field; the technician opens it on the roof, next to the unit.
The work is contract work.Quarterly and semi-annual PM agreements, plus the service calls those customers make in between.
PM agreements generate their visits automatically; service calls for the same building land on the same history, and everything is invoiced through QuickBooks Online.

The whole job, one flow

From a no-cooling call to QuickBooks invoice

A medical office building on a quarterly PM agreement calls: the west wing is warm. The call is dragged onto Friday, the technician opens RTU-3’s record — fault code in the linked O&M manual, filter size on file — swaps the filters, cleans the condenser coil, restarts the unit, and the invoice lands itemized in QuickBooks Online.

Repair-CRM · Scheduling
Unscheduled
WO/001772
Lakeside Medical Offices
Friday · Tech 4
09:00WO/001768 · Q3 PM — Harbor Bank
10:00
11:00
12:00
✓ Saved — sent to Tech 4
WO/001772Lakeside Medical Offices
West wing warm · RTU-3
Jobs · Tech 4
WO/001772 — Lakeside Medical Offices
Today 11:00–12:00 · 900 Lakeside Pkwy
RTU-3 · high head pressure
SCHEDULED ON THE WAY WORK RUNNING
📷 5 photos✍ Signed
Finalize → Create QuickBooks Invoice
QuickBooks Online
Invoices
#1041 · Harbor Bank$640.00
#1042 · Oak Plaza$1,120.00
INVOICE #1043Lakeside Medical Offices
Service call + filters ×4 + coil clean
$468.00
✓
Synced from Repair-CRM · customer & items matched
Illustrative example

One building, six rooftop units, one PM agreement

How a nine-technician mechanical service company handles a service call at a building it already maintains — and how the unit records turn a vague “it’s warm” into a one-visit fix.

  1. Jul 8
    Q3 PM, generated by the agreement. Lakeside Medical Offices has six RTUs on a quarterly PM; the visit appeared on the board when it fell due, and the van was loaded from the filter sizes on file.In Repair-CRM: PM agreement → recurring job; filter-size fields
  2. Aug 21
    The call: the west wing is warm. The office drags a service call onto Friday and assigns it to the technician who did the July PM.In Repair-CRM: service call on the same building record
  3. 11:05
    RTU-3 is locked out on high head pressure. The technician opens the O&M manual from the link on the unit’s record and follows the reset sequence for that model.In Repair-CRM: O&M manual link stored as a custom field
  4. 11:25
    Clogged filters, a matted condenser coil. Four 20×25×2 filters from the van — the size was on file — and a coil cleaning.In Repair-CRM: filter-size field; before-and-after photos
  5. 12:10
    Unit back on, supply air at 55°F. Readings and photos go on RTU-3’s record, and the office manager signs on the glass.In Repair-CRM: service logged on the unit + signature
  6. 12:11
    Invoice in QuickBooks Online. One tap on Finalize — and the Q4 PM is already on the board for October.In Repair-CRM: itemized QBO invoice, next PM scheduled
qb
Invoice #1043 · Lakeside Medical OfficesService call · RTU-3, west wing
Service call, first hour$185.00
Pleated filters 20×25×2 × 4$64.00
Condenser coil cleaning$165.00
Additional labor, 0.5 h @ $108$54.00
Total$468.00
✓ Synced from Repair-CRM · customer & items matched
6units on the building, each with its own record
1trip — the filters were already on the van
0invoices retyped in QuickBooks

Illustrative example: the company, building and prices are invented to show the workflow; prices are typical US ranges, not quotes.

Custom fields

What to store on every piece of mechanical equipment

Repair-CRM lets you add your own fields to each asset — values, dates, notes or links. These are the ones that save a mechanical service technician a trip, a phone call or a guess.

FieldExampleWhy it pays off
Unit tag & locationRTU-3 · roof, west wingThe office, the tech and the customer all mean the same unit
Capacity7.5 ton · 150 MBH heatParts, loads and replacements start from the right size
RefrigerantR-410A · 14 lb chargeCharge checks and refrigerant records start from the nameplate
Filters20×25×2 × 4, pleatedThe van leaves loaded with the right filters
BeltsA-38 × 2No second trip for a belt
O&M manual / submittallink to the PDFFault codes and wiring diagrams on the roof, next to the unit
Install date & warranty2019 · compressor to 2029Warranty claims and replacement quotes start from facts

Examples only — add, rename or remove fields to match how your company works. Standards such as ANSI/ASHRAE/ACCA 180 describe what to inspect on commercial HVAC equipment; fields like these are where the answers live.

QuickBooks Online

Mechanical contractor software for QuickBooks Online

PM agreement rates, service-call and hourly rates, filters, belts, refrigerant and parts live in QuickBooks Online as products and services — Repair-CRM syncs them both ways, so every PM visit and service call lands as an itemized invoice at the right rate.

  • Two-way customer & product sync — your QuickBooks Online records become the job catalog
  • One-click invoices — a finalized job becomes an itemized QBO invoice, hours and parts included
  • Listed on the Intuit QuickBooks App Store — see exactly how the sync works →

When we're not the right pick

  • You run QuickBooks Desktop. Our sync is QuickBooks Online only — see the alternatives in our honest comparison.
  • You bid and build projects. Estimating, submittals, progress billing and project management on new construction belong in construction software such as Procore.
  • You run a large commercial service fleet. With 20+ technicians and national multi-site accounts, platforms such as ServiceTrade or BuildOps are built for that scale.

FAQ

Mechanical contractor software — common questions

What does mechanical contractor software do?
On the service side, it schedules preventive maintenance agreements and service calls, keeps a record of every unit at every building, puts manuals, specs and history on the technician’s phone, and turns each visit into an invoice. Repair-CRM adds custom fields per unit and real-time QuickBooks Online sync.
Can I track every RTU, boiler and pump separately?
Yes. Each unit is its own asset under the customer’s building, tagged however your team refers to it, with custom fields for capacity, refrigerant, filter and belt sizes, install date and warranty, and its full service history.
Can I keep O&M manuals and submittals on the equipment?
Yes — a custom field can be a link, so each unit can point straight to its O&M manual, submittal or wiring diagram. The technician opens it on the phone, next to the unit.
Does it handle preventive maintenance agreements?
Yes. Set up each agreement’s interval — quarterly, semi-annual or annual — and the visits appear on the dispatch board when they fall due. Service calls from the same customer land on the same building and unit histories.
Is Repair-CRM construction or project management software?
No. It is built for the service and maintenance side of a mechanical contractor: PM agreements, service calls, equipment records and invoicing for teams of 1–20 technicians. Estimating, submittals and progress billing on new construction need a construction platform.
How much does mechanical contractor software cost?
Repair-CRM: $19/month (1 user), $89/month (2–5 users), $119/month (6–10), $179/month (11–20) — flat, no contract, unlimited buildings and equipment on every plan. 14-day free trial, no credit card. Pricing as of September 2026.

Put every unit on every roof in one place

Import your customers from QuickBooks, add one building’s equipment with its filter sizes and manual links, and run a real PM. Free for 14 days.

Start 14-Day Free Trial → See pricing

No credit card · 4.9/5 on Capterra · QuickBooks App Store listed · From $19/month

Keep exploring: