Home Use Cases Work Insights About Contact
Back to Our Work

How a Growth-Stage HR Services Company Built a Support Agent That Answers Benefit Questions from Policy Documents

Operations3
Open the walkthrough

Five-Step AI Workflow with Human Oversight

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

Steps 3 and 5 need a person. Step 3 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 HR Services Company Built a Support Agent That Answers Benefit Questions from Policy Documents

Before
A person used to read every message and work out who it was from.
A person used to type an answer to every question, from memory, between other tickets.
A person used to chase confirmations and close each ticket by hand.
After
every message tied to its person before anything answers
every reply drafted from a written source, or not sent
the short queue of customers only a person can settle
every conversation watched until it is truly done
the month's questions turned into next month's articles
Executive Summary

Answers a client employee's question in seconds, on whichever channel they used, and never states a benefit no policy document backs. Written for an org where the record is the point: every reply carries the passage it came from, every handoff carries the whole conversation, and the only things left for a person are the customers the bot genuinely cannot settle and the articles it wants to answer from next month. Five stations, run as a loop: what station 5 approves is what station 2 answers from.

What Was Broken

A person used to read every message and work out who it was from
A person used to type an answer to every question, from memory, between other tickets
The real cost
A person used to chase confirmations and close each ticket by hand.

What We Built

Five stations and 11 subagents. Each subagent carries its own tasks and its own refusal.

A4
Channel Watch
Watch the chat widget, the support mailbox and the text line, and stamp each message with where it came from
A3
Intent Triage
Classify each inquiry: payroll, benefits, leave, onboarding, or an account change
A4
Knowledge Search
Search the help articles, this client's policy documents and the settled tickets for passages that answer the question
A1
Reply Drafting
Draft the reply from the retrieved passages, with the passage each claim came from beside it
A3
Grounding Check
Check every claim in the draft against the passage it cites
A3
Handoff Routing
Route each handoff to the person who covers that client and that kind of question
A2
Handoff Brief
Summarize each conversation in one line the person can act from
A3
Resolution Watch
Check every answered conversation for the customer's reply, on every channel
A4
Record Keeping
File each closed ticket with its channels, its sources, its rating and who touched it
A1
Gap Drafting
Map the month's handoffs to what actually caused them
A4
Service Reporting
Assemble the month's numbers from the ticket records: answered, handed off, reopened, rated

How It Runs

1

Inquiry Intake

Nobody is asked anything here

Agents watch every channel a question arrives on, tie each message to its client and employee, and label it before anything tries to answer. Nothing waits on a person here. A conversation only reaches somebody when a later station cannot settle it.

2

Answer Drafting

Nobody is asked anything here

Agents search the help articles and this client's own policy documents, draft the reply, and check every claim in it against the passage it cites before it sends. A person sees a conversation only when no passage answers it, and station 3 carries it to them.

3

Escalation Handling

A person answers here

Agents route each conversation the bot could not settle to the person who covers that client, with the whole thread attached and a one-line brief they can act from. This is the station where a human works. Everything before it exists to keep this queue short.

4

Ticket Closing

Nobody is asked anything here

Agents watch every answered conversation for the customer's reply, reopen the ones that come back on any channel, and file the full record of the ones that are done. A person signs nothing here. The answer already went out, and the record writes itself as the conversation ends.

5

Knowledge Upkeep

A person answers here

Agents map the month's handoffs to what caused them, draft the articles that would have settled the recurring ones, and assemble the month's numbers from the ticket records. A person approves every article before the bot answers from it. That is the one approval in the loop that has to stay human, because a wrong article answers wrongly a hundred times.

Where a Person Decides

Step 3, Escalation Handling. Read one brief and pick or edit the drafted reply. Take the conversation over when the brief is not enough. the bot stopped because it should have.
Step 5, Knowledge Upkeep. Approve or reject the three articles and the one update. Read the two Fabrikam misses and decide what changes. a wrong article answers wrongly a hundred times.

Operating Model

This changes how work flows through the team.

