Home Use Cases Work Insights About Contact
Back to Our Work

How a Growth-Stage Educational Institution Built a Support Agent That Cites the Ledger Behind Every Sentence

Operations1
Open the walkthrough

Six-Step AI Workflow with Human Oversight

Each step shows the workspace, what the AI completed, and what still needs human review.

Steps 4 and 6 need a person. Step 4 is waiting for approval right now. Click it to open the full walkthrough.

Estimates are directional and based on stated assumptions. All names, organizations, and identifying details have been anonymized in accordance with our confidentiality agreements.

The Transformation

How a Growth-Stage Educational Institution Built a Support Agent That Cites the Ledger Behind Every Sentence

Before
A person used to read three inboxes and file each message by hand.
A person used to read each ticket and tag what it was about.
A person used to write every reply by hand, from memory.
A person used to chase every open ticket to see whether it was finished.
After
every message on every channel, one conversation per student
what is being asked, settled before anything answers
an answer with its source, or a hold instead of a guess
the short queue of things only a person can settle
the reply delivered, the ticket closed, the returns caught
Executive Summary

Answers every student and parent inquiry the record can actually support, on whatever channel it arrives, at any hour, and hands a person only the questions the record genuinely cannot settle. Written for an institution where the reply is the institution speaking: every sentence sent carries the article or ledger entry behind it, every hold carries a reason, and the support team's day is the short queue of things only they can answer. Six stations, run as a loop: what station 6 signs is what station 3 answers with next week.

What Was Broken

A person used to read three inboxes and file each message by hand
A person used to read each ticket and tag what it was about
A person used to write every reply by hand, from memory
The real cost
A person used to chase every open ticket to see whether it was finished.

What We Built

Six stations and 13 subagents. Each subagent carries its own tasks and its own refusal.

A4
Channel Watch
Poll the chat widget, the mailbox and the SMS line, and stamp each message with where it arrived
A3
Identity Match
Match each sender to a student record by enrollment id, email or phone on file
A3
Intent Reader
Classify each conversation: fees, enrollment, course change, records request, complaint
A3
Risk Screen
Score each conversation's urgency against the deadlines on the academic calendar
A4
Answer Search
Search the knowledge base and the closed-ticket archive for what this question has been answered with before
A2
Reply Writer
Compose the reply from the sources, one source behind every sentence
A3
Grounding Check
Check every sentence in the draft against the source it claims
A3
Handoff Routing
Route each held question to the person who owns that kind of question: billing, records, safeguarding
A2
Handoff Brief
Summarize each held question in one line a reader can answer from
A4
Reply Delivery
Send each reply on the channel the student asked on, in that channel's shape
A3
Closing Watch
Watch each answered conversation for a return inside the closing window
A2
Gap Finder
Group the month's 220 handoffs by what actually caused each one
A4
Metrics Roll-up
Count the month off the tickets themselves: answered, handed off, reopened, undelivered

How It Runs

1

Inquiry Intake

Nobody is asked anything here

Agents watch every channel a question can arrive on, match each message to a student and to any conversation already open, and drop what names no student at all. Nothing waits on a person here. A sender nobody can place reaches somebody later, with everything known about it attached.

2

Question Triage

Nobody is asked anything here

Agents read each conversation, settle what is being asked and how soon it matters, and ask one follow-up question when the message could mean two things. A person is not asked anything here. A question still unclear after one follow-up goes to a person with the exchange attached.

3

Answer Drafting

Nobody is asked anything here

Agents search the knowledge base, the closed-ticket archive and the student's own record, compose a reply with a source behind every sentence, and hold instead of guessing when no source exists. A person reads none of these before they go out. What has no source behind it never goes out at all.

4

Escalation Desk

A person answers here

Agents assemble everything the pipeline held, the unplaced senders, the unclear questions, the answers no source supports, into one line a person can decide from, routed to the person who owns that kind of question. This is the station where the support team works. Every other station exists to keep this queue short.

5

Ticket Closing

Nobody is asked anything here

Agents send the reply on the channel the student is actually on, watch what comes back, and close the ticket only when nothing in it is still open. A person signs nothing here. The answer was signed at station 4, or the sources held and there was nothing to sign.

6

Knowledge Review

A person answers here

Agents group the month's handoffs by what actually caused them, draft the knowledge base articles that would have answered the recurring ones, and count the month off the tickets themselves. A person signs every draft before the bot answers with it. A person works here, because what enters the knowledge base is what the bot says in the college's name from then on.

Where a Person Decides

Step 4, Escalation Desk. Pick one of the drafted answers, or write your own. Open the full conversation only when the one line is not enough. your answer is the only way back to the student.
Step 6, Knowledge Review. Read the two drafts, correct what is wrong, approve or reject each one. Sign the week's review, which is what station 3 answers from next week. the bot speaks in the college's name.

Operating Model

This changes how work flows through the team.

