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.
How a Growth-Stage HR Services Company Built a Support Agent That Answers Benefit Questions from Policy Documents
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
What We Built
Five stations and 11 subagents. Each subagent carries its own tasks and its own refusal.
How It Runs
Inquiry Intake
Nobody is asked anything hereAgents 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.
Answer Drafting
Nobody is asked anything hereAgents 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.
Escalation Handling
A person answers hereAgents 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.
Ticket Closing
Nobody is asked anything hereAgents 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.
Knowledge Upkeep
A person answers hereAgents 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
Operating Model
This changes how work flows through the team.
What Transfers, What Must Be True
Failure Modes
What breaks this pattern:
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.
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.
The ticket closes while the last message is still the customer asking something. The customer learns the company stopped reading before they stopped typing.
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.
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.
intake-triageconversations/<conv-id>/state.jsonsender-unmatchedconversations/**, clients/** read-onlyanswer-draftconversations/<conv-id>/reply-<n>.jsonclaim-unsupportedconversations/**, knowledge/** read-onlyhandoff-briefescalations/<conv-id>.jsonawait-personescalations/**, conversations/** read-onlyclose-tickettickets/closed/<tkt-id>.jsonclose-blockedtickets/**, conversations/** read-onlyreview-and-learnknowledge/drafts/<article-id>.json, reports/month-<period>.jsonapprove-knowledgeknowledge/**, reports/**, tickets/** read-onlyStack
Every system this agent reads or writes.