Role
Responsibility
Escalation Handling owner
Read one brief and pick or edit the drafted reply. Take the conversation over when the brief is not enough. the bot stopped because it should have.
Knowledge Upkeep owner
Approve or reject the three articles and the one update. Read the two Fabrikam misses and decide what changes. a wrong article answers wrongly a hundred times.

What Transfers, What Must Be True

What transfers
A person is in the loop wherever a customer is upset, an identity is being changed, or the bot would teach itself. Two of the five stations refuse to proceed on their own, Escalation Handling and Knowledge Upkeep, and those are the two a person carries. Everywhere else the agents run at volume and reach you only when they cannot settle something.
Escalation Handling stops for a person, and the bot stopped because it should have.
Knowledge Upkeep stops for a person, and a wrong article answers wrongly a hundred times.
Every subagent says what it will not do. 11 of them do.
What must be true in your environment
The agent can read the systems your records already live in. This one reads 13.
Somebody owns Escalation Handling and has time for it.
Somebody owns Knowledge Upkeep and has time for it.

Failure Modes

What breaks this pattern:

✗ The Nearest Passage Wins

When no article answers the question, the search hands back the closest one that mentions the topic. The customer gets a confident answer about the wrong thing, and nobody inside the company knows it happened.

✗ Handoffs With Nobody's Name

The escalation lands in a shared queue with no owner. Everyone assumes someone else has it, and the customer waits until they give up or complain.

✗ Closed On The Customer's Question

The ticket closes while the last message is still the customer asking something. The customer learns the company stopped reading before they stopped typing.

✗ Numbers Nobody Can Trace

The service report says resolution improved, and no ticket record backs the number. The team makes staffing and product decisions on a figure that nothing supports.

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.

Inquiries matched and labelled
Counted at Inquiry Intake
2,140
Filed to the wrong client
Counted at Inquiry Intake
0
Held unmatched for a person
Counted at Inquiry Intake
6
Replies sent with every claim sourced
Counted at Answer Drafting
1,585
Claims sent that no passage backed
Counted at Answer Drafting
0
Drafts it refused to send, handed to a person
Counted at Answer Drafting
96
Tickets closed with the full record
Counted at Ticket Closing
2,081
Closed over an unanswered question
Counted at Ticket Closing
0
Low ratings sent to a person to read
Counted at Ticket Closing
23
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
subagentintake-triage
writesconversations/<conv-id>/state.json
raisessender-unmatched
may touchconversations/**, clients/** read-only
2Answer Drafting
subagentanswer-draft
writesconversations/<conv-id>/reply-<n>.json
raisesclaim-unsupported
may touchconversations/**, knowledge/** read-only
3Escalation Handling
GATE
subagenthandoff-brief
writesescalations/<conv-id>.json
raisesawait-person
may touchescalations/**, conversations/** read-only
4Ticket Closing
subagentclose-ticket
writestickets/closed/<tkt-id>.json
raisesclose-blocked
may touchtickets/**, conversations/** read-only
5Knowledge Upkeep
GATE
subagentreview-and-learn
writesknowledge/drafts/<article-id>.json, reports/month-<period>.json
raisesapprove-knowledge
may touchknowledge/**, reports/**, tickets/** read-only

Stack

Every system this agent reads or writes.

System
Read at
Stations
each client's plan and policy documents
Answer Drafting
1 of 5
the client employee directory
Inquiry Intake
1 of 5
the client response promises
Escalation Handling
2 of 5
the help center articles
Answer Drafting
1 of 5
the help center drafts
Knowledge Upkeep
1 of 5
the reporting dashboard
Knowledge Upkeep
1 of 5
the satisfaction survey
Ticket Closing
1 of 5
the settled tickets archive
Answer Drafting
2 of 5
the shared support mailbox
Inquiry Intake
1 of 5
the support rota
Escalation Handling
1 of 5
the text line
Inquiry Intake
1 of 5
the ticketing system
Escalation Handling
2 of 5
the website chat widget
Inquiry Intake
1 of 5
Next Step

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

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