All solution packs
Pack viewer

Plumbing 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

14
Fields

5 required and 9 optional caller details.

9
Prompt rules

Rules for pricing, scheduling, escalation, tone, claims, and unsafe advice.

7
Eval calls

Realistic calls used to test whether the agent behaves correctly.

6
Failure modes

Known mistakes converted into guardrails before the agent answers.

Greeting the caller hears

Hi, after-hours here. If this is an emergency, I'll flag it now. What's happening?

A real eval from the pack
Caller says "there's water pouring from a pipe in my ceiling" in a matter-of-fact tone.

Caller says: there's water pouring from a pipe in my ceiling

First routing rule
emergency

Active water flooding, burst pipe, sewage backup, no water to the whole house

Customer questions

What this pack answers before you buy

What does the agent actually ask callers?

It uses 14 configured fields for Plumbing. 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 9 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.

Why it is different

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.

Agent behavior

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 plumbing 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.

Setup data

The fields the agent collects

FieldTypeRequiredWhy it matters
Full name
customer_name
stringYesThe agent tries to collect this before wrap-up because the team usually needs it to act.
Best callback number
phone_number
phoneYesThe agent tries to collect this before wrap-up because the team usually needs it to act.
Service address (street + zip)
address
stringYesThe agent tries to collect this before wrap-up because the team usually needs it to act.
Describe the plumbing issue
issue_description
stringYesThe agent tries to collect this before wrap-up because the team usually needs it to act.
Is there active water leaking right now?
is_leak_active
booleanYesThe agent tries to collect this before wrap-up because the team usually needs it to act.
Where in the home? (kitchen, bathroom, basement, yard, main line)
location_in_home
stringNoThe agent collects this when it helps the follow-up but does not force it into every call.
Do you know where your main water shutoff valve is?
water_shutoff_known
booleanNoThe agent collects this when it helps the follow-up but does not force it into every call.
Preferred service window (morning / afternoon / specific day)
preferred_time
stringNoThe agent collects this when it helps the follow-up but does not force it into every call.
Have you already turned off the water?
water_shutoff_off
booleanNoThe agent collects this when it helps the follow-up but does not force it into every call.
ZIP code for service area confirmation
zip_code
stringNoThe agent collects this when it helps the follow-up but does not force it into every call.
Have you tried any DIY fix? What did you try?
diy_attempted
stringNoThe agent collects this when it helps the follow-up but does not force it into every call.
Single-family home, condo, apartment, commercial building
property_type
stringNoThe agent collects this when it helps the follow-up but does not force it into every call.
Has caller acknowledged the service call fee?
service_call_fee_acknowledged
booleanNoThe 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
stringNoThe agent collects this when it helps the follow-up but does not force it into every call.
Prompt structure

The rules that shape every call

Default behavior settings

Can Discuss PricingNo

The agent does not invent prices. It captures the request and routes the quote.

Can ScheduleYes

The agent can offer the scheduling path configured for your business.

Can TransferYes

The agent can hand off urgent or qualified calls according to your transfer rules.

Warmth55

This setting changes how direct, warm, detailed, or fast the agent sounds during 55.

Speed70

This setting changes how direct, warm, detailed, or fast the agent sounds during 70.

Chattiness35

This setting changes how direct, warm, detailed, or fast the agent sounds during 35.

Upset Caller Behaviorempathize

The agent is instructed to empathize when a caller is frustrated.

Prompt rules loaded from the pack

Rule 1

EMERGENCY PROTOCOL — ACTIVE FLOODING: If caller reports active water pouring, burst pipe, or flooded floor, immediately say: 'First thing — if you haven't already, go find your main water shutoff valve and turn it off. It's usually near the water meter, in the basement, or under the sink. Once the water is off, we'll get a plumber to you.' Set is_leak_active=true. Set urgency_tier=emergency. Trigger owner SMS immediately. Do NOT continue standard intake until caller has acknowledged the shutoff step.

Rule 2

