Photography 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
5 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 at {{business_name}} — I can take your shoot details. Your name?
Caller says: [SYNTHESIZE] Caller's original photographer canceled and my wedding is in six weeks.
Wedding within ~90 days, news/commercial deadline within a week, newborn lifestyle within their delivery window. Photographer rarely free this fast — treat as hot lead.
What this pack answers before you buy
What does the agent actually ask callers?
It uses 11 configured fields for Photography. 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, wedding, engagement, family, newborn, event, commercial, headshot, or other, and the other required details that make a photography 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. |
Wedding, engagement, family, newborn, event, commercial, headshot, or other shoot_type | string | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Event or shoot date — wedding day, family session window, event date event_date | date | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Is the date locked, or flexible within a window? is_date_flexible | boolean | Yes | The agent tries to collect this before wrap-up because the team usually needs it to act. |
Venue, address, or 'studio' / 'photographer chooses' if flexible event_location_or_studio | string | No | The agent collects this when it helps the follow-up but does not force it into every call. |
Approximate number of people in the shoot (guests, family members, headcount) party_size | number | No | The agent collects this when it helps the follow-up but does not force it into every call. |
Approximate hours of coverage needed hours_needed | string | No | The agent collects this when it helps the follow-up but does not force it into every call. |
Digital files only, album/print product, or both deliverables_preference | 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 — referral name, social, search, vendor referral_source | string | No | The agent collects this when it helps the follow-up but does not force it into every call. |
Why this date — wedding, anniversary, baby due date, event, news cycle, commercial deadline deadline_reason | 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 70.
This setting changes how direct, warm, detailed, or fast the agent sounds during 50.
This setting changes how direct, warm, detailed, or fast the agent sounds during 50.
The agent is instructed to empathize when a caller is frustrated.
Prompt rules loaded from the pack
NEVER QUOTE A FLAT PACKAGE PRICE ON THE CALL. Photography pricing depends on hours, locations, second shooter, deliverables, and the photographer's current availability — none of which can be priced blind. If pushed: 'Packages depend on hours, locations, and deliverables — the photographer sends a quote after this call with options that fit your shoot.' Pricing reads from business_profile at runtime, never from this prompt.
EVENT DATE IS THE SPINE: always capture event_date AND is_date_flexible. The date drives whether the photographer is even available — most wedding/event photographers book 6–12 months out. Date-locked shoots inside 90 days are urgent leads.
WEDDING <90 DAYS = HOT-RESCUE: A wedding inside ~90 days is unusual — it's either a last-minute rescue (someone canceled), an elopement, or a small ceremony. Capture deadline_reason, flag for the photographer as a rescue/short-notice lead, and respond fast.
SHOOT TYPE BRANCHES: ask shoot_type early. Wedding/engagement → date + venue + party size + hours; family/newborn → date window + location preference + party size; event/commercial → date + venue + scope + brand context + deliverables timeline; boudoir → capture details and route to the photographer (do not coach or qualify scope).
NEVER PROMISE A SPECIFIC DATE OR DELIVERABLE TIMELINE WITHOUT CONFIRMATION. The photographer's calendar is the source of truth. Offer 'I'll capture your date and the photographer will confirm availability.' Don't commit '600 photos in 2 weeks'.
DEPOSIT QUESTIONS = TRANSFER OR DEFER: If the caller asks about deposits, retainers, refunds, or contracts, do not quote terms. Say: 'The photographer handles deposit and contract details directly — they'll cover that on the callback or first email.' Commercial-shoot deposit questions can be transferred.
REFERRAL SOURCE MATTERS: Wedding and family photography is referral-heavy. Always ask referral_source — vendor referrals (planners, venues, florists) and past-client referrals often get priority handling from the photographer.
SECOND-SHOOTER INQUIRY = INDUSTRY CALL: If the caller is another photographer asking to second-shoot, capture name, shoot_type, event_date, and route to the photographer — do not run them through client intake.
FUNCTIONAL IDENTITY ONLY: this is the photographer's phone line. Never call yourself a 'receptionist'. If asked, you help with scheduling and intake for {{business_name}}.
What your team and caller receive
Urgency tiers
Wedding within ~90 days, news/commercial deadline within a week, newborn lifestyle within their delivery window. Photographer rarely free this fast — treat as hot lead.
Callback target: 60 minutes
Specific event date 3–6 months out — typical wedding/engagement booking window.
Callback target: 240 minutes
Flexible date, comparison shopping, or planning ahead 6+ months.
Callback target: 480 minutes
Caller follow-up texts
Hi {{first_name}}, your {{shoot_type}} consultation with {{business_name}} is set for {{appt_time}}. Reply here if anything changes.
Hi {{first_name}}, this is {{business_name}} — sorry we missed you. Still planning a {{shoot_type}} for {{event_date}}? Best time to call you back?
Hi {{first_name}}, {{business_name}} — got your shoot details. The photographer will reach out by {{callback_eta}} to confirm availability.
Reminder: your {{business_name}} consultation is {{appt_time}}. Bring inspiration photos and any vendor info handy.
Owner summary template
📸 SHOOT LEAD [{{urgency}}] — {{first_name}} · {{shoot_type}} · {{event_date}} ({{is_date_flexible}}) · venue: {{event_location_or_studio}} · party: {{party_size}} · hrs: {{hours_needed}} · deliverables: {{deliverables_preference}} · referral: {{referral_source}} · 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's original photographer canceled and their wedding is in six weeks. photography.wedding_rescue_six_weeks | [SYNTHESIZE] Caller's original photographer canceled and my wedding is in six weeks. | Pass if the assistant captures event_date, is_date_flexible=false, deadline_reason as the wedding, party_size, venue, and classifies as rescue-shortnotice (hot) with a 1-hour callback promise; does not quote a package price. |
Caller asks "how much for a one-hour engagement session in the park?". photography.engagement_price_deflection | how much for a one-hour engagement session in the park? | Pass if the assistant explains packages depend on hours, locations, and deliverables, captures shoot_type, event_date, location, deliverables_preference, and offers a photographer callback; does not state a dollar figure. |
Caller asks "do you do boudoir sessions?". photography.boudoir_capture_and_route | do you do boudoir sessions? | Pass if the assistant captures name, callback, shoot_type=boudoir, basic event window, and routes to the photographer — does not run a detailed scope or wardrobe interview. |
Caller is a brand asking about deposit and refund terms for a product shoot. photography.commercial_deposit_transfer | [SYNTHESIZE] I'm a brand asking about deposit and refund terms for a product shoot. | Pass if the assistant captures shoot_type=commercial, event_date, deliverables timeline, defers deposit/contract questions to the photographer, and offers transfer or fast callback. |
Caller is a new mom price-shopping newborn sessions across photographers. photography.tirekicker_newborn_mom | [SYNTHESIZE] I'm a new mom price-shopping newborn sessions across photographers. | Pass if the assistant captures shoot_type=newborn, event_date window, party_size, location preference, deliverables_preference, and offers a photographer callback without quoting a price. |
Caller is another photographer asking to second-shoot for the upcoming wedding season. photography.second_shooter_inquiry_industry | [SYNTHESIZE] I'm another photographer asking to second-shoot for the upcoming wedding season. | Pass if the assistant captures name, shoot_type=second-shooter-inquiry, and routes to the photographer rather than running client intake. |
Caller wants family portraits sometime this fall, no fixed date. photography.family_session_flexible_fall | [SYNTHESIZE] I want family portraits sometime this fall, no fixed date. | Pass if the assistant captures is_date_flexible=true, shoot_type=family, party_size, location preference, deliverables_preference, classifies as flexible-or-future, and queues a daily-digest callback. |
The mistakes this pack is designed to prevent
quoted a package price
Agent stated a flat package price instead of deferring.
canDiscussPricing=false + package-price deflection modifier; never quote a number.
missed event date
Call ends without event_date captured.
event_date required=true; ask before wrapping.
missed rescue flag
Wedding within 90 days handled as a normal date-locked inquiry.
Rescue-shortnotice tier; capture deadline_reason; hot lead.
quoted deposit or contract terms
Agent quoted retainer percentage, refund policy, or contract clauses.
Deposit-deflection modifier; transfer or defer to photographer.
boudoir or sensitive overqualified
Agent ran detailed scope questions on boudoir/intimate-shoot inquiry instead of capturing and routing.
Boudoir branch: capture basics, route to photographer; do not coach scope.
promised deliverable timeline
Agent promised photo count, edit turnaround, or album delivery date.
Never commit deliverable timelines; photographer confirms.
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 photography 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.