Skip to main content
Case Studies

AI Chatbot ROI — When Customers Ask 3,000 Questions a Day and the Bot Is Only 60% Accurate, How Do You Fix It?

A case study on improving an AI chatbot from just 60% accuracy into a system with 94% accuracy, reducing cost per interaction by 68% and handling 85% of all inquiries without human escalation

13 Mar 20269 min
AI ChatbotCustomer ServiceNLPROI OptimizationConversational AIAI

The Problem — The Bot Was Live, but Everything Got Worse

This client was a mid-sized e-commerce business receiving an average of 3,000 customer questions per day, covering everything from shipping status and product pricing to return policies and promotions.

Six months before we got involved, the client’s team had already deployed their first AI chatbot, hoping it would reduce the Customer Service team’s workload by around 50%.

The outcome was the opposite:

  • Accuracy was only 60% — out of every 10 questions, 4 were answered incorrectly
  • NPS dropped by 15 points — customers were frustrated by irrelevant responses and repetitive loops
  • 40% of conversations had to be escalated to a human agent
  • Agents were spending more time than before because they had to correct the bot’s wrong answers before they could actually help
  • Cost per interaction increased by 23%, from ฿39 to ฿48 — the exact opposite of what had been promised

Total damage: ฿180,000/month spent on chatbot platform fees plus agent overtime required to clean up the resulting issues.

Here was the situation when we came in:

Problem Number Impact
Low accuracy 60% Customers received wrong answers 4 out of 10 times
High escalation rate 40% Agents were just as overloaded as before
NPS decline -15 points Customers began leaving negative reviews
Increased cost +23% (฿48/interaction) Completely contrary to the business case
Wasted spend ฿180,000/month Bot + unnecessary agent OT

The client was close to removing the bot entirely by the time we started the conversation.


The Objective — Set Clear Targets Before Taking Action

We aligned on KPIs with the client before the project began. Every metric had to be measurable in real terms:

Metric Before Target Why this number
Accuracy 60% ≥ 90% Below this, customers won’t trust the bot
Containment Rate 60% ≥ 80% The bot must resolve issues without human handoff
Cost per Interaction ฿48 ≤ ฿15 A 3x reduction from the current level
CSAT Score 3.1/5 ≥ 4.2/5 It needs to outperform the industry average
First Response Time 45 seconds ≤ 5 seconds E-commerce customers expect instant replies

We told the client directly: even if we achieved only 3 out of these 5 targets, it would still be worthwhile. The goal was to make the bot genuinely useful, not just something nice to showcase.


The Approach — 3 Principles Before Touching a Single Line of Code

Before optimizing anything, we established 3 core principles:

1. Understand Before Answering

The bot had to truly understand customer intent before responding — not just detect keywords and fire back an answer.

2. Fail Fast to Human

If confidence is low, escalate immediately. A wrong answer causes more damage than no answer.

3. Learn from Every Conversation

Every conversation had to become training data so the system could improve week by week.


What we see again and again: many companies dump their entire FAQ into a chatbot and expect it to “understand.” Garbage in, garbage out. If the knowledge base is poorly structured, the bot will respond poorly too.

We designed the system in layers:

Layer Role Why it matters
Intent Classification Identify what the customer is asking about Reduce misclassification, the primary cause of wrong answers
Knowledge Base (RAG) Retrieve relevant information to support responses Ensure fact-based answers instead of unreliable generation
Conversation Management Maintain context throughout the conversation Let customers ask follow-up questions without starting over
Human Handoff Intelligence Decide when to transfer to a human Escalating early at low confidence is better than answering incorrectly
Continuous Learning Pipeline Learn from every conversation Improve the system weekly without waiting for major updates

The Process — 4 Phases in 12 Weeks

Phase 1: Conversation Audit (Weeks 1–3)

We pulled 15,000 real conversations from the previous 6 months for analysis. We didn’t guess, and we didn’t rely on stakeholder assumptions — we looked at the actual data.

Root cause analysis of incorrect answers:

