MOCKUP PREVIEW — AI Settings Redesign (spec MATCHMAKR_AI_SETTINGS_REDESIGN_v1.md)
This is a static HTML preview, not the real page. Toggles and selects don't persist. Numbers are illustrative (7-day window, representative production scale). Page URL after deploy will be app.singaporeswimming.com/manage/ai_chat/settings.
Responses Knowledge Draft History Costs Prompts Settings Availability
Master Switches §3.4 Section 1

Global on/off switches. When a master is OFF, nothing below it fires regardless of per-type settings.

Auto-Send Master Switch Blocks all outgoing auto-send. Drafts are still created for coordinator review. is_auto_reply_enabled
Instructor Pipeline Global toggle for the instructor copilot. Individual instructors also have their own AI toggle below. is_instructor_auto_draft_enabled
Coach Availability Extraction Extracts coach availability from incoming messages via a separate LLM pipeline. is_availability_extraction_enabled
Lead Qualification — Reply Cooldown Minimum time between qualifying auto-replies in the same conversation
Lead Qualification — Test Number Runs full pipeline but skips actual WhatsApp send. Draft saved with [TEST] prefix.
Coordinator Draft Types & Send Modes §3.4 Section 2
Window: Today 7 days 30 days All

This is the audit view. Each row is a distinct kind of AI draft. Mode controls what happens when the pipeline runs: off = don't run, draft = create draft for human review, simulate = create message in thread without sending to WhatsApp, live = send real WhatsApp message. simulate and live only available where an auto-send code path exists.

Type Drafts (7d) Sent (7d) Edit % Mode
lead_qualification
AI greeting + slot collection on new leads (day/time/venue/age). Only draftable type with a real auto-send code path.
47 0
faq
KB-grounded answer to a general question (pricing, venue, policy, equipment, certificates, pool facilities)
112 43 67%
new_enquiry
First-time interest expression that didn't trigger qualifying (lifecycle already past new_lead, rare edge case)
8 4 75%
providing_info
Parent providing context info caught by FAQ pipeline rather than slot collection
3 1 100%
other
Fallback FAQ pipeline pickup when classifier can't place the message
6 2 50%
manual
Coordinator clicked the Draft Reply button on a conversation
29 22 45% n/a (on-demand)

Edit % = of drafts that were sent, percentage edited by the coordinator before sending. High = AI close but needs polish. Low = AI good enough to send as-is (or coordinator gave up editing). FAQ types have no auto-send path today, so only off / draft are selectable. Requires-human categories (scheduling, preference, payment, withdrawal, complaint, follow-up, acknowledgment) never produce drafts and don't appear here.

Auto-Send Features (no draft, hardcoded text) §3.4 Section 3

Deterministic canned messages that fire automatically. No AI generation, no draft row. Kept separate from the matrix above because they're a different safety shape.

Feature Sent (7d) Mode
qualified_confirmation
"Thanks for the details! We have everything we need..." — sent automatically once all qualifying slots are filled. Hardcoded text in auto_reply_job.rb#send_qualified_confirmation.
12
qualified_confirmation is currently LIVE. Real WhatsApp messages go out to parents automatically. The text is hardcoded canned (not AI), so risk is deterministic. Flip to simulate if you want to audit the trigger without sending.
Coordinators §3.4 Section 4

Per-coordinator copilot controls. Copilot OFF = coordinator sees no AI drafts regardless of global settings.

Coordinator Copilot Class Panel
Kunnie
Katherine
Freddie
Sandy
Instructors §3.4 Section 5

Per-instructor AI on/off. Instructor pipeline uses only one draft type today, so no per-type matrix (this will grow when a second instructor type is added). Showing top 5 of 513 instructors.

Instructor AI
Freddie Ang
Lawrence Ang
Lawrence Yishun
Bairavan
Agnes

508 more instructors, show all

OpenAI Settings (Global) §3.4 Section 6, demoted from row 1

Shared between coordinator and instructor copilots. Prompts live on the Prompts page.

What's gone from the current page:
What's new: