Global on/off switches. When a master is OFF, nothing below it fires regardless of per-type settings.
is_auto_reply_enabled
is_instructor_auto_draft_enabled
is_availability_extraction_enabled
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.
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 |
simulate if you want to audit the trigger without sending.
Per-coordinator copilot controls. Copilot OFF = coordinator sees no AI drafts regardless of global settings.
| Coordinator | Copilot | Class Panel |
|---|---|---|
| Kunnie | ||
| Katherine | ||
| Freddie | ||
| Sandy |
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
Shared between coordinator and instructor copilots. Prompts live on the Prompts page.