Following Up Unapproved Repair Estimates With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Following Up Unapproved Repair Estimates With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Following Up Unapproved Repair Estimates With AI.

Tag every unapproved estimate by why the work matters (safety, likely failure soon, or can wait), then have AI draft three short messages per estimate: a check-in after two days, a plain-English reminder of the fault at day seven, and a final note when prices or the season change. Offer partial approval, stop on any reply, and have a person answer.

Repair estimates stall for different reasons than sales quotes. The customer has already paid for a call-out, the fault is real, and the question is usually "which bits do I pay for now?" rather than "do I want this at all?" A follow-up that lets them approve one line and park the rest will win more work than three polite versions of "just checking in."

Follow me on Instagram@sagnikteaches

Why repair estimates stall, and what each follow-up must answer

Before writing anything, look at a dozen estimates that went quiet last month and guess the reason for each. The pattern is usually some mix of these:

Connect on LinkedInSagnik Bhattacharya
  • Price shock. The total was higher than expected, often because three items were bundled. The answer is a breakdown and a cheapest-useful option.
  • The note made no sense. "Cap reading low, bearings noisy, recommend pump" reads as jargon. The answer is one sentence per item in normal words.
  • The fault went away. The heat pump started again, so the customer assumes it's fixed. The answer is an honest line about intermittent faults, without scare tactics.
  • Getting another price. Fine. The answer is an offer to answer questions, not pressure.
  • Waiting for money. The answer is a clear "this price holds until" date and, for non-urgent items, a reminder later.

Each message in your sequence should address one of these, which is why generic chasers underperform: they answer none of them.

Subscribe on YouTube@codingliquids

Stage 1: Put every open estimate in one list (about an hour)

Export open estimates from your job software, or start a spreadsheet if they live in email. Job management tools usually have a status for this; in Jobber, for example, it's quotes "awaiting response." You need these columns:

ColumnExampleWhy the AI needs it
Estimate number and date sentE-2217, 3 SepSets the follow-up timing
Customer first name and channel[first name], textPersonal greeting; same channel as the estimate
Line items with pricesGearbox $185; handle set $60; adjustment $40Allows partial approval
Technician's note per line"Gearbox worn, key stiff, will fail"Source of the plain-English explanation
Urgency tagSoonDecides tone and number of reminders
Price valid until3 OctHonest reason for the final message
StatusOpen / replied / approved / declinedStops messages the moment anything changes

The status column is the one people forget. If the sequence keeps running after a customer has phoned to approve, you look disorganised, and if it runs after a "no thanks," you look pushy.

Stage 2: Turn technician notes into reasons a customer understands

This is the part AI does best. Paste the line items and notes for one estimate and ask for a plain rewrite plus an urgency tag. Never let it add consequences the technician didn't state.

You are helping a repair business explain an estimate to a customer.
For each line item below:
1. Rewrite the technician's note in one plain sentence (no jargon,
   under 25 words).
2. Tag it SAFETY, SOON or CAN WAIT, using only the technician's note.
   If the note doesn't say, tag it UNSURE.
3. Do not add risks, consequences or time frames that are not in the
   note. Do not use words like "dangerous" unless the note does.

Line items:
- Run capacitor $95. Note: "Cap reading 32uF on a 45uF rating, replace."
- Blower motor $420. Note: "Bearings noisy, still running. Replace
  within the season."
- Condensate pump $160. Note: "Line part-blocked, cleared today.
  Pump weak, recommend replacing."

An illustrative output:

Run capacitor ($95), SOON: This part helps the outdoor unit start, and it's testing well below its rating, so the unit may struggle or stop starting.
Blower motor ($420), CAN WAIT: The indoor fan motor is noisy but working; the technician suggests replacing it within the season.
Condensate pump ($160), UNSURE: We cleared a partial blockage today; the pump that removes water is weak and we recommend replacing it.

