Garage Door Repair Chatbot: Capture Door Type, Fault and Photos

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Garage Door Repair Chatbot: Capture Door Type, Fault and Photos.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Garage Door Repair Chatbot: Capture Door Type, Fault and Photos.

A garage door chatbot should ask, in this order: is anyone at risk or is the door stuck open; what type of door and opener it is; what the fault looks and sounds like; two or three photos; then contact details and a time window. Show a price range before booking, and send emergencies straight to a person.

Keep the flow to about eight taps before the photos, use fixed buttons for anything safety-related, and give AI only two jobs: reading the customer's free-text description and summarising the photos for your dispatcher. The chatbot never explains how to fix a spring or cable. Its job is to arrive at the booking with enough detail that the first technician sent has the right parts and the right slot length.

Follow me on Instagram@sagnikteaches

Start with the safety question, and let it end the chat

The first screen asks one multiple-choice question, because a customer with a hazard should not have to answer eight questions about opener brands before anyone helps. Phrase the options the way people describe the problem, not the way a technician would:

Connect on LinkedInSagnik Bhattacharya
  • Someone is hurt or trapped.
  • The door is stuck open and I can't lock the garage.
  • A cable is hanging loose, or the door has come off its track.
  • None of these.

Each of the first three options stops the normal flow. The table shows what the customer sees and what happens behind the scenes. Treat the wording as a starting point, and set your own call-back time, because only you know whether anyone answers the phone at 2 a.m.

Subscribe on YouTube@sagnikteaches
AnswerWhat the customer seesWhat happens behind the scenes
Someone is hurt or trapped"If anyone is hurt or trapped, call emergency services first. Then call us on [number]. Please keep everyone away from the door."Alert goes to the on-call phone by text and call; chat marked Emergency; no booking offered.
Stuck open, can't lock"We'll take your details so a person can call you back within [your target] minutes. Please don't try to force the door."Name, phone and address collected; the on-call dispatcher rings back; photos optional.
Loose cable or off its track"Please keep people and pets clear of the door and don't use the opener. We'll ring you to arrange a priority visit."Marked Priority; photos requested from a safe distance; a person books the visit.
None of theseThe normal questions continue.AI may still raise the priority if later answers or photos mention injury, a trapped vehicle or snapped parts.

Two rules keep this part honest. First, the bot must never describe how to release, wind, adjust or replace springs or cables. Industry guidance, such as the International Door Association's care and maintenance page, tells owners to have a trained service technician inspect the system when in doubt, and says a door that is hard to lift or won't stay open may be out of balance and needs servicing. Your bot should say the same and stop there.

