Three-Phase Customer Service Agent Design: Triage, Draft Response, and Human Escalation
Customer service agents often achieve high automation rates but end up creating delays because they do only one thing: receive and respond. Our approach splits the work into three phases: triage, draft response, and human escalation. Each phase has measurable success metrics: intent classification accuracy, average handling time, and post-escalation customer satisfaction. Lower escalation rates are not always better.
By
Tenten AI 研究團隊
應用 AI
Published
January 28, 2026
Read time
5 分鐘

Last quarter we worked with an e-commerce customer service team that had already deployed an auto-reply bot. The dashboard looked great, and management was happy. I pulled the actual conversation logs and saw this: the bot handled 70% of incoming messages, but more than half got interrupted within three exchanges with "I need to talk to a real person," then disappeared into an unmonitored inbox. On paper the automation rate looked high, but in practice it was generating delays, not eliminating them.
The problem wasn't that the model was dumb. The problem was that the system only does one thing: receives a message and generates a response. Real customer service work has never been a single action.
Breaking customer service agents into three phases instead of one
We split the work into three phases, each with clear responsibilities: triage, draft response, and escalation to human. Each phase has defined inputs, outputs, and exit conditions, not one large model handling start to finish. The practical reason: you can only optimize what you can measure. Bundle them together and you get a black box. When something breaks, you just see "overall satisfaction dropped" with no way to know where to fix it.
Triage is the first phase. When the agent receives a message, its first job is not to answer but to classify. What's the intent category (return, shipment tracking, billing dispute, product inquiry)? How urgent is it? Is the customer's emotional state already escalated? Do we need to pull private data like account or order history? Triage produces a structured set of tags that route the message correctly. We learned this the hard way: early on we let the generative model handle triage with no guardrails, and it classified "My package is arriving next week while I travel: will it get here in time?" as routine inquiry and missed the time sensitivity. We added explicit rule guardrails and confidence scores at the triage layer. Anything below the confidence threshold gets routed upward as high-risk, and misclassifications dropped substantially.
Draft response is the second phase, not send response. This is the line we won't cross. For anything the agent can potentially handle, it uses RAG to pull supporting evidence from the knowledge base, returns policy, and the customer's order history, then generates a draft with sources attached. Low-risk and high-confidence messages can go straight out; anything involving amounts, commitments, or exceptions goes into a queue for human review with a one-click send button. The human reviews and clicks send instead of typing from a blank screen. This shifts customer service from author to editor. Measurements showed average handle time dropped from over four minutes to around one minute per message, and response quality actually improved because every draft included knowledge base citations, no more casual promises that can't be kept.
Escalation to human is the third phase, and requires a clean handoff. Escalation is not just dumping the conversation on a customer service rep and disappearing. Good escalation arrives with full context: what the agent already asked, the customer's emotional state tags, why it got stuck, the recommended next step. Escalation triggers are: customer explicitly requests a human, same issue has been retried twice, complaint or refund keywords detected, confidence score falls below threshold. Any one triggers escalation. We don't negotiate. Forcing the system to stretch beyond what it can handle is the most brand-damaging failure mode for customer service agents.
Every phase needs a number you can actually report
The benefit of three-phase design is that you can attach a measurable metric to each phase, one you can actually report to leadership:
| Phase | Core Metric | What Healthy Looks Like |
|---|---|---|
| Triage | Intent classification accuracy, misroute rate | Accuracy > 90%, near-zero high-risk misses |
| Draft Response | Average handle time (AHT), draft adoption rate, auto-resolution rate | AHT down 50%+, adoption rate > 70% |
| Escalation | Escalation rate, first-contact resolution after escalation, customer satisfaction (CSAT) | Stable and predictable escalation rate, CSAT unharmed by automation |
Common mistake: treating low escalation rate as the goal. Some teams optimize for minimum escalations and watch CSAT crater because the agent was stubbornly holding cases it couldn't solve. "Should have escalated but didn't" is more serious error than over-escalating. Triage rate, AHT, and CSAT need to be read together. Optimizing any one in isolation breaks the system.
Knowledge bases decay after launch. Return policies change, promotions end, and the draft phase starts confidently citing outdated rules. We bind knowledge base updates into the agent's operational maintenance cycle instead of treating the handoff as final. It's an ongoing commitment, not a project.
Back to that e-commerce team. They didn't need a different model. We restructured their "receive and respond" flow into triage, draft, and escalation with guardrails and proper handoffs. Human agents shifted from typing to reviewing drafts and handling hard cases. Success metrics: customers solve their problems within minutes, and the system doesn't abandon them halfway. Demo performance is irrelevant.

One stuck workflow
is enough to begin
Tell us what the team does today, where it breaks down, and what a better working day should look like.