Section 01 — Context
The client is a family-owned HVAC firm in Houston, Texas. Twelve employees, ten in the field, two in the office. Like most home-services businesses in their region, their phones ring most loudly between 6pm and 10pm — when systems break, when homeowners get home from work, when a dispatcher is no longer at a desk. The overnight answering service they had used for six years took messages, sometimes accurately. Most of those messages were read in the morning. Some never were.
Their suspicion, which the audit confirmed, was that they were losing between four and seven jobs per week to competitors who picked up the second call.
Section 02 — Approach
The Audit scored fourteen workflows across the business. Three scored highly enough to bring forward into the Sprint conversation: vendor-invoice extraction, technician debrief summaries, and after-hours intake. We picked intake. It had the highest revenue impact, the cleanest data boundary, and — critically — a governance question that had to be answered up front: what gets booked without a human looking at it, and what doesn’t?
The boundary we drew, in writing, before we built anything:
- AI may transcribe the call, classify the intent, draft a confirmation message, and produce a proposed booking with a recommended time window.
- AI may not confirm a booking, send anything to the customer, or write to ServiceTitan.
- A human in the operator Slack channel reviews and approves every booking before it is created. Median target: under ninety seconds per call.
That last constraint made the system buildable. It meant we did not need a self-confident classifier. We needed a fast, well-presented one.
Section 03 — System
The pipeline is straightforward. Inbound calls after hours route to a Twilio number that captures the call, transcribes it, and pushes a structured payload into the workflow. A classification step assigns intent (new install, repair, billing, other) and tags the call with a confidence score. A drafting step proposes a customer reply and a booking — service type, address parsed from the call, suggested time window, technician category — and posts the proposal to a dedicated Slack channel.
The on-call operator sees the proposed booking, the transcript, the confidence score, and two buttons: Approve & book and Hold for morning. Approval writes the booking to ServiceTitan and sends the customer an SMS confirmation from the company number. Holds drop into a queue the office reviews at 7am.
Every action — AI, human, system — writes to a single audit log. The operator Slack channel reads, in production, like a calm conversation between an articulate assistant and a tired human, with a clear edit history when needed.
Section 04 — Outcome
By the end of month two, the missed-call rate after 6pm had effectively reached zero. Booked appointments rose 47% quarter-over-quarter, with a notable shift toward higher-margin install jobs that had previously gone to competitors.
The metric we were less prepared for: operator sentiment. The on-call rotation was, ahead of the build, the most disliked shift in the company. Within a month it had become the easiest. The job, once “field every call yourself, hope you get the address right,” became “approve a clean draft, fix one thing, move on.”
What we’d do differently: we under-budgeted the time it takes to teach a draft to write the way a particular business actually speaks. The system was technically working in week two; it was good in week four. Plan for the fourth week.