Role
Responsibility
Escalation Desk owner
Pick one of the drafted answers, or write your own. Open the full conversation only when the one line is not enough. your answer is the only way back to the student.
Knowledge Review owner
Read the two drafts, correct what is wrong, approve or reject each one. Sign the week's review, which is what station 3 answers from next week. the bot speaks in the college's name.

What Transfers, What Must Be True

What transfers
A person is in the loop wherever the college's name is on the line and the record cannot settle the answer. Two of the six stations refuse to proceed on their own, Escalation Desk and Knowledge Review, and those are the two a person carries. Everywhere else the agents answer at volume and reach you only with what they held.
Escalation Desk stops for a person, and your answer is the only way back to the student.
Knowledge Review stops for a person, and the bot speaks in the college's name.
Every subagent says what it will not do. 13 of them do.
What must be true in your environment
The agent can read the systems your records already live in. This one reads 20.
Somebody owns Escalation Desk and has time for it.
Somebody owns Knowledge Review and has time for it.

Failure Modes

What breaks this pattern:

✗ A calm sentence lowers the flag

A student mentions self harm, then asks a routine question about a deadline. Without the refusal to lower a distress flag, the routine tone wins, the flag drops, and no person ever reads the message.

✗ The nearest paragraph becomes the answer

Nothing in the sources answers the question, but the search still returns the closest match. The student gets a confident reply about a different policy than the one they asked about.

✗ Two students become one conversation

A shared surname or a reused family email looks like the same person, and the two threads merge. One student then reads answers written for the other, including things they were never meant to see.

✗ The clock closes an open question

A conversation goes quiet and an age rule closes it. The second question in that thread never gets an answer, and once the ticket is closed, nobody goes looking for it.

Directional Outcomes

What the agent counts, and the station that counts it.

These counts are the tallies from one monitored run of the agents. They are not monthly or annual totals.

Messages taken in
Counted at Inquiry Intake
2,412
Filed under the wrong student
Counted at Inquiry Intake
0
Senders it could not place, held
Counted at Inquiry Intake
6
Questions triaged
Counted at Question Triage
2,365
Sent down the wrong route
Counted at Question Triage
0
Still unclear after one follow-up, held
Counted at Question Triage
23
Replies sent
Counted at Answer Drafting
2,157
Sentences sent without a source
Counted at Answer Drafting
0
Held for a person instead
Counted at Answer Drafting
185
Conversations closed
Counted at Ticket Closing
2,309
Closed with a question still open
Counted at Ticket Closing
0
Undeliverable, handed to a person
Counted at Ticket Closing
6
Our measurement policy: We do not publish precise ROI without baseline methodology. Every figure above carries its basis.

What Runs Where

Every step names the subagent that does the work, the record it writes, the thing that raises a question for a person, and what it is allowed to touch. This is drawn from the source, not from a diagram somebody kept in sync by hand.

1Inquiry Intake
subagentchannel-intake
writesqueue/conversations/<conv-id>.json
raisesidentity-unresolved
may touchqueue/**, directory/** read-only
2Question Triage
subagentintent-triage
writesqueue/triaged/<conv-id>.json
raisessafeguarding-detected
may touchqueue/**, calendar/** read-only
3Answer Drafting
subagentanswer-draft
writesqueue/replies/<conv-id>.json
raisesno-source-found
may touchqueue/**, kb/** read-only, tickets/** read-only
4Escalation Desk
GATE
subagenthandoff-brief
writesqueue/escalations/<conv-id>.json
raisesawait-human-answer
may touchqueue/escalations/**, everything else read-only
5Ticket Closing
subagentclose-watch
writestickets/closed/<conv-id>.json
raisesdelivery-failed
may touchtickets/**, queue/replies/** read-only
6Knowledge Review
GATE
subagentgap-review
writeskb/drafts/<article>.md, reports/week-<n>.json
raisesapprove-kb-draft
may touchkb/**, reports/**, tickets/** read-only

Stack

Every system this agent reads or writes.

System
Read at
Stations
the SMS and email gateways
Ticket Closing
1 of 6
the SMS line
Inquiry Intake
1 of 6
the academic calendar
Question Triage
1 of 6
the chat widget on the college site
Inquiry Intake
1 of 6
the closed-ticket archive
Answer Drafting
2 of 6
the escalation clocks
Escalation Desk
1 of 6
the full conversation record
Escalation Desk
1 of 6
the intent model
Question Triage
1 of 6
the knowledge base
Answer Drafting
2 of 6
the metrics dashboard
Knowledge Review
1 of 6
the safeguarding phrase list
Question Triage
1 of 6
the satisfaction survey
Ticket Closing
1 of 6
the staff directory
Escalation Desk
1 of 6
the student ledger
Question Triage
2 of 6
the student record system
Inquiry Intake
1 of 6
the student services mailbox
Inquiry Intake
1 of 6
the student services team's queue
Escalation Desk
1 of 6
the ticketing system
Ticket Closing
1 of 6
the vector index behind both
Answer Drafting
1 of 6
the weekly review report
Knowledge Review
1 of 6
Next Step

Want to see if this pattern fits your customer support bots?

No build commitment·Real samples, not a demo·Estimate in writing