Enterprise DNA

Omni by Enterprise DNA

Enterprise DNA Resources

Step-by-step how-tos. Practical AI operating-system thinking for owners, operators, and teams doing real work.

220k+

Data professionals

Omni

AI agents and apps

Audit

Map the manual work

Guide Intermediate Omni Ops

How Trades Businesses Can Resolve Complaints Faster

See how AI agents triage, escalate, and resolve customer complaints for plumbing, HVAC, electrical, and roofing businesses before they cost you the job.

Sam McKay |
How Trades Businesses Can Resolve Complaints Faster

A customer calls at 6:45pm because the water heater you installed three weeks ago is leaking onto their new hardwood floor. Your office closed at 5. The call rolls to voicemail, or worse, it rolls to whoever happens to be closest to a phone, and that person doesn’t know the job history, doesn’t know if it’s under warranty, and doesn’t know who’s free tomorrow morning.

That customer doesn’t hear back until 9am. By then they’ve called two other companies and left you a review that starts with “Would not recommend.”

This is the moment that decides whether a complaint becomes a five-minute fix or a $2,000 problem that costs you the customer, the referral, and the review. Most trades businesses in the $1M-$25M range don’t have a complaint problem because they do bad work. They have a complaint problem because the response to bad-outcome moments is slow, inconsistent, and dependent on whoever picks up the phone.

The dollar reality of slow complaint handling

We see trades businesses in this revenue range leaking somewhere between $50,000 and $200,000 a year from operational gaps like missed calls, poor follow-up, and slow complaint response. Complaint handling is usually the most expensive piece of that, because a mishandled complaint doesn’t just cost you the redo. It costs you the next three jobs that customer would have referred, plus the review that would have brought in two more.

Think about what an unresolved complaint actually does to your business:

  • A callback that isn’t scheduled within 24 hours often escalates into a demand for a refund or a discount, even on jobs where the fix itself would’ve taken 30 minutes.
  • A customer who complains and gets a slow or generic response leaves a public review. A customer who complains and gets a fast, specific response often leaves a good one instead, sometimes a better one than if nothing had gone wrong at all.
  • Techs and office staff spend hours per week fielding the same “has anyone called that guy back yet” conversation, which is time not spent dispatching, quoting, or running the next job.

None of this shows up as a line item on your P&L. It shows up as slower growth, thinner margins, and a Google rating that plateaus around 4.3 instead of climbing toward 4.8.

What manual complaint handling actually looks like

In most trades operations we look at, a complaint comes in through one of three doors: a phone call, a text to the office line, or a Google review nobody saw for four days. From there, resolution depends almost entirely on who’s around and how busy they are.

Here’s the pattern we see most often:

  1. The call comes in while the office is on the phone with another customer or the owner is on a roof. It goes to voicemail. Half the time nobody leaves a message, so the first anyone hears of it is when the review posts.
  2. If it does get logged, it goes into an inbox or a sticky note, not a system. There’s no severity flag. An “the AC is completely dead in 95-degree heat” complaint sits in the same queue as “can you explain the invoice.”
  3. Whoever eventually calls back doesn’t have the job history in front of them. They have to ask the customer to re-explain everything, which makes an already-annoyed customer more annoyed.
  4. There’s no consistent script. One tech might offer a discount nobody approved. Another might get defensive. A third might just say “someone will call you back” and never follow up.
  5. Even when it does get fixed, nobody tracks whether the same issue happens again with the same crew, the same product, or the same install type. So the pattern repeats, and repeats again, and the business keeps eating the same cost of poor quality without ever seeing it as a pattern.

If any of this sounds familiar, you’re not running your business badly. You’re running a business where 20+ hours a week of owner or admin time is already going to dispatch and phone triage, and complaint handling gets whatever’s left over, which is usually not much.

Triage by severity, not by who answers the phone

The fix isn’t a better sticky note system. It’s taking severity assessment and first response out of human bandwidth entirely and putting it on a system that never gets busy, never forgets, and never has a bad day.

A well-built complaint resolution agent does three things immediately when a complaint comes in, whether by call, text, or web form:

It triages by severity. No hot water for a family with a newborn is not the same urgency as a cosmetic scratch on a panel cover. The agent asks the right qualifying questions (what’s not working, is anyone at risk, is there active water or gas exposure, when did this start) and scores the complaint against rules built for your trade. Emergency-level issues get flagged for immediate human escalation. Lower-severity issues get a fast acknowledgment and a scheduled resolution path.

It auto-escalates the urgent ones. If a complaint scores as high-severity, the agent doesn’t sit on it. It pushes a real-time alert to the on-call lead or owner with the customer’s name, job history, and a summary of the issue, so whoever picks it up isn’t starting from zero. This is the same logic behind our 24/7 Dispatch Voice Agent, which already qualifies incoming calls as emergency versus scheduled. Complaint triage is the same skill applied to a different moment in the customer relationship.

