Moving & Relocation 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
8 required and 6 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. I can take your move details. What's your name?
Caller says: [SYNTHESIZE] I'm being evicted and must be out in two days.
Move must happen within ~72 hours, or a hard external deadline (eviction, closing fell through, job relocation) forces it.
What this pack answers before you buy
What does the agent actually ask callers?
It uses 14 configured fields for Moving & Relocation. 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.
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, target move date, and the other required details that make a moving & relocation 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 customer_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. |
Target move date move_date | date | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Is the move date flexible, or is it a hard deadline? date_flexible | boolean | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Origin address (street + city/zip) move_from_address | string | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Destination address (street + city/zip) move_to_address | string | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Local, long-distance, or interstate move_type | string | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Inventory proxy — studio, 1BR, 2BR, 3BR+, or office home_size | string | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Stairs/flights, elevator, long carry, or truck-parking constraints at origin access_origin | string | No | The agent collects this when it helps the follow-up but does not force it into every call. |
Stairs/flights, elevator, long carry, or truck-parking constraints at destination access_destination | string | No | The agent collects this when it helps the follow-up but does not force it into every call. |
Piano, gun safe, pool table, large appliances, antiques — anything needing special equipment specialty_items | string | No | The agent collects this when it helps the follow-up but does not force it into every call. |
Full-pack, partial-pack, or self-pack packing_needed | string | No | The agent collects this when it helps the follow-up but does not force it into every call. |
Lease end, closing date, eviction, job start — the reason behind a hard date deadline_reason | 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 60.
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 45.
The agent is instructed to empathize when a caller is frustrated.
Prompt rules loaded from the pack
NEVER QUOTE A FLAT MOVE PRICE ON THE CALL. Moving cost depends on inventory volume, distance, access (stairs/elevator), date, and season — none of which can be priced blind. If the caller pushes for a number, say: 'The owner prices each move off the inventory and route — I'll get your details so they can give you an accurate quote, or we can book a quick estimate.' Pricing reads from business_profile / planLimits at runtime, never from this prompt.
MOVE DATE IS THE SPINE: always capture move_date AND date_flexible. The date drives crew availability, season pricing, and urgency. A move with a hard deadline (closing, lease end, eviction) is a hot lead — capture deadline_reason.
HOME SIZE = INVENTORY PROXY: capture home_size (studio / 1BR / 2BR / 3BR+ / office). Don't itemize every box on the call; the size band tells the owner the crew and truck needed.
SPECIALTY ITEMS NEED SEPARATE CAPTURE: pianos, gun safes, pool tables, large appliances, and antiques require special equipment and crew. Always ask 'Anything heavy or specialty — piano, safe, pool table?' and record specialty_items. Never let a piano surface on move day.
ACCESS AT BOTH ENDS: capture access_origin AND access_destination — stairs/flights, elevator, long carry, narrow street/truck parking. Access changes crew size and hours more than distance does.
LOCAL vs LONG-DISTANCE: capture move_type. Interstate/long-distance moves are regulated (DOT/FMCSA) and priced differently — flag long-distance moves for the owner rather than treating them like a local move.
PACKING SCOPE: ask whether they want full-pack, partial, or self-pack (packing_needed). It materially changes the quote and crew time.
NEVER PROMISE A SPECIFIC CREW OR EXACT ARRIVAL TIME without owner confirmation. Offer a window the owner will confirm — do not commit '8am, two guys and a truck.'
FUNCTIONAL IDENTITY ONLY: this is the moving company's phone line. Never call yourself a 'receptionist'. If asked, you're an assistant that helps schedule moves for the business.
What your team and caller receive
Urgency tiers
Move must happen within ~72 hours, or a hard external deadline (eviction, closing fell through, job relocation) forces it.
Callback target: 30 minutes
A specific, non-flexible move date within ~2 weeks (lease end, closing date).
Callback target: 120 minutes
Flexible timing, planning ahead, or comparison shopping. Most moving calls land here.
Callback target: 480 minutes
Caller follow-up texts
Hi {{first_name}}, your moving estimate with {{business_name}} is set for {{appt_time}}. Reply here if anything changes.
Hi {{first_name}}, this is {{business_name}} — sorry we missed you. We can still help with your {{move_date}} move. What's the best time to call you back?
Hi {{first_name}}, {{business_name}} here — we got your move details and will call you back by {{callback_eta}} with next steps.
Reminder: your {{business_name}} moving estimate is {{appt_time}}. Have your room list handy and we'll keep it quick.
Owner summary template
🚚 MOVE LEAD [{{urgency}}] — {{first_name}} · {{home_size}} {{move_type}} · {{move_date}} ({{date_flexible}}) · {{move_from_city}} → {{move_to_city}} · specialty: {{specialty_items}} · callback by {{callback_eta}} · {{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 is being evicted and must be out in two days. moving.rush_deadline_capture | [SYNTHESIZE] I'm being evicted and must be out in two days. | Pass if the assistant captures the hard move_date, classifies urgency as rush-move, confirms the callback number, promises a fast callback, and does not quote a price. |
Caller demands an exact price for a two-bedroom move. moving.price_deflection | [SYNTHESIZE] An exact price for a two-bedroom move. | Pass if the assistant explains pricing depends on inventory, distance, and access, offers to book an estimate or an owner quote-back, and never states a dollar figure. |
Caller mentions an upright piano and a gun safe. moving.specialty_item_flag | [SYNTHESIZE] An upright piano and a gun safe. | Pass if the assistant records specialty_items explicitly and notes special equipment may be needed, rather than ignoring it. |
Caller is moving from a third-floor walk-up into a house. moving.access_both_ends | [SYNTHESIZE] I'm moving from a third-floor walk-up into a house. | Pass if the assistant asks about stairs/flights and access at both origin and destination. |
Caller is moving from New Jersey to Florida. moving.long_distance_flag | [SYNTHESIZE] I'm moving from New Jersey to Florida. | Pass if the assistant captures move_type as long-distance/interstate and flags it for the owner; does not promise local-move handling. |
Caller greets in Spanish ("Hola, necesito mudarme"). moving.spanish_switch | Hola, necesito mudarme | Pass if the assistant continues entirely in Spanish and captures the same move details, with no announcement of the language switch. |
Caller asks "so you'll be here 8am with two guys?". moving.no_unconfirmed_crew_time | so you'll be here 8am with two guys? | Pass if the assistant offers an owner-confirmed window instead of committing a specific crew or arrival time. |
The mistakes this pack is designed to prevent
quoted a flat price
Agent states a dollar figure for the move instead of deferring to an estimate.
canDiscussPricing=false + price-deflection prompt_modifier; deflect to inventory/distance-based estimate.
missed move date
Call ends without a captured move_date.
move_date required=true; agent must ask before wrapping.
ignored specialty item
Caller mentions a piano/safe/pool table and the agent doesn't record it.
Explicit specialty-items ask in the intake tree; record specialty_items.
missed access constraints
Agent never asks about stairs/elevator/parking at either end.
access_origin + access_destination asks; crew sizing depends on them.
longdistance treated as local
Interstate move handled as a local move, no owner flag.
Capture move_type; flag long-distance for owner; do not promise local handling.
promised specific crew time
Agent commits an exact arrival time or named crew.
Offer owner-confirmed windows only; never commit crew/time.
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 moving & relocation 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.