From 12bf494b5f75531a690aee80769cab5622299d0e Mon Sep 17 00:00:00 2001 From: tocmo0nlord Date: Mon, 29 Jun 2026 15:27:05 +0000 Subject: [PATCH] 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 --- bot.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/bot.py b/bot.py index 45db6ec..b4637a8 100644 --- a/bot.py +++ b/bot.py @@ -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"