Home Use Cases Work Insights About Contact
Back to Our Work

How an Enterprise Professional Services Firm Built a Support Agent That Cites the Article Behind Every Reply

Operations3
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 an Enterprise Professional Services Firm Built a Support Agent That Cites the Article Behind Every Reply

Before
A person used to watch four inboxes at once and open each ticket by hand.
A dispatcher used to skim each new ticket and set its urgency from the subject line.
A technician used to search the knowledge base and type every reply, and nothing went out after hours.
A person used to mark tickets closed at the end of the week without asking the customer.
After
every message stamped, threaded and owned before anyone answers
the ask, the tone and the clock, read before anything answers
an answer with its source beside every step, at any hour
the conversations the bot hands over, with everything a person needs in one read
the ticket closed in the customer's own words, with the record written
Executive Summary

Answers every client inquiry from the firm's own record, on the channel it arrived on, at any hour, and never sends an answer it cannot show a source for. Written for an org where the conversation is the record: every reply carries the article it came from, every handoff carries the full transcript, and the only conversations reaching a person are the ones the knowledge honestly cannot settle. Six stations, run as a loop: what station 6 learns is what station 3 answers with next week.

What Was Broken

A person used to watch four inboxes at once and open each ticket by hand
A dispatcher used to skim each new ticket and set its urgency from the subject line
A technician used to search the knowledge base and type every reply, and nothing went out after hours
The real cost
A person used to mark tickets closed at the end of the week without asking the customer.

What We Built

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

A4
Channel Watch
Poll every channel a client can write on, and stamp each message with where it came from
A3
Conversation Threading
Thread each message onto its open ticket when it is a reply, however the subject line reads
A3
Intent Classifier
Classify each inquiry into the intents the playbooks actually cover
A3
Priority Reader
Score the tone across the whole conversation, not the latest message
A3
Knowledge Search
Search the articles and the settled tickets for the passages that answer this intent
A2
Reply Drafting
Compose the reply from the passages, at the channel's length, chat short and email full
A3
Conversation Steering
Carry the context across turns and channels, so the customer never repeats themselves
A3
Takeover Routing
Route each handoff to the person who owns that client or that kind of question
A1
Takeover Brief
Summarize the conversation in three lines a reader can act from
A3
Resolution Check
Detect the customer confirming the fix, in their own words
A4
Satisfaction Capture
Send the rating ask on the channel the conversation ran on
A1
Gap Finding
Group the week's handoffs and declined answers by what actually caused them
A4
Metrics Assembly
Count the week off the ticket record: answered, handed off, reopened, rated

How It Runs

1

Inquiry Intake

Nobody is asked anything here

Agents watch every channel a client can write on, tie each message to its account and its open ticket, and merge the double sends before anything answers. Nothing waits on a person here. A message only reaches somebody when a later station cannot settle it.

2

Question Reading

Nobody is asked anything here

Agents read each inquiry for what is asked rather than what is written, attach the account's history, and put a clock on it from the contract. A misread question is answered wrong at every station after this one, so what the agents cannot read, they hold and ask about rather than guess.

3

Answer Delivery

Nobody is asked anything here

Agents search the knowledge base and the settled tickets, compose the reply with the source cited beside every step, and hold the conversation turn by turn until it is settled or stuck. No person signs a reply here. That is the point of the station: the answer goes out at 9pm on a Sunday, and what has no source does not go out at all.

4

Human Handoff

A person answers here

Agents hand each stuck conversation to the named person who owns it, carrying the full transcript, what the bot tried, and a draft reply marked as a draft. This is the station where a person works. Every other station exists to keep this queue short.

5

Ticket Closure

Nobody is asked anything here

Agents close each ticket in the customer's own words or after a quiet window marked as such, write the record with everything that settled it, and ask for a rating once. A person signs nothing here. The answer already went out at station 3, or a person already sent it at station 4.

6

Weekly Learning

A person answers here

Agents count the week off the ticket record, turn the recurring handoffs and declines into drafted articles and routing changes, and put the whole set in front of a person. A person signs the changes. That is the signature that has to stay human, because an approved article is an answer the bot will give every client from now on.

Where a Person Decides

Step 4, Human Handoff. Read three lines and take the conversation. Correct the draft or write your own; the bot resumes the thread after you. a stuck customer waits on you.
Step 6, Weekly Learning. Settle the reopen spike, or name it as the portal change and move on. Approve or reject the three changes, then sign the week. a wrong article scales to everyone.

