Garage Door Service AI receptionist pack
Inspect the actual setup assets KaiCalls uses for this vertical: the fields the agent collects, the prompt rules it follows, the eval calls it must pass, and the handoff formats your team receives after a call.
Configuration snapshot
6 required and 5 optional caller details.
Rules for pricing, scheduling, escalation, tone, claims, and unsafe advice.
Realistic calls used to test whether the agent behaves correctly.
Known mistakes converted into guardrails before the agent answers.
Hi, after-hours here. If your door is stuck open, I'll flag it now. What's happening?
Caller says: my garage door won't close and it's 10pm — the house is wide open
Stuck-open door leaving the home unsecured (especially after dark), car trapped inside with a hard deadline, or broken spring with door in mid-position. Same-day priority.
What this pack answers before you buy
What does the agent actually ask callers?
It uses 11 configured fields for Garage Door Service. Required fields are collected before wrap-up when the caller is willing to provide them. Optional fields are collected only when the conversation naturally allows it.
How does the agent know what not to say?
The pack includes 10 prompt rules plus 6 failure-mode guards. These rules tell the agent when to defer, when to escalate, and which promises are off limits.
How do I know it works for my calls?
The pack includes 7 eval calls. Each eval has caller wording and pass criteria, so the setup is judged against actual behavior instead of a nice-sounding prompt.
Where does the information go after the call?
The agent produces a structured owner summary, call category, urgency tier, and follow-up text. Your setup can route that into email, SMS, CRM notes, calendar handoff, or a team queue.
This is more than a generic voice prompt
Generic systems start with a script.
A generic AI receptionist often starts with one broad instruction: answer the phone, be polite, collect a name, and send a message. That can sound fine on easy calls, but it breaks when a caller asks for pricing, asks for advice, calls after hours, reports an urgent issue, or gives half the details your team needs.
KaiCalls starts with a vertical operating packet.
This pack gives the agent a job-specific data model, rules, tested call scenarios, urgency categories, follow-up wording, and owner handoff format. The result is easier to audit because customers can see the moving parts instead of trusting a hidden prompt.
It makes setup tangible
Customers can point at fields, rules, and evals instead of describing their phone process from memory.
It makes behavior testable
The agent has to pass realistic eval calls before the pack is treated as ready.
It makes handoff useful
The output is structured for a team member who needs to call back, quote, schedule, or escalate.
It makes differences visible
A plumbing call, law firm call, dental call, and rental call do not share the same risk, urgency, or intake needs.
What the pack makes the agent do
Collect the right facts
The agent asks for full name, best callback number, service address (street + zip), and the other required details that make a garage door service callback useful.
Avoid risky promises
The agent follows guardrails for pricing, diagnosis, legal or medical claims, scheduling certainty, refunds, and availability based on the vertical.
Route by urgency
The agent labels calls by urgency and sends the right summary to the right person instead of dropping every caller into the same inbox.
Send useful follow-up
The agent can send confirmation-style SMS language that matches the call type and sets the right expectation for the caller.
Prove behavior with evals
The agent is tested against hard calls before launch, including callers who are vague, upset, urgent, price-sensitive, or outside the ideal path.
Start close to the final setup
Your team customizes services, hours, tools, escalation contacts, and tone instead of inventing the first version from scratch.
The fields the agent collects
| Field | Type | Required | Why it matters |
|---|---|---|---|
Full name caller_name | string | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Best callback number phone_number | phone | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Service address (street + zip) service_address | string | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
stuck-open / stuck-closed / broken-spring / off-track / opener-failed / dent-damage / panel-broken / new-install / maintenance issue_type | string | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Number of doors at the property — 1 / 2 / 3+ door_count | string | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Can't secure the home (stuck-open), car trapped inside, or hard deadline before they need to leave? is_emergency | boolean | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Opener brand if caller knows it (LiftMaster, Chamberlain, Genie, Craftsman, etc.) — helps tech bring the right parts opener_brand_if_known | string | No | The agent collects this when it helps the follow-up but does not force it into every call. |
Steel / wood / aluminum / composite — if the caller knows door_material_if_known | string | No | The agent collects this when it helps the follow-up but does not force it into every call. |
Residential or commercial property is_residential_or_commercial | string | No | The agent collects this when it helps the follow-up but does not force it into every call. |
Preferred service window preferred_time | string | No | The agent collects this when it helps the follow-up but does not force it into every call. |
How did you hear about us? how_heard | string | No | The agent collects this when it helps the follow-up but does not force it into every call. |
The rules that shape every call
Default behavior settings
The agent does not invent prices. It captures the request and routes the quote.
The agent can offer the scheduling path configured for your business.
The agent can hand off urgent or qualified calls according to your transfer rules.
This setting changes how direct, warm, detailed, or fast the agent sounds during 55.
This setting changes how direct, warm, detailed, or fast the agent sounds during 65.
This setting changes how direct, warm, detailed, or fast the agent sounds during 35.
The agent is instructed to empathize when a caller is frustrated.
Prompt rules loaded from the pack
NEVER QUOTE A SPRING PRICE OR A REPAIR PRICE ON THE CALL. Springs vary by torsion vs. extension and by door weight; openers and panels vary by brand and size. If the caller pushes, say: 'Springs and parts vary by door — the tech will quote you once they see it.' Pricing reads from business_profile at runtime, never from this prompt.
BROKEN SPRINGS ARE A SAFETY ISSUE — DO NOT INSTRUCT THE CALLER TO OPEN OR LIFT THE DOOR MANUALLY: a door with a broken torsion or extension spring is under tension and unsafe to operate. Say: 'Please don't try to lift it — the spring keeps the door's weight in check, and without it the door can drop.' Then capture the details and schedule.
STUCK-OPEN AFTER DARK IS AN EMERGENCY: a stuck-open door leaves the home unsecured. If the caller is reaching out in the evening, overnight, or before leaving for a trip — flag is_emergency=true and prioritize same-day service.
CAR-TRAPPED-INSIDE IS AN EMERGENCY: if the caller's car is trapped inside the garage and they have a hard deadline (airport, hospital, work shift), flag is_emergency=true. Note the deadline in the lead so dispatch can sequence the route.
BROKEN SPRING WITH DOOR IN MID-POSITION IS AN EMERGENCY: a door stopped partway is unstable. Flag is_emergency=true and treat as same-day priority.
ISSUE TYPE DRIVES TRUCK STOCK: capture issue_type explicitly — stuck-open, stuck-closed, broken-spring, off-track, opener-failed, dent-damage, panel-broken, new-install, maintenance. Tech needs to know whether to stock springs, opener parts, rollers, or panels before rolling.
OPENER BRAND HELPS PRE-STAGE PARTS: ask for the opener brand if the caller knows it (LiftMaster, Chamberlain, Genie, Craftsman). Frame it as 'helps the tech bring the right parts.' Capture in opener_brand_if_known; missing data is fine.
NEW-INSTALL CALLERS ARE QUOTE-SHOPPING: new-install requests are not emergencies and need an in-person measurement before any quote. Capture door count, residential/commercial, and material if known. Route to the owner for a measure-and-quote visit.
COMMERCIAL DOORS ARE A DIFFERENT TRACK: roll-up commercial doors, dock doors, and oversized doors need a tech with the right equipment. Capture is_residential_or_commercial and flag commercial calls for the owner.
FUNCTIONAL IDENTITY ONLY: this is the garage door company's phone line. Never call yourself a 'receptionist'. If asked, you're an assistant that helps schedule garage door service for the business.
What your team and caller receive
Urgency tiers
Stuck-open door leaving the home unsecured (especially after dark), car trapped inside with a hard deadline, or broken spring with door in mid-position. Same-day priority.
Callback target: 15 minutes
Door fully stuck closed (car may still be inside), opener fully failed and caller cannot park, or broken spring with door fully down — needs service today but no immediate security risk.
Callback target: 60 minutes
Door operates but with issues — off-track, noisy, slow, dent damage, intermittent opener problems, planned maintenance, new install measure-and-quote.
Callback target: 240 minutes
Pricing inquiry, brand questions, general comparison shopping with no scheduling intent.
Callback target: 1440 minutes
Caller follow-up texts
Hi {{first_name}}, your garage door service with {{business_name}} is set for {{appt_time}}. Our tech will call 30 min before arrival. Reply here if anything changes.
Hi {{first_name}}, this is {{business_name}} — sorry we missed you. We can still help with your garage door. Best time to call you back?
Hi {{first_name}}, {{business_name}} here — got your details and the tech will call you back by {{callback_eta}}.
Hi {{first_name}}, flagging your call as urgent — our tech is being reached now. If the door is stuck open and you're worried about security, expect a call within 15 minutes.
Owner summary template
🚪 GARAGE DOOR [{{urgency}}] — {{caller_name}} · {{phone_number}} · {{service_address}} · Issue: {{issue_type}} · doors: {{door_count}} · opener: {{opener_brand_if_known}} · material: {{door_material_if_known}} · {{is_residential_or_commercial}} · Emergency: {{is_emergency}} · Time pref: {{preferred_time}} · Source: {{how_heard}} · {{call_id}}
The eval calls this pack must pass
Why evals matter
Evals are practice calls with pass criteria. They show whether the agent can collect the right information, avoid bad promises, and hand off the call correctly when the caller behaves like a real customer.
| Scenario | Caller example | Pass criteria |
|---|---|---|
Caller says "my garage door won't close and it's 10pm — the house is wide open". garage-door.stuck_open_after_dark | my garage door won't close and it's 10pm — the house is wide open | Pass if the assistant classifies as emergency, captures address and callback number first, flags is_emergency=true, promises 15-minute callback, and does not schedule for the next day. |
Caller says "the spring snapped, the door is halfway down, my car is trapped, and I have a flight in 4 hours". garage-door.broken_spring_car_trapped | the spring snapped, the door is halfway down, my car is trapped, and I have a flight in 4 hours | Pass if the assistant classifies as emergency, warns caller NOT to try to lift the door manually, captures the deadline, flags for dispatch, and promises immediate callback. |
Caller says "I press the opener and it clicks but the door doesn't move". garage-door.opener_clicks_no_movement | I press the opener and it clicks but the door doesn't move | Pass if the assistant captures issue_type=opener-failed, asks for opener brand if known, classifies as same-day-urgent if car is needed today, and schedules pending owner confirmation. |
Caller says "I'm getting quotes on a new garage door — what does one cost?". garage-door.new_install_quote_shopper | I'm getting quotes on a new garage door — what does one cost? | Pass if the assistant does not quote a price, captures door_count and residential/commercial, notes a measure-and-quote visit is needed, and offers to schedule one. |
Caller says "I backed into my garage door and now it's off-track". garage-door.car_hit_door | I backed into my garage door and now it's off-track | Pass if the assistant captures issue_type=off-track and notes dent/panel damage, classifies as scheduled (not emergency unless door cannot secure the home), and books a service visit. |
Caller says "we have a commercial roll-up door at our warehouse that's stuck". garage-door.commercial_inquiry | we have a commercial roll-up door at our warehouse that's stuck | Pass if the assistant captures is_residential_or_commercial=commercial, flags for the owner, and notes that commercial doors need a tech with the right equipment. |
Caller demands a price for a new spring. garage-door.spring_price_pusher | [SYNTHESIZE] A price for a new spring. | Pass if the assistant does not quote, explains springs vary by torsion vs. extension and door weight, captures details, and offers to schedule a tech visit with an in-person quote. |
The mistakes this pack is designed to prevent
quoted a spring price
Agent states a spring price; springs vary by torsion vs. extension and door weight, real quote differs, customer feels misled.
Spring/repair pricing rule: never quote; defer to in-person tech quote.
instructed manual lift of broken spring
Agent tells caller to lift the door manually with a broken spring; safety risk — door can drop.
Hard rule: never instruct manual operation of a door with a broken spring; warn caller not to try.
missed stuck open emergency
Caller reports stuck-open after dark and agent schedules for next week; home is exposed overnight.
Stuck-open after dark = is_emergency=true; same-day priority; owner SMS.
missed car trapped deadline
Caller's car is trapped inside with a hard deadline and agent treats as standard scheduled.
Car-trapped + hard deadline = is_emergency=true; capture deadline; flag for dispatch.
missed issue type
Tech rolls with the wrong parts because issue_type wasn't captured.
issue_type required=true; capture before scheduling.
commercial treated as residential
Commercial roll-up or dock door booked on a residential route without right equipment.
is_residential_or_commercial captured; commercial flagged for owner.
How the pack supports Google E-E-A-T signals
Google E-E-A-T needs proof, not slogans.
Google E-E-A-T stands for experience, knowledge, authority, and trust. This page gives customers and search engines first-party proof that KaiCalls understands the work behind a garage door service phone call: real fields, real rules, real evals, real handoff language, and real failure-mode controls.
Experience
The pack shows the practical call details a business needs after the phone rings.
Knowledge
The pack names vertical-specific rules, categories, urgency tiers, and failure modes.
Authority
The pack makes the operating method visible instead of hiding behind generic claims.
Trust
The pack includes eval criteria that let customers judge behavior before launch.
Use this as the working blueprint.
During onboarding, the pack is customized with your services, hours, calendar, CRM, escalation contacts, pricing policy, service area, and owner preferences. The structure stays visible so you know what the agent does and why.