Customer Support Copilot
An AI copilot that helped CS agents resolve tickets in under 5 minutes, down from 42. Built for Thailand's largest bank in financial services.
88%
faster resolution
< 5 min
avg. ticket time
87%
agent satisfaction
150
agents deployed
the problem was human-shaped
SCB 10X is the innovation arm of Siam Commercial Bank, Thailand's largest financial institution. Their customer support team handled thousands of inquiries daily. Forgotten passwords, cross-bank transfer disputes, policy questions. All manually.
The pain was everywhere:
- •42-minute average resolution time, and that's not counting tickets that needed days of follow-up across departments.
- •Conversations weren't recorded or summarized. Agents had to write up tickets by hand after each chat, and sometimes they just didn't. Information got lost.
- •Agents kept switching between the chat interface and the bank's knowledge base in Salesforce, trying to find the right policy while customers sat there waiting.
🕰️This was late 2023, about a year after GPT launched. RAG was brand new. There were no best practices, no playbooks for building this stuff in production, and definitely not in Thai.
what we actually built
Not a chatbot, a copilot. That distinction matters. We were in banking, under heavy regulation. AI couldn't talk to customers directly. So instead of replacing agents, we made them faster.
copilot chat interface
auto-generated ticket summary
Due to enterprise confidentiality, actual product screens can't be shared. These interactive mockups were built to demonstrate the experience. Conversations are in Thai (the product's native language) with English translations.
how it works
Customer contacts support
Through the bank's chat channel. Business as usual.
Agent opens the copilot
Starts the conversation in our interface alongside the bank's existing tools.
AI suggests 3 replies in real time
Pulled from the bank's Salesforce knowledge base through a RAG pipeline. Policies, troubleshooting guides, regulatory docs.
Human reviews & edits
The agent picks a suggestion, tweaks it if needed, and sends. Human-in-the-loop, always.
Auto-generated summary & to-dos
After the conversation, the system creates a ticket summary and next-step list, stored in Salesforce. No more forgotten tickets.
under the hood
The RAG pipeline searched across the bank's entire knowledge base. Everything from password reset guides to cross-bank transfer policies to Thai-specific regulatory edge cases.
LangChain
orchestration & prompt routing
Pinecone
vector DB for semantic search
LangFuse
observability & tracing
Salesforce
knowledge source & output
🔒PII was handled through a redaction layer. Sensitive customer data was masked before anything hit the LLM, then re-injected after. Non-negotiable when you're dealing with people's money.
what i actually did
went to the CS office
I didn't just take requirements from the project owner. I went to the CS office and sat with the agents, watched how they juggled tools, where they got stuck, how they handled weird edge cases. Then I mapped all of that out so the engineering team had something real to build from.
shaped the product strategy
The decision to build a copilot instead of a chatbot came from regulation, trust, and common sense. AI in banking needs a human in the loop. I worked with engineers on when to show suggestions, how to route queries, and when the model should just stay quiet.
built the eval framework from scratch
There was no off-the-shelf way to evaluate RAG in late 2023. So we built our own. Automated retrieval tests, LLM evaluation against a golden dataset I put together with the CS leads, and a feedback survey from the agents themselves.
navigated a dual trust problem
Corporate leadership wanted AI but didn't trust AI. I had to build the case for investment while being honest about limitations. The CS team was skeptical about a tool that might replace them. I had to show them it was there to help, not take their jobs.
challenges
no playbook existed
RAG was brand new. Chunking strategies, embedding approaches, retrieval tuning, all figured out through trial and error. Things that are standard practice now were genuinely unknown territory.
the data wasn't ready
The bank's knowledge base wasn't clean or structured for RAG. We spent a lot of time just cleaning and restructuring the data before the system could find anything useful.
Thai is brutal for LLMs
Most models in late 2023 were optimized for English. Thai is non-whitespace-delimited with complex morphology. Getting accurate retrieval and natural-sounding Thai out of the model was way harder than an equivalent English system.
high-stakes regulated environment
Every design choice had to factor in financial regulations, data privacy, and the fact that a bad answer could mess with someone's actual money.
many internal AI tools never make it past pilot.
this one deployed to 150 agents, cut resolution time by 88%, and eliminated forgotten tickets entirely.