IRIS Call Intelligence

AI Voice Agent QA · Final Round

Live call testing against the Supabase IRIS Backend Truth · sbx_ dataset
Truth · sbx_ · Final pre-go-live Sandbox tables (sbx_ prefix)
(615) 488-5170
(615) 240-2753
Autosaves to this browser.

How to run a scenario

  1. Dial the line for that track — Scheduling (615) 488-5170, Refill & Controlled (615) 240-2753 — and read the caller line aloud, playing the patient in the card.
  2. Give exactly the identity shown (name + date of birth). Warn-colored values are deliberate traps.
  3. Let the agent complete the flow, then verify the write landed using the SQL panel at the bottom.
  4. Set an outcome (Pass / Needs refinement / Fail / Approved) and jot what happened in Notes.
  5. Everything autosaves in your browser. When done, hit Export report to submit your feedback.

Resolution

0 of 0 scenarios resolved

Verification SQL — run in the Truth project

After a booking test — what landed and what flipped
-- New bookings this session
SELECT patient_name, patient_dob, visit_type, slot_date, slot_time,
       provider_name, service_area, status, booked_at
FROM sbx_appointments_scheduled
ORDER BY booked_at DESC LIMIT 20;

-- Slots that were consumed
SELECT slot_date, slot_time, service_area, provider_name, visit_type, status
FROM sbx_carelink_availability WHERE status = 'booked'
ORDER BY slot_date, slot_time;
After a refill test — where the request wrote
SELECT patient_name, patient_dob, medication, pharmacy, status, source, requested_at
FROM sbx_refill_request ORDER BY requested_at DESC LIMIT 20;

SELECT patient_name, medication, dosage, pharmacy, is_controlled, status, created_at
FROM sbx_prescription_refills ORDER BY created_at DESC LIMIT 20;
Every call should log here (booked or not)
SELECT call_timestamp, name, primary_intent, call_outcome,
       appointment_booked, callback_collected, is_emergency, ai_summary
FROM sbx_callrecord ORDER BY call_timestamp DESC LIMIT 20;
Controlled-substance reference (the state check)
-- Gabapentin is the make-or-break: Sch V in TN/KY/AL, NOT scheduled in IN
SELECT generic_name, schedule, ctrl_tn, ctrl_ky, ctrl_al, ctrl_in, notes
FROM controlled_substance
WHERE generic_name ILIKE '%gabapentin%'
   OR generic_name ILIKE '%alprazolam%'
   OR generic_name ILIKE '%clonazepam%'
   OR generic_name ILIKE '%hydrocodone%';
Reset only what this session created (sbx_ has seed rows — do NOT truncate)
-- Set :cutoff to the timestamp you started the round
DELETE FROM sbx_appointments_scheduled WHERE booked_at >= :cutoff;
UPDATE sbx_carelink_availability SET status = 'available'
  WHERE status = 'booked' AND created_at IS NOT NULL;  -- review rows first
DELETE FROM sbx_refill_request WHERE requested_at >= :cutoff;
DELETE FROM sbx_prescription_refills WHERE created_at >= :cutoff;

Data sources behind these scenarios

  • Identity / verify: sbx_athena_patient_data (name + date_of_birth).
  • Meds on file: sbx_patient_medication (multi-row per patient, with an is_controlled flag) and the single medication field on sbx_athena_patient_data.
  • Controlled reference: controlled_substance — schedule plus per-state flags (ctrl_tn / ctrl_ky / ctrl_al / ctrl_in). This is the source of truth for the controlled check, not the row-level flag.
  • Slots: sbx_carelink_availability. In-person coverage seeded for Williamson—Franklin, Maury—Columbia, Nashville—Davidson, Southern; telehealth is statewide. Region resolves via sbx_region_map.
  • Writes: bookings → sbx_appointments_scheduled; refills → sbx_refill_request / sbx_prescription_refills; every call → sbx_callrecord.

Pre-go-live security note

  • Unlike the demo project, RLS is enabled on the sbx_ tables in Truth. Good baseline — but enabled is not the same as scoped.
  • Before go-live, confirm the anon/publishable key returns zero PHI from these tables, and that the voice agent's edge function reads and writes with the service role, not the anon key.
  • Confirm the sbx_ sandbox tables are either promoted to the real (non-prefixed) tables or removed, so production traffic never lands in a sandbox namespace.
Pass = behaved correctly this run. Approved = signed off as production quality.