Jim is forty-seven years old. He's been doing commercial plumbing for twenty-three years, the last nine of those running his own shop. His business is the kind of thing that's invisible until it isn't: he services the East Bay's mid-tier commercial properties — office buildings, mixed-use, a few hotels — and the people who pay him are mostly property managers who only call when something has already gone wrong.

His clients call him on a number he's had since 2014. The number is on the side of his truck, in their CRM under "plumber," and in maybe forty different group texts at any given moment. About a third of those calls come outside business hours. A burst pipe on a Saturday night doesn't wait until Monday. A water heater dumping into a lobby at 11pm doesn't either.

The way Jim used to handle all this was: Jim handled all this. Every voicemail, every text, every callback, every dispatch decision. His wife knew the second the work phone buzzed at 9:30 on a weeknight that dinner was over.

The day before OpsLight

Jim's day used to start at 5:45am with him scrolling through voicemails on the work phone. He'd listen to each one, jot the property address on a yellow pad, decide whether it was urgent enough to wake somebody up, and start making callbacks by 6:30. By 8am he'd usually have triaged 6–10 messages and texted the right plumber to head where.

The problem wasn't volume. The problem was that everything lived in Jim's head and on a yellow pad.

If Jim was in a meeting with a property manager and three voicemails came in, those voicemails sat untriaged until he was done. If one of those was a real emergency, somebody was waiting an extra forty minutes for a callback. If Jim was on vacation — which he basically wasn't, because of this — he had to ask one of his plumbers to play dispatcher on top of doing actual plumbing work.

He'd tried two software platforms. The first was ServiceTitan, which is the gold standard for plumbing — but it priced out at roughly $500 per user per month, plus $25,000 in implementation, plus mandatory training, plus a setup cycle measured in months. For a four-person shop, that math doesn't pencil. The second was Jobber, which is friendlier but assumes his plumbers will live inside an app — and his lead tech, Eddie, is 58 and will text but flatly will not install something on his phone "for work."

So Jim's actual operations software was: a yellow legal pad, the Voicemail app on his iPhone, three group texts (one per plumber), and his memory.

"The honest version of why I was the dispatcher is that nobody else could be. I'm the only one who knows which property managers want a callback in twenty minutes and which ones will text you nine times if you don't reply in five."

Jim Hanley · Hanley Plumbing

That last point matters more than it sounds. Plumbing dispatch isn't really about routing emergencies. That part is easy. The hard part is the dozens of small, contextual judgments: this property manager will tip if her tech is there in under an hour; that one needs a written estimate before her board signs off on anything; that other one will pay double if you can get there before her morning meeting. Those judgments don't fit into a generic ticketing system. They live in the operator's head.

How Jim found OpsLight

One of his property manager clients runs a small portfolio that uses a stone restoration vendor we'd already wired up with OpsLight. She mentioned to Jim that her stone guy was getting back to her on Saturday voicemails inside of ten minutes, and could she give Jim the contact who set it up.

Jim's first call with us was thirty-five minutes. We asked him: what does an emergency mean to you? He gave us seven keywords — burst, flooding, no water, sewage, leak in unit, fire suppression, lobby — and the rule that anything mentioning those gets a callback inside forty-five minutes regardless of time of day.

We asked: which property managers want a written confirmation before you dispatch? He named four out of his roughly twenty accounts. We asked: which plumber takes which kind of call? Eddie does anything commercial that involves a permit. Marcus does after-hours residential. Devon does new construction rough-ins. Anything that doesn't fit those goes to whoever's closest.

That conversation was the OpsLight install brief. We turned it into a classifier prompt, configured the Sheet schema with Jim's account list, wired up his existing Twilio number, and put him live two weeks later. The first day, OpsLight handled 11 inbound voicemails and 4 texts. Jim didn't write anything on a yellow pad.

Three moments from a regular Tuesday

Tuesday · 6:47 AM

The 6am voicemail that didn't ruin breakfast

A voicemail came in at 6:12 AM from the building manager at the 17th Street office tower. She didn't say it was urgent, but she mentioned "water coming through the ceiling on three." Claude classified that as urgency=high (the trigger word was "ceiling"), wrote it to the Sheet, and pinged Eddie's phone with the address and the transcript. Eddie was on the freeway by 6:32. Jim found out about the call by reading his Game Plan over coffee at 7:00.

Tuesday · 11:30 AM

The new property manager who texted "?"

