Home Use Cases Work Insights About Contact
Back to Our Work

How an Enterprise Investment Platform Built a Support Agent That Routes Advice Questions to Human Agents

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 an Enterprise Investment Platform Built a Support Agent That Routes Advice Questions to Human Agents

Before
A person used to read every inbound message and look the customer up.
A person used to read every message to decide who should handle it.
A person used to write every reply, in office hours, in whatever order the queue allowed.
A person used to close every ticket and file the notes afterwards, when there was time.
After
every message, tied to its customer before anything answers
what the customer is asking, and what must go straight to a person
the reply, written only from sources it can show
the short queue only a person can settle
every conversation closed with its record, or held open
Executive Summary

Answers a customer in seconds at any hour, from sources it can show, and refuses the questions an investment platform must keep with a person: advice, complaints, anything it cannot evidence. Six stations, run as a loop: the handoffs a person settles at station 4 become the articles station 3 answers with next week.

What Was Broken

A person used to read every inbound message and look the customer up
A person used to read every message to decide who should handle it
A person used to write every reply, in office hours, in whatever order the queue allowed
The real cost
A person used to close every ticket and file the notes afterwards, when there was time.

What We Built

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

A4
Channel Watch
Watch chat, email and SMS, and stamp each message with the channel it came in on
A3
Identity Check
Match the sender to an account by login, email address or phone on file
A3
Intent Reading
Classify each inquiry by what the customer wants done
A3
Compliance Screen
Detect a request for investment advice, and route it to a person unanswered
A3
Knowledge Search
Search the help articles and past resolved tickets for passages that answer this inquiry
A2
Reply Drafting
Draft the reply from the passages found, and only from them
A3
Reply Check
Check every line of the draft against the passage it came from
A2
Handoff Brief
Summarize the conversation in one line an agent can pick it up from
A3
Queue Routing
Route each handoff to the team that owns that kind of question
A3
Resolution Check
Check whether the customer's last message closed the conversation or continued it
A4
Record Writing
Write the ticket record: transcript, sources used, who answered, how it ended
A4
Week Rollup
Assemble the week's counts: conversations, handoffs, waits, thumbs up and down
A1
Gap Learning
Group the week's handoffs by what actually caused them

How It Runs

1

Conversation Intake

Nobody is asked anything here

Agents watch every channel a customer can write on, thread each message to the conversation it continues, and tie the sender to an account before anything answers. Nothing waits on a person here. An unverified sender only reaches somebody through station 4.

2

Inquiry Triage

Nobody is asked anything here

Agents work out what the customer wants done, pull out the account and amounts the message names, and send straight to a person anything the platform's rules keep away from a bot. A person sees an inquiry here only when it is theirs by rule: advice, complaints, anything unclassifiable.

3

Answer Drafting

Nobody is asked anything here

Agents search the help articles and past resolved tickets, draft the reply from the passages found and nothing else, and send it only when every line traces to a source. A person never reviews a reply here. A draft with no source behind it goes to station 4 instead of a customer.

4

Agent Handoff

A person answers here

Agents assemble everything the bot could not or must not answer into a one-line brief with the whole history behind it, and put it in front of the team that owns that kind of question. This is the station where a person works. Everything else exists to keep this queue short.

5

Ticket Closing

Nobody is asked anything here

Agents watch each conversation to its end, close what the customer has confirmed or gone quiet on, and write the record with the transcript, the sources used and who answered. A person signs nothing here. The answer already happened at station 3 or station 4; this station only refuses to call it settled too early.

6

Service Review

A person answers here

Agents assemble the week's counts, group the handoffs by what actually caused them, and draft the articles and intents that would have kept those handoffs from happening. A person reads what the bot wants to start saying and approves it, changes it, or bins it. The bot does not teach itself.

Where a Person Decides

Step 4, Agent Handoff. Read one line and take the conversation. Open the full history only when the line is not enough. some answers are reserved for a person.
Step 6, Service Review. Read the draft article and the new intent, then approve, change or bin each one. Sign the week once the failing topic has an owner. the bot only says what somebody approved.

Operating Model

This changes how work flows through the team.

Role
Responsibility
Agent Handoff owner
Read one line and take the conversation. Open the full history only when the line is not enough. some answers are reserved for a person.
Service Review owner
Read the draft article and the new intent, then approve, change or bin each one. Sign the week once the failing topic has an owner. the bot only says what somebody approved.