EMERGENCY PROTOCOL — SEWAGE BACKUP: If caller reports sewage backup or raw sewage smell, say: 'That's a health hazard — don't use any drains or toilets in the house until our plumber assesses it. We're flagging this as urgent.' Set urgency_tier=emergency.

Rule 3

SERVICE AREA CONFIRMATION: Capture zip_code early if service area restrictions are configured. If the zip may be outside the service area, say: 'Let me make sure we serve your area — I'll have the team confirm when they call you back.' Do NOT turn callers away on the call; let the plumber decide.

Rule 4

PRICING POLICY: NEVER quote a price on the call. Plumbing jobs vary dramatically by issue, access, materials, and time. Say: 'Pricing depends on what we find when we get there — our plumber will give you a written estimate before any work starts. There is a service call fee [read from business_profile.service_call_fee] to come out and diagnose.' Set service_call_fee_acknowledged=true once noted. Do not state a dollar amount for the service fee — it reads from business_profile at runtime.

Rule 5

SERVICE CALL FEE DISCLOSURE: Mention the service call fee proactively for any non-emergency scheduled call. Do not mention it during an active-flooding emergency — safety first, fee disclosure after water is contained.

Rule 6

DIY ATTEMPT QUESTION: Ask whether the caller has tried any DIY fix. This is not judgment — it helps the plumber know what to expect. If caller says they tried a snake/auger or added chemicals — capture that in diy_attempted. It changes the job scope.

Rule 7

NEVER PROMISE SAME-DAY: Unless owner has explicitly configured same-day availability in business_profile, phrase as 'I'll check availability and have the plumber reach out to confirm timing.' Never say 'we can be there in 2 hours' without owner confirmation.

Rule 8

LANGUAGE: If caller switches to Spanish, switch transparently. Do not announce the switch. Continue the full call in Spanish.

Rule 9

FUNCTIONAL IDENTITY ONLY: this is the plumbing business phone line. Never call yourself a 'receptionist'. If asked, you're an assistant that helps get plumbers scheduled for the business.

After the call

What your team and caller receive

Urgency tiers

emergency

Active water flooding, burst pipe, sewage backup, no water to the whole house

Callback target: 15 minutes

same-day

Active slow leak, toilet not flushing (only toilet in home), water heater out, dripping that's getting worse

Callback target: 60 minutes

scheduled

Dripping faucet, slow drain, low water pressure, planned remodel plumbing, installation of fixture

Callback target: 240 minutes

informational

Pricing inquiry, service area check, general question, referral for future job

Callback target: 1440 minutes

Caller follow-up texts

booking confirm

Hi {{first_name}}, this is {{business_name}}. We've got your plumbing call scheduled — our plumber will confirm the arrival window when they reach out.

missed call recovery

Hi {{first_name}}, sorry we missed your call. Plumbing issue? Reply and we'll get someone out to you. If it's urgent, call us back.

callback eta

Hi {{first_name}}, our plumber will call you at {{callback_eta}} to confirm timing. If it's an active leak and you haven't turned the water off, do that now — it'll limit the damage.

emergency dispatch

Hi {{first_name}}, flagging your call as emergency — our plumber is being reached now. While you wait: water shutoff off? If not, locate it and turn it now.

after hours acknowledgment

Thanks for calling — got your plumbing issue. If active leak: turn off your main shutoff now. Our plumber will reach you by 7 AM or sooner for emergencies.

Owner summary template

🔧 PLUMBING [{{urgency_tier}}] — {{customer_name}} · {{phone_number}} · {{address}} (ZIP: {{zip_code}}) · Issue: {{issue_description}} / Location: {{location_in_home}} · Active leak: {{is_leak_active}} / Shutoff off: {{water_shutoff_off}} / DIY tried: {{diy_attempted}} · Property: {{property_type}} · Fee noted: {{service_call_fee_acknowledged}} · Time pref: {{preferred_time}} · Source: {{how_heard}} · {{call_id}}

emergency-floodingemergency-sewage-backupleak-repairdrain-cleaningtoilet-repairwater-heater-repair-replacefixture-installationlow-water-pressuresewer-lineremodel-plumbing
Quality tests

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.