Second, AI may raise a priority and may never lower one. If a customer taps "None of these" and then types "something snapped and the door fell", the system escalates. If the button says "trapped", nothing the AI reads later can downgrade it. Back the AI up with a plain list of trigger words (trapped, hurt, fell, snapped, stuck open, can't lock), because a fixed list cannot be talked out of a rule.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Door and opener questions that set the van stock and the slot length

Every question in this part earns its place by changing something the dispatcher does: which parts go in the van, how long to block out, or which technician to send. If an answer changes nothing, delete the question. Give every question a "Not sure" button, because "not sure" is information: it tells the bot to ask for a photo instead.

QuestionButtonsWhat the answer changes
What kind of door is it?Sections that fold overhead (sectional); one solid panel that tilts up; a curtain that rolls up; side-hinged doors; not sureParts and technician skills. Show a small picture beside each option, since many owners don't know the trade names. "Not sure" triggers the whole-door photo.
How wide is it?One car; two cars; wider than two cars; not sureSpring and track sizes, how long a visit to block out, and whether to send two people.
What opens it?Chain; belt; screw; mounted on the wall beside the door; hand-operated only; not sureWhether an opener check is needed and which parts are compatible. "Not sure" prompts the opener-label photo.
Roughly how old is the door?Under 10 years; 10 to 20 years; over 20 years; not sureWhether matching parts are likely to be in stock, and whether to offer a replacement quote alongside the repair.
How often is it used?Once or twice a day; several times a day; many times a daySpring wear and the spring rating to recommend (explained below).

The usage question is the one most flows leave out, and it is worth keeping for spring jobs. Springs are rated in open-and-close cycles. One garage door parts supplier's page describes a standard residential torsion spring as commonly designed around 10,000 cycles, and works out that at ten cycles a day such a pair reaches its rating in about 2.7 years. A household that opens the door twice a day and a household of four drivers don't need the same recommendation, so the dispatcher wants to know before quoting. Treat those figures as one supplier's arithmetic, not a promise, because ratings vary by design.

One way this goes wrong: the first draft asks "Torsion or extension springs?" and most testers tap "Not sure". Test the flow on past customers' answers (the last section explains how). When seven of ten test answers are "Not sure", replace the question with a picture choice or a photo request. A question customers can't answer doesn't produce data. It produces abandoned chats.

Fault questions a customer can answer from the floor

Describing the fault is where AI helps most, but start with buttons. Offer a short list of symptoms in plain words, then one follow-up that asks only for something the customer can see or hear from a safe distance. Never ask anyone to lift the door, touch a spring or climb a ladder. The right-hand columns are for your dispatcher only; the customer is never told a diagnosis.

Symptom buttonFollow-up (observation only)What the dispatcher may inferDefault priority
A loud bang, then the door won't liftIs there a visible gap in a spring above or beside the door?A broken spring is likely; confirm the size on sitePriority
Door goes up crooked, or one side hangs lowerIs a cable loose or off its drum?Cable, roller or track fault; the door should not be runPriority
Opener hums or clicks but the door doesn't moveDoes the opener light come on? Is the release handle hanging down?A broken spring, a disconnected trolley or a worn opener gearStandard
Door reverses just before closing, opener lights flashIs anything on the floor in front of the small sensor lights? Are both lights steady?Safety sensors blocked or out of lineStandard
Remote fails, wall button worksWas the remote battery changed recently?Remote or receiver faultRoutine
Grinding, squealing or rattlingIs it on the way up, down or both?Rollers, hinges, tracks or opener chainRoutine
Damaged after a vehicle hit itIs the door still closing? Are there sharp edges?Panel or track replacement, and possibly an insurance claimStandard, or Priority if edges are exposed

After the buttons, add one free-text box: "Anything else we should know?" The AI reads that text for two purposes. It writes a one-line fault summary for the dispatcher, and it scans for escalation words. Because customers describe things in odd ways ("the door dropped like a stone"), this is where a language model beats a keyword list, so keep both.

Photos: three standard shots and the wording that gets them

Customers send better photos when the request says where to stand, what to include and what not to touch. Put one short instruction above each upload slot. Three shots are standard, and a fourth applies only when there is visible damage.

ShotWhat it showsWording above the upload slotSkip when
Whole door from insideDoor type, size, spring position, opener position"Stand inside the garage, a few steps back, and photograph the whole door."Never; if the door is stuck open, shoot it as it is
Spring and cable areaGaps in coils, loose cables, bent track"From a safe distance, photograph the bar above the door and each side of the frame. Don't touch anything and don't stand under the door."The customer isn't sure it's safe
Opener labelMake and model, for parts compatibility"If you can read it from the floor, photograph the label on the motor unit. If you would need a ladder, skip this one."Always skippable
Damage close-upDents, split panels, impact points"Photograph any damage from a few steps away, then closer."There is no visible damage

Where the upload sits matters. A chat widget with a built-in upload field is the smoothest route. If your tool can't take photos, offer a text-message fallback ("Send photos to [business number]") rather than a link to a form that makes people sign in. Google Forms, for example, makes anyone answering a file-upload question sign in to a Google Account first, which is a poor thing to ask of someone standing next to a broken door. During your trial, upload a photo straight from an iPhone and from an Android phone. If either fails, you have found a limit before a customer did.

Photos show people's homes. Tell customers in one line what you do with them ("We use your photos only to prepare your visit, and delete them [number] days after the job closes"), ask them to keep faces, number plates and anything personal out of shot, and set the deletion rule in the tool. You choose the retention period; check what the tool actually does with the files.

Then the AI step. Send each photo to a vision-capable assistant with strict instructions to describe only what is visible. Here is an illustrative output for a double sectional door with a suspected broken spring:

Photo 1 (whole door, inside): double-width sectional door, closed, steel panels, no visible dents. Belt-drive opener on the ceiling.

Photo 2 (spring area): bar above the door with two springs. The left spring shows a visible gap between coils (medium confidence; image slightly dark). Both cables appear to sit on their drums.

Photo 3 (opener label): not readable. Technician to check on site.

The first draft of this output said "broken torsion spring, needs replacing" as a plain fact. That is a diagnosis from a dark photo. The fix is a rule in the instructions: describe, attach a confidence level, never name a cause or a repair. The same draft guessed the opener's brand from its shape, which earned a second rule: don't infer a make or model unless the label is legible. The prompt below puts both rules, and the safety rules from earlier, in copyable form.

You are the booking assistant for [company name], a garage door repair company.
Ask only the questions in the flow, one at a time, using the buttons provided.
1. If the customer reports anyone hurt or trapped, a door stuck open, a loose cable or a door off its track, stop the flow, show the safety message and alert the on-call phone.
2. Never explain how to adjust, release, wind or replace springs or cables.
3. Never state a price. Show only the range from the price table for the fault and door size.
4. When you read free text or a photo you may raise the priority, never lower it.
5. Describe each photo as visible, not visible or cannot tell, with a confidence of low, medium or high. Do not name a cause or a repair. Do not infer a make or model unless the label is legible.
6. Finish by showing the summary to the customer and asking them to confirm or correct it.

One enquiry from the first tap to a booked slot

The example firm has three technicians. At 7.40 on a weekday morning a customer opens the chat after hearing a bang from the garage. It runs like this:

  • Safety question: "None of these."
  • Door: sectional, two cars, belt-drive opener, 10 to 20 years old, used several times a day.
  • Symptom: "A loud bang, then the door won't lift." Follow-up: yes, there is a visible gap in the left spring.
  • Photos: three uploaded, opener label skipped.
  • Price range shown: $240 to $395 for a two-spring replacement on a double door, with the disclaimer below.
  • Time: "Today, after 1 p.m." The chat shows a request, not a confirmed booking, because the tool cannot read the live calendar.

The chat takes about three and a half minutes. The dispatcher receives this summary by text and email:

  • Priority: Standard, same day requested. Flags: none.
  • Customer: [first name], [phone], address collected.
  • Door: sectional, two cars, steel, belt-drive opener, 10 to 20 years old, heavy daily use.
  • Fault: bang this morning, door won't lift, opener hums. Left spring shows a gap (photo 2, medium confidence).
  • Quoted range shown: $240 to $395. Customer continued after seeing it.
  • Photos: three links. Opener label unreadable.
  • For the technician: confirm spring size and door weight on site; check both cables; run the safety tests after the repair.

Now the sum. The firm takes 25 repair enquiries a week, and a phone intake costs the dispatcher about six minutes each, plus a second call when photos are needed. That is 150 minutes a week. Reading a prepared summary takes about a minute and a half, so 25 summaries take about 38 minutes. The dispatcher gets back roughly 112 minutes a week. If better parts-matching also avoids two repeat visits a month at an illustrative $85 each in travel and technician time, that is another $170 a month. These are example figures. Time your own intake calls for a week before you decide whether the flow pays.

The summary also feeds what you already do with enquiries. The garage door lead qualification tutorial covers how to score and answer leads once they arrive, and the summary fields above map straight onto it.

Price-range wording that still holds when the job grows

A chatbot that names a price it can't keep creates the argument you were trying to avoid. A range built from your own invoices is safer. Take the last 20 jobs of one type (say, two-spring replacements on double doors), sort the invoice totals, drop the two lowest and two highest, and publish what is left. With example figures, the sorted totals run $215, $230, $240, $245, $250, $255, $260, $265, $270, $280, $285, $290, $300, $310, $320, $335, $360, $395, $470, $640. Dropping the two ends leaves $240 to $395, and the middle of the list sits near $283.

Do this per door size and per fault, then store the result in a table that the bot reads from. Two checks keep it honest. If more than one job in five lands above the top of your range, widen the range. And rebuild the table every quarter, because parts costs and your own rates move.

The wording that goes beside the range does half the work. A usable version:

Based on typical jobs like yours, a spring replacement usually costs between $[low] and $[high], including labour and a safety check. Your technician confirms the final price after inspecting the door and before any work starts. A larger or heavier door, other damaged parts, or a higher-cycle spring can change it.

For an opener or a replacement door, use a different sentence: "Openers and new doors need a measure and a look, so we'll agree a price at a visit." Don't show a single "from" figure, don't promise a fixed price from photos, and if you charge a call-out or diagnostic fee, show it before the range, not after. The itemised spring and opener quote wording tutorial covers the written quote that follows the visit, and chatbot guardrails shows how to stop the bot promising anything beyond the table.

Booking rules by priority, and what the tool must be able to do

PriorityWhat the bot offersWho confirms
EmergencyNo self-booking; a promised call-back timeOn-call dispatcher, by phone
Priority"We'll ring you to arrange a visit"; photos from a safe distanceDispatcher
StandardTwo or three time windows to requestDispatcher, by text
RoutineA booking link with two-hour windowsThe calendar, automatically
New door or openerA site-visit request, with photos attachedDispatcher

If the chat tool can't read your live calendar, make it a request ("Tell us when suits you and we'll confirm") rather than a booking. Double-booked slots cost more goodwill than a short wait does. If you already run job-management software such as Jobber, its request forms and online booking can sit behind the chat, and Jobber also sells an AI receptionist that answers calls and texts around the clock. Check whether photos come through in those requests before relying on them.

Before you choose a tool, test it against this list:

RequirementHow to test it in a trialIf it's missing
Photo upload inside the chatUpload from two different phones; note the size limitText-message fallback, or a form that doesn't force a sign-in
Branching on button answersTap "stuck open" and confirm the routine questions never appearPick another tool; prompts alone can't guarantee this
Instant alert on an emergency answerTrigger it at night and see who gets the text, and whenAdd an automation that texts the on-call phone
Summary sent to email, CRM or job appCheck it arrives with photo links you can openRoute it through an automation step
Hand-over to a person mid-chatAsk for a human at question threeSee when a chatbot should hand over
A cost you can predictWork out 100 chats a month under the vendor's pricing modelIntercom's Fin charges $0.99 per resolved outcome; Jobber's Receptionist add-on lists $29 for 30 conversations then $0.79 each (late October 2026; check both)

Ten old tickets before the first live customer

Pull ten past jobs: a mix of routine ones, two emergencies and two odd ones. Replay each customer's likely answers through the flow, and compare what the bot produced with what the technician found. The pre-launch chatbot testing tutorial has the wider method; here is what a garage door run looks like in practice (illustrative):

TicketRight priorityBot's priorityFix
Broken spring, car stuck insidePriorityPriorityNone
Door stuck open after a stormEmergencyStandardOption wording missed "I can't lock the garage"; reworded
Opener hums, trolley disconnectedStandardPriorityAcceptable: AI raised it, never lowered
Noisy rollersRoutineRoutineNone
Sensors misalignedRoutineRoutineNone
Vehicle hit the panelStandardRoutineAdded the "hit by a vehicle" symptom button
Replacement door enquiryQuoteQuoteNone
Customer unsure of door typePhoto neededPhoto requestedNone
Cable snapped, door crookedPriorityPriorityNone
Remote won't workRoutineRoutineNone

Eight of ten matched, and the two misses were wording problems you fix in minutes. Run the ten again after the changes. In the first month live, read the first 30 chats yourself: note the question where people leave, the answers that are mostly "Not sure", and any chat where the dispatcher still had to phone for basic details. Each of those is a question to rewrite or remove. If a customer asks for a person at any point, the chat should say so and give your number, not argue.

Finally, put a line at the top of the chat saying it is an automated assistant and how to reach a person. An assistant that says what it is from the first line sets fair expectations, and a customer who wants a human knows where to go. If you want help fitting this flow to your own booking tool and phone set-up, my AI implementation consultation covers exactly that kind of job.

Questions to settle before the chatbot goes live

Should the chatbot quote a price?

Show a range, not a quote. Build it from your last 20 or so invoices for that fault, trim the extremes, and state that the technician confirms the price after inspecting the door and before any work starts. Keep the range in a table the bot reads from, so it never invents a number. A single low figure attracts enquiries you can't honour.

What if the customer can't or won't upload photos?

Let them skip. Photos make the first visit more accurate, but a customer in a hurry still needs a booking. Offer a text-message fallback to your business number, mark the job 'no photos' in the summary so the dispatcher allows a longer slot, and ask the technician to photograph the door on arrival for your own records.

Can AI tell which part has failed from a photo?

It can describe what is visible, such as a gap between spring coils or a cable off its drum, but it cannot reliably diagnose, and poor light or an awkward angle makes it worse. Treat the output as a note for the dispatcher with a confidence label. The technician decides on site, and the customer is never told to fix anything from it.

Does the chatbot need to say it is an AI?

Say so in the first line and offer a way to reach a person. It builds trust and explains the automated tone. If you have customers in the EU, the AI Act's transparency duty for chatbots has applied since 2 August 2026, so ask your adviser to check your exact wording.

Further reads

Sources: Google Docs Editors Help (Google Forms question types), International Door Association care and maintenance page, DDM Garage Doors' high-cycle torsion spring page, Jobber and Intercom pricing pages.

Want garage door enquiries sorted before they reach dispatch?

On a 1:1 call we'll map how enquiries reach you now, decide which questions and photos your dispatcher really needs, and check whether your current booking tool can run the flow.

Book a 1:1 call with me