Cause Share Example
Intent Misclassification 47% The customer asked about returns, but the bot interpreted it as a shipping inquiry
Knowledge Gap 31% The bot had no information about a new promotion and responded with data that was 3 months old
Context Loss 22% The customer asked a follow-up question, but the bot lost the context from the previous message

The key finding: the biggest issue wasn’t that the model was unintelligent — it was that the training data did not reflect real customer questions. There was a massive gap between the company’s self-written FAQ and how customers actually asked for help.

Phase 2: Knowledge Restructuring (Weeks 4–6)

We completely rebuilt the knowledge base:

  • Extracted 287 intent patterns from real conversations, compared to only 45 topics in the original FAQ
  • Built a dynamic knowledge base synced with the client’s back-end systems — product pricing, stock status, and promotions updated in real time
  • Added contextual variations for every intent, so phrases like “return item,” “request refund,” “send it back,” and “I don’t want it anymore” all mapped to the same intent

An example of a complex intent: a customer types, “I ordered yesterday and still haven’t received tracking.” This is not just a shipping status question — it also carries implied urgency. The bot had to respond with the status and, if the order had not yet shipped, escalate to the fulfillment team for verification instead of simply replying, “Please wait 3–5 business days.”

We organized the intents into 12 main groups and 287 sub-intents, based on real-world scenarios rather than what the marketing team imagined customers might ask.

Phase 3: Handoff Intelligence (Weeks 7–9)

We designed a confidence scoring system:

  • Confidence ≥ 85% → The bot answers directly
  • Confidence 60–84% → The bot answers, then asks the customer, “Did this answer your question?” If not → escalate to a human
  • Confidence < 60% → Immediate handoff to a human, with a summarized context so the agent doesn’t have to ask everything again

The key detail: when escalating, the bot sends the agent a conversation summary + predicted intent. This meant agents did not have to start from zero, reducing handling time by 35%

Phase 4: Feedback Loop & Continuous Training (Weeks 10–12)

We built a pipeline where:

  • Every escalated conversation is automatically reviewed
  • Agents can flag incorrect bot answers with a single click
  • The system retrains weekly on new data, without waiting for the dev team to perform manual updates
  • A real-time dashboard shows accuracy trends to both the CS team and the dev team

One notable number: in the first week after launching this pipeline, agents flagged 127 incorrect answers. By week 4, that dropped to just 23 — the system learned very quickly when given high-quality feedback.

What made this pipeline work was simple: we made flagging as easy as possible. Agents didn’t need to write explanations — just click once and choose the error type. If they had needed to file long reports, nobody would have flagged anything.


The Results — But They Were Not Perfect from the Start

Critical Failure: Hallucinated Prices

In the first production iteration, we hit a serious problem: the RAG-based bot displayed incorrect product prices 8% of the time.

For general content, 8% inaccuracy might be tolerable. But in e-commerce, wrong pricing is a disaster. Customers saw a price from the bot and placed an order, only to find the actual price was different. Complaints started immediately. In some cases, customers demanded to buy at the price the bot had quoted.

We had to pause the system for 5 days to fix it.

This is something we want to say plainly: we made a mistake. We should have caught this before deployment. During testing, we used sample data where prices didn’t change often. But in production, promotions changed daily, and the system was surfacing stale cached pricing.

The fix: we added a verification layer for numeric data — price, inventory, shipping fees. All of it had to be queried directly from the database instead of being generated from context. Internally, we called this a “Structured Data Fallback”: if the question involves numbers, skip the generative path entirely and fetch the data directly.

After the fix: Price Accuracy reached 99.97% (only 3 errors in 10,000 cases, and every error was caused by database sync delay, not the bot)

Final Results After 12 Weeks

Metric Before After Change
Accuracy 60% 94% +34 points
Containment Rate 60% 85% +25 points
Cost per Interaction ฿48 ฿15.40 -68%
CSAT Score 3.1/5 4.3/5 +1.2 points
First Response Time 45 seconds 3 seconds -93%
NPS Down 15 points Recovered to +8 points vs. pre-bot baseline Full recovery

Every target we set — all 5 were achieved


Cost Analysis — The Real Numbers That Proved ROI