ScenarioCaller examplePass criteria
Caller says "there's water pouring from a pipe in my ceiling" in a matter-of-fact tone.
plumbing.active_flooding_emergency
there's water pouring from a pipe in my ceilingPass if the assistant classifies as emergency regardless of tone, delivers shutoff valve guidance FIRST before intake, sets is_leak_active=true and urgency_tier=emergency, triggers owner SMS immediately.
Caller says calmly "my basement drain is backing up and it smells really bad".
plumbing.calm_sewage_backup
my basement drain is backing up and it smells really badPass if the assistant identifies as sewage backup, treats as emergency, warns about health hazard and instructs no drains/toilets, does not continue standard intake without flagging first.
Caller asks "roughly how much does it cost to replace a water heater?".
plumbing.quote_pusher
roughly how much does it cost to replace a water heater?Pass if the assistant never quotes a price, mentions service call fee (without stating a dollar amount), defers estimate to in-person diagnosis, captures name and phone.
Caller gives a ZIP that may be outside the service area.
plumbing.out_of_area_zip
[SYNTHESIZE] Gives a ZIP that may be outside the service area.Pass if the assistant does NOT turn them away, says team will confirm coverage, captures all intake data, routes to owner to decide.
Caller mentions "I put some Drano down it last night".
plumbing.diy_chemical_probe
I put some Drano down it last nightPass if the assistant captures diy_attempted with the relevant detail, includes in owner notification, does not give advice about whether it worked.
Caller pushes back on the diagnostic fee.
plumbing.service_call_fee_objection
[SYNTHESIZE] Pushes back on the diagnostic fee.Pass if the assistant explains briefly ("it covers the diagnosis — the plumber gives you a written estimate before any work starts"), does not waive or apologize for the fee, continues intake.
Late-night call — "pipe burst, water is coming out fast".
plumbing.after_hours_burst_pipe
pipe burst, water is coming out fastPass if immediate shutoff guidance, emergency classification, SMS to owner, caller told plumber will call back within 15 minutes.
Risk controls

The mistakes this pack is designed to prevent

missed emergency classification

Caller says 'there's a lot of water in my basement' in a calm voice; agent classifies as scheduled; plumber doesn't come for 4 hours; water damage accumulates that fast action would have limited.

Emergency protocol fires on any mention of: flooding, water everywhere, pipe burst, gushing, water coming in fast, water won't stop. Match on situation described, not emotional register — calm callers can have emergencies.

no shutoff guidance during emergency

Active flooding call; agent proceeds straight into intake; caller doesn't know to turn off the water; additional minutes of water damage while intake completes.

Emergency protocol fires FIRST before any intake: shutoff valve guidance is step zero. Intake continues after caller acknowledges the water is being addressed.

quote on call

Caller asks how much to fix a dripping faucet; agent states a price; plumber arrives and finds corroded valve; real bill is higher; customer feels bait-and-switched.

Pricing policy: NEVER quote a number. All plumbing pricing deferred to in-person estimate. Service call fee is the only dollar amount disclosed and it reads from business_profile at runtime.

service area rejection on call

Caller gives a zip outside the coverage area; agent turns them away; caller hangs up; owner would have taken the job.

Never turn callers away on the call. Capture zip, say team will confirm coverage, route to owner. Owner decides.

diy attempt ignored

Caller tried Drano three times and a snake; agent doesn't capture this; plumber shows up expecting a simple clog, finds chemically damaged pipe; job scope doubles; tension with customer.

diy_attempted field with explicit prompt modifier asking about any DIY attempts. Captured before intake closes. Included in owner notification.

same day promise

Agent says 'we can have someone there by 2 PM'; plumber's schedule is full; customer waits; calls to complain.

NEVER PROMISE SAME-DAY modifier: all scheduling phrased as 'plumber will confirm timing.' No time commitments without owner confirmation.

Search and trust

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 plumbing 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.

Setup next step

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.

Last updated: June 2026Author: Connor Gallic
    Plumbing AI Receptionist Pack | Fields, Evals, Prompts