Two edits a technician would make: confirm the capacitor tag is fair, and decide whether the pump is SOON (a failed pump can mean water where the customer doesn't want it) or genuinely optional. That decision belongs to the person who saw the unit, which is why UNSURE is a useful tag rather than a failure.

Stage 3: Three messages, written for one real estimate

Here is a filled-in sequence for an illustrative locksmith estimate: a worn gearbox in a uPVC back door's multipoint lock ($185), a new handle set ($60) and a door adjustment ($40), total $285, sent by text on 3 September.

Day 2, text:

Hi [first name], it's [your name] from [business]. Just checking the estimate for your back door came through OK. Happy to answer any questions, or you can reply YES to book.

Day 7, text or email:

Hi [first name], a quick reminder about the back door. The main job is the gearbox ($185): it's the part that works the locking points, and it's worn, which is why the key is stiff. If it fails, the door can jam shut or stop locking at all. The handle and adjustment ($100) can wait if you'd prefer to do the gearbox on its own. Reply GEARBOX to book just that, or YES for everything.

Day 21, email:

Hi [first name], the price on your estimate holds until 3 October, after which I'll need to re-check parts costs. No pressure either way. If you've had it sorted elsewhere, a quick reply means I won't message again.

Notice what the day-7 message does: it names the item that matters, explains it in one sentence, and offers the smaller approval. The final message gives a real reason to decide and an easy way to say no. For a CAN WAIT estimate, skip the day-7 fault explanation and replace day 21 with a single seasonal reminder months later, such as before winter for a heating repair.

For the noisy blower motor tagged CAN WAIT earlier, that one reminder might go out in early spring, before the cooling season, along these lines:

Hi [first name], when we serviced your system in [month] the indoor fan motor was noisy but still running, and we said it could wait. Before the warm weather, it's worth a listen: if it's got louder or the airflow feels weaker, we can replace it ($420 on the original estimate; I'll confirm the current parts price). If it sounds the same, no action needed and I won't chase again.

It reminds the customer what was found, gives them a way to judge it themselves, and is honest that the price may have moved since the estimate expired.

For sales quotes, where the customer hasn't committed to anything yet, the rhythm and tone are different; the decorator's playbook for silent quotes covers that case.

Stage 4: Send them automatically, with a human glance first

You have two workable routes.

Inside your job software. Jobber's quote follow-ups, on its Connect plan and above, let you set two automatic reminders for quotes still awaiting a response, anywhere from 1 to 90 days after sending; each goes by the same method as the original quote, at the same time of day. The wording is a template with the customer's details filled in, so it can't explain each fault individually. The workaround is to put the AI-written day-7 explanation into the quote's own message or notes when you send it, and keep the automatic reminders short. Jobber, Housecall Pro and ServiceTitan's AI features compared covers what each platform can automate.

A spreadsheet plus an automation tool. If estimates live in a spreadsheet, a Zapier or Make scenario can check each morning for rows reaching day 2, 7 or 21 with status "Open," draft the message with an AI step, and save it as a draft for you rather than sending it. Zapier's Professional plan starts at $29.99 a month billed monthly for 750 tasks, and an AI by Zapier step counts as 1, 3 or 5 tasks depending on the model tier, so do the sum before you pick one. Sixty open estimates a month at three drafts each is 180 runs. With the cheapest AI tier plus one step to save the draft, that's 2 tasks a run, or 360 tasks: comfortable. On the top tier it's 6 tasks a run, or 1,080, which is over the 750 allowance. The morning check itself is a trigger and uses no tasks. Make starts from about $9 a month on credits.

Keep the approval step. Ten minutes each morning reviewing drafts catches the one message going to a customer who rang yesterday. How to set up human review for AI work without slowing down shows how to keep that check quick.

Stage 5: Let AI draft the replies, and a person send them

Replies are where jobs are won, and they are too varied to automate fully. AI is useful here as a first-draft writer. A realistic example of a message that arrives on day 7:

hi ya its working fine now tbh so not sure i need it all?? 420 for a fan seems a lot

Paste it with the estimate and ask for a friendly reply that answers both points without pressure. An illustrative draft, after a quick edit:

Thanks for getting back to me. That's fair on the fan motor: it's working, just noisy, so there's no rush on that one and you could leave it until it gets worse. The capacitor is the one I'd do now ($95), because it's the part that helps the outdoor unit start, and it tested well below its rating. Want me to book just that?

A short guide for the reply types you'll see most:

  • "Too expensive": split the estimate and name the one item worth doing now.
  • "It's working now": say honestly whether the fault is intermittent, using the technician's words.
  • "Getting other quotes": thank them, offer to explain anything, stop the sequence.
  • "Not now": ask if you can remind them at a sensible time, and set that date.
  • "Already done": thank them, close the estimate, and note the reason.

The reply keywords in the messages (YES, GEARBOX) are for the customer's convenience, not for a machine to act on. Picture an automation set to book the full job whenever a reply contains "yes". The customer on the locksmith estimate texts back "yes to the gearbox only pls, can do the rest after payday", the booking goes in for all three items at $285, and she finds out when the locksmith arrives with a new handle set. Route every reply to a person, let AI suggest the status change ("partial approval: gearbox $185"), and have whoever books the job confirm the line items back to the customer in one sentence.

An illustrative HVAC installer with $38,000 in open estimates

Imagine a heating and cooling installer with four technicians who also run repair calls. A spreadsheet export shows 64 repair estimates older than three days, averaging $590, worth $37,760 in total. Follow-up so far has been the owner ringing a few customers when he remembers, perhaps one estimate in four.

Setup takes about 90 minutes: export, add the urgency and price-valid columns, write the prompt, draft the first batch. The technicians spend 20 minutes confirming the SAFETY, SOON and UNSURE tags on the batch. After that, reviewing drafts and replies takes about 15 minutes a day.

Say that over the next six weeks, 19 of the 64 estimates are approved in full or in part, worth $9,400, with 7 of those as partial approvals of a single SOON item that probably would have been lost as an all-or-nothing estimate. Whether a given firm sees more or less than that depends on its prices and customers; the point is that the partial-approval option and the plain explanation are what move the numbers, not the automation itself.

In a kitchen fitter's repair work, the same structure applies to items like a lifting worktop joint (water getting into the chipboard is a SOON item) versus replacing tired cabinet hinges (CAN WAIT). The urgency tag drives everything else.

Lines not to cross when chasing repair work

  • No invented danger. If the technician didn't say "risk," the message doesn't either. Checking the AI's draft against the original note takes seconds.
  • Real safety issues are not a reminder sequence. Anything genuinely dangerous must be explained face to face and in writing on the day, following your trade's own safety procedures, not left for a day-7 text.
  • Three messages, then stop. A fourth unanswered chaser tends to generate complaints, not bookings.
  • A "no" ends it. Mark the estimate declined and record the reason; the reasons become your pricing feedback.
  • Keep prices honest. Don't threaten a price rise you aren't planning. The "valid until" date should reflect real parts pricing.

The same tone rules apply when the chasing is about money you're already owed; polite AI invoice reminders for trades covers that sequence.

Measuring whether the chasing pays

Add three columns to the list and review monthly: outcome (approved in full, part, declined, no reply), days from estimate to decision, and which message the customer replied to. After two months you'll know which message earns its place. Don't be surprised if the explanation message does more work than the reminder, or if SOON items convert far better than CAN WAIT ones; if so, that tells you to spend your follow-up effort on the first group and move the second into seasonal reminders.

For the HVAC installer above, the outcome column at the end of six weeks might read like this (illustrative):

OutcomeEstimatesWhat it tells the owner
Approved in full12Most replied to the day-7 explanation, not the day-2 check-in
Approved in part7All seven were a single SOON item split from a bundle
Declined: price14Nine were bundles over $900; split these on the day in future
Declined: used another firm6Compare prices on the two most common jobs
Declined: "working fine now"5Four were capacitor faults; add an intermittent-fault line to that note
No reply after three messages20Move CAN WAIT items to a seasonal reminder, then close

The last column is the useful part. Nine price declines on bundles over $900 suggest the split into SOON and CAN WAIT should happen on the estimate itself, not three weeks later in a follow-up.

If complaints or opt-outs rise, shorten the sequence before changing anything else. For the wider approach to automated chasing that stays polite, see how to automate sales follow-ups without being pushy.

Further reads

Sources: Jobber help pages (Automations: quote follow-ups); Zapier pricing and AI by Zapier task counting as listed on Zapier's site.

Want your open estimates chased properly?

On a 1:1 call we'll pull your open estimates, decide how to tag them, and set up follow-ups in the job software you use now, with a review step so nothing goes out that your technicians wouldn't say.

Book a 1:1 call with me