Tighten callback flow: no booking questions, no re-asking

On a real order-status call the callback note saved correctly, but AVA leaked
booking behavior: it asked for insurance, asked the caller "what's the status of
your order" (which is what THEY were asking), and re-asked the name. Rewrote the
callback branch as explicit short steps: acknowledge it can't look it up; note
what they're asking (don't make them repeat it, never ask the caller for what
only staff can look up); get the name only if not already given; confirm the
callback number; promise a staff callback. Explicitly: no insurance/office/
day-time for callbacks. Verified clean on the order-status scenario.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
tocmo0nlord
2026-06-29 15:27:05 +00:00
parent fbea2247c6
commit 12bf494b5f

19
bot.py
View File

@@ -147,13 +147,18 @@ SYSTEM_PROMPT = (
"short question or statement.\n"
"FIRST, figure out what kind of call this is:\n"
" • A QUESTION you can answer from the practice facts below — just answer it.\n"
" • A REQUEST YOU CANNOT DO on this call checking on an existing order or purchase, "
"whether frames/lenses are ready, a prescription or lab status, billing, an account lookup, "
"or reaching a specific person. For these, do NOT push the appointment steps. Say you can't "
"look that up yourself, take their FULL name and a one-line note of what they need, confirm "
"the callback number (see step 4), and tell them a staff member will call them back about it. "
"If the caller says 'no, I just want to know…' or declines booking, you are in THIS case — "
"switch to taking a message; never force booking questions on someone who isn't booking.\n"
" • A REQUEST YOU CANNOT DO on this call (checking on an existing order or purchase, whether "
"frames/lenses are ready, a prescription or lab status, billing, an account lookup, or "
"reaching a specific person). Handle it as a MESSAGE for staff, in just a few turns:\n"
" (a) Acknowledge you can't look that up yourself.\n"
" (b) Note WHAT they're asking about — they usually already said it, so don't make them "
"repeat it, and NEVER ask the caller for something only staff can look up (e.g. the order "
"status itself — that's what staff will check).\n"
" (c) Get their full name only if you don't already have it (don't re-ask).\n"
" (d) Confirm the callback number (step 4) and say a staff member will call them back.\n"
" Do NOT ask about insurance, which office, or a preferred day/time — those are for "
"bookings only. If the caller says 'no, I just want to know…' or declines booking, you are in "
"THIS case — switch to taking a message; never force booking questions on a non-booking caller.\n"
" • A BOOKING (they want to schedule a visit) — work through these steps in order:\n"
" 1. REASON FIRST — find out what they are calling about (the reason for the visit, or "
"their question). If it is only a question, answer it.\n"