What Transfers, What Must Be True

What transfers
a person is in the loop wherever the rules reserve an answer for one, and wherever the bot would start saying something new. Two of the six stations refuse to proceed without a person: Agent Handoff (station 4), where advice, complaints and everything the bot could not source wait for an agent, and Service Review (station 6), where nothing the bot will start saying goes live unsigned.
Agent Handoff stops for a person, and some answers are reserved for a person.
Service Review stops for a person, and the bot only says what somebody approved.
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 Agent Handoff and has time for it.
Somebody owns Service Review and has time for it.

Failure Modes

What breaks this pattern:

✗ Account details reach the wrong person

A partial name match looks like a verified customer, so the bot attaches the account and starts answering. Someone else's account details land in a stranger's chat.

✗ The bot hands out advice

An advice question matches a topic the bot knows, so it answers. The company is now on record giving advice the platform says only a person may give.

✗ Fluent answers with no source

When no passage fits, the nearest one reads close enough, and the bot writes around the gap. The customer gets a confident answer that nothing in the knowledge base actually says.

✗ Tickets close on unanswered questions

The customer asks one more thing and the bot has nothing left to say. The ticket closes as resolved, and the reports count a customer who never got an answer as served.

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.

Conversations tied to an account
Counted at Conversation Intake
6,026
Tied to the wrong account
Counted at Conversation Intake
0
Could not tie, handed on
Counted at Conversation Intake
214
Inquiries classified and routed
Counted at Inquiry Triage
6,240
Advice requests answered by the bot
Counted at Inquiry Triage
0
Routed straight to a person
Counted at Inquiry Triage
429
Replies sent
Counted at Answer Drafting
4,680
Sent without a supporting source
Counted at Answer Drafting
0
Held for a person instead
Counted at Answer Drafting
309
Records written with their full transcript
Counted at Ticket Closing
6,240
Closed over a customer's unanswered question
Counted at Ticket Closing
0
Held open until somebody answered
Counted at Ticket Closing
37
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.

1Conversation Intake
subagentwatch-channels
writesconversations/inbound/<conv-id>.json
raisesidentity-unresolved
may touchconversations/**, accounts/** read-only
2Inquiry Triage
subagenttriage-inquiry
writesconversations/triaged/<conv-id>.json
raisesreserved-for-a-person
may touchconversations/**, rules/** read-only
3Answer Drafting
subagentdraft-reply
writesconversations/replies/<conv-id>.json
raisesno-supporting-source
may touchconversations/**, kb/** read-only
4Agent Handoff
GATE
subagenthandoff-brief
writesconversations/handoff/<conv-id>.json
raisesawait-agent-pickup
may touchconversations/handoff/**, everything else read-only
5Ticket Closing
subagentclose-ticket
writestickets/closed/<conv-id>.json
raisesheld-open-unanswered
may touchtickets/**, conversations/** read-only
6Service Review
GATE
subagentreview-week
writeskb/proposals/<id>.json, reports/week-<n>.json
raisesapprove-what-the-bot-says
may touchkb/**, reports/**, tickets/** read-only

Stack

Every system this agent reads or writes.

System
Read at
Stations
the SMS gateway
Conversation Intake
1 of 6
the account records
Answer Drafting
1 of 6
the conversation archive
Ticket Closing
1 of 6
the conversation store
Inquiry Triage
2 of 6
the customer account system
Conversation Intake
2 of 6
the customer satisfaction survey
Ticket Closing
1 of 6
the help centre
Service Review
1 of 6
the help centre articles
Answer Drafting
1 of 6
the intent model
Inquiry Triage
2 of 6
the metrics dashboard
Service Review
1 of 6
the platform's rules on what a bot may answer
Inquiry Triage
1 of 6
the promise clock on each handoff
Agent Handoff
1 of 6
the resolved-ticket archive
Answer Drafting
1 of 6
the support mailbox
Conversation Intake
1 of 6
the support team's queue
Agent Handoff
1 of 6
the team directory
Agent Handoff
1 of 6
the ticketing system
Ticket Closing
1 of 6
the vector index across both
Answer Drafting
1 of 6
the web chat widget
Conversation Intake
1 of 6
the weekly review report
Service 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