It suggests a resolution script based on what’s actually worked before. This is the part most shops are missing entirely. Every time a complaint gets resolved well, that resolution (what was offered, what was said, how fast it happened, whether the customer stayed) becomes a data point. The agent uses that history to suggest a response tuned to the specific issue and the specific customer’s job history, instead of a generic “we’re sorry for the inconvenience” template that reads like it was written by no one in particular.

What this looks like end to end

Picture the same water heater complaint, handled with a complaint resolution agent running underneath your phone and text lines.

The customer calls at 6:45pm. The agent answers immediately, no voicemail, no wait. It asks two or three questions: is water actively leaking, is it near electrical, how long has it been happening. Based on the answers, it scores this as high severity (active water damage risk) and immediately texts the on-call lead with the customer’s name, address, job history from three weeks ago, and a one-line summary. It also sends the customer a text confirming someone will call within 15 minutes, which alone defuses most of the anger in a moment like this.

The on-call lead calls back with full context already in hand, no re-explaining required. The agent has already suggested a resolution path based on similar past cases, in this case a same-evening emergency visit with a follow-up warranty inspection, because that’s what’s worked with comparable leaks in the past. The lead approves it, the visit gets scheduled, and the customer gets a confirmation text with a technician name and arrival window.

After the visit, the same system that tracks estimate follow-ups and review requests, our Review and Reactivation Agent, logs the resolution and watches for repeat issues. If three water heater installs from the same supplier generate similar leak complaints inside two months, that pattern gets surfaced instead of buried in three separate voicemail transcripts nobody cross-referenced.

That’s the difference between complaint handling as a fire you put out and complaint handling as a system that gets smarter every time it runs. It’s the same principle behind our Estimate Follow-Up Agent, which tracks every quote you send and follows up on day 2, day 5, and day 14 with messages tuned to the trade and job size. Complaints and stale estimates are both moments where speed and consistency matter more than heroics from any one person.

Why this matters more as you scale past $1M

At $1M-$5M in revenue, complaint handling is inconsistent but survivable because the owner is still close enough to most jobs to catch problems early. Past $5M, that proximity disappears. You’ve got more crews, more jobs running at once, and more distance between the owner and the moment a customer gets upset. That’s exactly when complaint volume and complaint cost both climb, and it’s exactly when most shops don’t have a system in place to catch it.

If you’re already dealing with missed calls costing $500 to $3,000 per lost job, or stale estimates sitting unworked when a simple follow-up sequence could convert 15-25% of them, complaint handling is usually the third leak in the same boat. Fixing one without the others tends to leave money on the table.

If you want a practical starting point before the bigger conversation, we put together an After-Hours Call Recovery Plan for Trades that walks through exactly how to catch and triage the calls that come in when your office is closed, which is when a lot of complaint escalation actually happens. It’s a worksheet you can use this week, not a pitch deck.

What an Omni Audit actually shows you

We built the Omni Audit because most owners in this range know something’s leaking, but they don’t know exactly where or how much. It’s 60 minutes, on a call with us, and you walk away with three things: a specific dollar estimate of what missed calls, slow follow-up, and complaint mishandling are costing your business each year, a map of exactly where those leaks are happening in your current process, and a plain-language plan for which agents would close each gap first.

No slide deck. No generic sales pitch. Just your numbers, your process, and a clear next step.

If you want to see the fuller picture of what this looks like specifically for plumbing, HVAC, electrical, or roofing operations, see Omni for trades businesses before you book. It’ll give you a sense of the exact leak categories we look at and the agents we typically deploy to close them.

When you’re ready to see your own numbers, book a 60-min Omni Audit and bring your call logs, your estimate pipeline, and your last dozen negative reviews. That’s usually enough for us to show you where the $50K to $200K a year is actually going.

The pattern is the point

One trades-business owner in our network described complaint handling as “the thing that used to eat my Sunday nights.” That’s a common story. Owners end up doing the emotional labor of angry-customer calls personally because nobody else has the context or the authority to resolve them well, and that’s exhausting in a way that compounds over years, not weeks.

Getting complaint triage, escalation, and resolution scripting off your plate isn’t about outsourcing customer relationships to a machine. It’s about making sure the right person, or the right system, responds fast every single time, with the full history in front of them, instead of some of the time when the phone happens to get answered.

If you’re curious what this looks like laid out against your own call volume and review history, the audit for trades businesses is the fastest way to find out, and you can browse more on how we build these systems across Omni or read more operational breakdowns like this one in our guides library. When you’re ready to put a number on what slow complaint handling is actually costing you, book my Omni Audit and we’ll walk through it together.