Operating Model

This changes how work flows through the team.

Role
Responsibility
Human Handoff owner
Read three lines and take the conversation. Correct the draft or write your own; the bot resumes the thread after you. a stuck customer waits on you.
Weekly Learning owner
Settle the reopen spike, or name it as the portal change and move on. Approve or reject the three changes, then sign the week. a wrong article scales to everyone.

What Transfers, What Must Be True

What transfers
A person is in the loop wherever a customer is stuck or an answer is about to scale. Two of the six stations refuse to proceed on their own, Human Handoff and Weekly Learning, and those are the two a person carries. Everywhere else the agents answer at volume, at every hour, and reach you only when the knowledge cannot settle something.
Human Handoff stops for a person, and a stuck customer waits on you.
Weekly Learning stops for a person, and a wrong article scales to everyone.
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 18.
Somebody owns Human Handoff and has time for it.
Somebody owns Weekly Learning and has time for it.

Failure Modes

What breaks this pattern:

✗ The agent answers from thin air

When no passage supports an answer, the agent writes one anyway. The customer gets a confident reply that nobody in the company ever said, and the first person to find out is the customer.

✗ Two customers become one thread

Two people share a name, and the agent merges their conversations. One customer now reads the other customer's order details, and you learn about it from a complaint, not a log.

✗ Tickets close on open questions

The customer's last message is a question, and the agent closes the ticket anyway. Your resolution numbers go up while the customer sits with no answer and stops writing back.

✗ Handoffs arrive without the transcript

The agent hands a stuck conversation to a person but drops the history. The customer repeats everything from the start, which is the one experience a handoff exists to prevent.

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 stamped and tied this week
Counted at Inquiry Intake
2,140
tickets opened for a sender nobody knows
Counted at Inquiry Intake
0
senders held unmatched for a person
Counted at Inquiry Intake
6
inquiries read for intent this morning
Counted at Question Reading
412
priorities lowered because wording turned polite
Counted at Question Reading
0
contract questions routed to the desk
Counted at Question Reading
3
answers sent from the record this week
Counted at Answer Delivery
1,410
replies sent without a source cited
Counted at Answer Delivery
0
declines handed on with what was missing
Counted at Answer Delivery
9
tickets closed this week
Counted at Ticket Closure
1,388
silences recorded as passing scores
Counted at Ticket Closure
0
tickets held open on a last question
Counted at Ticket Closure
1
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/inbound/<ticket-id>.json
raisesunmatched-sender
may touchqueue/**, accounts/** read-only
2Question Reading
subagentread-intent
writesqueue/understood/<ticket-id>.json
raisesintent-below-threshold
may touchqueue/**, playbooks/** read-only
3Answer Delivery
subagentanswer-inquiry
writesconversations/<ticket-id>/turn-<n>.json
raisesno-grounded-answer
may touchconversations/**, kb/** read-only
4Human Handoff
GATE
subagenttakeover-brief
writesescalations/<ticket-id>.json
raisesawait-human-takeover
may touchescalations/**, everything else read-only
5Ticket Closure
subagentclose-ticket
writestickets/closed/<ticket-id>.json
raisesclose-with-open-question
may touchtickets/**, conversations/** read-only
6Weekly Learning
GATE
subagentweekly-learn
writeskb/proposals/<week>.json, reports/week-<n>.json
raisessign-kb-change
may touchkb/**, reports/**, tickets/** read-only

Stack

Every system this agent reads or writes.

System
Read at
Stations
email and SMS channels
Answer Delivery
1 of 6
the SMS line
Inquiry Intake
1 of 6
the Teams support channel
Human Handoff
1 of 6
the chat
Answer Delivery
1 of 6
the chat widget
Inquiry Intake
1 of 6
the client account history
Ticket Closure
1 of 6
the client contract records
Question Reading
1 of 6
the client portal
Inquiry Intake
1 of 6
the intent playbooks
Question Reading
1 of 6
the knowledge base
Answer Delivery
2 of 6
the on-call roster
Human Handoff
1 of 6
the satisfaction survey
Ticket Closure
1 of 6
the settled-ticket archive
Answer Delivery
1 of 6
the support mailbox
Inquiry Intake
1 of 6
the ticket history
Question Reading
1 of 6
the ticket record
Weekly Learning
1 of 6
the ticket system
Inquiry Intake
3 of 6
the weekly dashboard
Weekly Learning
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