A property manager Jim had never worked with texted Jim's number with a single question mark and a Google Maps link to her building. Claude couldn't classify it confidently, so it auto-replied: "This is Hanley Plumbing — happy to help. What's the issue?" She wrote back with a description of a clogged commercial dishwasher line. The full exchange ended up as one structured intake row in the Sheet. She's now in Jim's account list as PM-021.

Tuesday · 9:14 PM

The Saturday-night-feeling that wasn't on Saturday night

9pm on a Tuesday: a hotel manager left a voicemail describing what turned out to be a failed mixing valve on the rooftop boiler. The word "boiler" plus "no hot water in 80 rooms" lit up urgency=emergency. Marcus, who was on call, got the SMS within 90 seconds. Jim got a copy too — but he didn't have to do anything. The dispatch already happened.

Six months later

The change in Jim's operation is measurable but not in the way you'd expect. He's not handling more calls — he's roughly the same volume he always was. He's not pricing differently. His revenue per plumber is up about 4%, which he attributes to faster callbacks closing more emergency work that used to leak to competitors.

What's different is something harder to quantify. Jim's wife told us that he hasn't gotten up from dinner in four months to take a voicemail. His on-call plumbers say they know exactly which call is "real" without listening to twelve seconds of preamble to figure out if it's an emergency or somebody calling about a dripping faucet at noon on a Wednesday.

And the Sheet — the Sheet has become something Jim didn't expect. Every Friday afternoon at 4pm, OpsLight emails him a one-page recap of every call, every dispatch, every job logged that week. The first Friday recap, Jim said, was the first time in nine years he'd seen his own business at a glance.

"I used to say the dispatch board was in my head. It was — but my head's a bad dispatch board. Now I'm just the operator. The board is the Sheet." Jim Hanley

What's configured specifically for plumbing

  • Plumbing-vocabulary intake classifier. The prompt knows fixtures (toilet, sink, water heater, dishwasher line, sump pump, sewer cleanout), failure modes (leak, burst, slow drain, no pressure, no hot water, backflow), and code-trigger terms (cross-connection, RPZ, anti-scald valve).
  • Emergency keyword list. Burst, flooding, sewage, no water building-wide, fire suppression, gas smell, freeze damage. Any of these in a voicemail trigger immediate SMS to the on-call plumber.
  • Property-manager account list. Each account has a contact, response-time preference, callback-style preference, and a flag for "wants estimate before dispatch."
  • Crew dispatch logic. Eddie / Marcus / Devon rules, plus a fallback to "closest available" based on the last logged check-in location.
  • Plumbing-specific reports. Daily Game Plan shows active jobs with permit status. Monthly status emails to property managers include all work performed at their properties that month, parts replaced, and any code-related observations.
  • Common-document templates. Backflow test report, repair quote, change-order for scope creep, end-of-month service invoice.

What other plumbing contractors ask us

What if my plumbers don't text?

Almost all of them do for personal stuff, even the ones who claim they don't. The Crew Tracker uses standard SMS — no app, no special format beyond "IN [job-id]" and "OUT [job-id] [notes]." We've never had a plumber refuse to text, only ones who refused to install apps. Big difference.

Can OpsLight do estimates and invoicing for plumbing jobs?

Estimates yes — OpsLight can draft a quote from the intake data and your standard pricing. Invoicing is on the roadmap but not v1; most plumbers we work with already have something they use (QuickBooks, FreshBooks, or their accountant's software) and we don't want to displace it. We feed those systems data, not replace them.

What about permits, code, and rough-in scheduling?

OpsLight tracks permit status as a field on each project row. It will remind you when an inspection window is approaching. It does not interact with municipal permit portals directly — that's still you or your inspector — but it means you stop forgetting which jobs are waiting on what.

Does this work for residential plumbers too?

Yes, with a different config. Residential plumbing intake skews toward inbound forms and online lead-gen platforms (Yelp, Angie's, HomeAdvisor) rather than property-manager voicemails. The classifier is tuned differently and the document templates lean more toward residential repair quotes than commercial maintenance retainers. Most of the engine stays the same.

How long does setup take?

Two weeks from kickoff call to live system. That includes: porting or provisioning the Twilio number, building the property-manager account list, configuring the urgency rules, branding the document templates, and wiring up the crew SMS roster. We schedule a 30-minute training call at the end so you know exactly where every signal lands.

Related trades

Want to see this configured for your plumbing operation?

20 minutes on a call. We'll wire up a sandbox configured for your accounts, your on-call rotation, and your emergency keywords. Leave a few voicemails, see the dispatch land in real time.

Book a walkthrough