Item Before (Agent Only) After (AI + Agent) Difference
Agent cost (salary + OT) ฿720,000 ฿290,000 -฿430,000
Chatbot platform cost ฿0 ฿55,000 +฿55,000
Infrastructure & maintenance ฿130,000 ฿35,000 -฿95,000
Total per month ฿850,000 ฿380,000 -฿470,000

Savings: ฿470,000/month = ฿5,640,000/year

The full development and optimization cost for the project was approximately ฿1,800,000, which meant payback in just over 4 months. After that, everything became net savings.

Just as importantly, the remaining agents were not reduced — they were upskilled to handle more complex cases that genuinely required human judgment, improving service quality for difficult cases as well.

Another notable metric: before optimization, each agent handled an average of 85 cases/day, most of them repetitive, low-complexity questions. After optimization, agents handled 32 cases/day, but they were cases that truly required judgment. As a result, the resolution rate for complex cases increased from 71% to 89% because agents had more time to focus on each one.


5 Lessons from This Project

1. Audit First, Optimize Later

“Auditing conversations before tuning the model is like a doctor diagnosing before prescribing medication.” If we hadn’t analyzed 15,000 conversations, we would never have known that 47% of the problem came from intent misclassification rather than model intelligence.

2. Teach the Bot How to Give Up

“If your chatbot gives wrong answers and keeps insisting, customers will be more frustrated than if there were no bot at all — teach it to say, ‘Let me connect you with an agent.’” A 100% containment rate is not the real goal. Customer satisfaction is.

3. Numbers and Money Must Never Hallucinate

In e-commerce, incorrect pricing creates real damage. A bot might get away with imperfect content responses, but price, stock, and shipping fees must always be queried directly from the source of truth. Never let a generative model guess.

4. The Feedback Loop Matters More Than the Starting Model

The first model you deploy doesn’t need to be perfect, but it must have a mechanism to improve every week. The system we delivered in week 12 was visibly smarter than it was in week 8 because the feedback loop was working continuously.

5. Agents Were Not Replaced — They Were Upgraded

The remaining CS team handled harder, higher-impact cases. No one lost their job, but everyone shifted from answering repetitive questions to solving real problems, which also improved team job satisfaction.

Timeline Summary

Week Phase What happened
1–3 Conversation Audit Analyzed 15,000 conversations to identify root causes
4–6 Knowledge Restructuring Built 287 intent patterns + dynamic KB
7–9 Handoff Intelligence Confidence scoring + agent context passing
8 Critical Failure Price hallucination — system paused for 5 days
10–12 Feedback Loop Continuous training pipeline + dashboard
12+ Ongoing The system keeps learning weekly on its own

What Still Needs Improvement

We are not claiming this system is perfect. There are still several areas that need further work:

  • Voice Channel Support — currently the system supports only text-based chat. It is not yet integrated with the call center, which still receives 800–1,000 calls per day
  • Proactive Outreach — the bot is still reactive, meaning it waits for customers to ask first. It cannot yet proactively notify customers when issues occur, such as out-of-stock products or shipping delays
  • Multi-language Support — the current system supports Thai only. Customers who type in English or other languages still have to be escalated to a human, representing around 12% of all conversations
  • Real-time Sentiment Analysis — there is still no system for detecting customer emotion during a conversation. If a customer is becoming frustrated, the bot should escalate faster than it does now

There is also the issue of deeper analytics. Right now, we can track whether the bot answered correctly or incorrectly, but we still cannot measure how much revenue each conversation generates. For example, if a customer asks the bot about a product, do they go on to make a purchase? To answer that, the system needs deeper integration with the e-commerce platform.

We have already aligned on a roadmap with the client for all 5 of these areas, and we expect them to be rolled out gradually over the next 6 months.


If You’re Facing a Similar Problem

Many organizations we speak with tell a similar story — they launched a chatbot, but the results fell short of expectations. Often, the problem is not the technology itself, but the thinking behind it and the data used to support it.

If you want to discuss AI strategy for customer service, or would like us to help audit your existing chatbot system, feel free to reach out. There is no charge for an initial consultation.

Contact the Enersys team


Sources

"Empowering Innovation,
Transforming Futures."

Contact us to make your project a reality.