How to Find Complaint Root Causes in Recorded Contact Center Calls
A method for finding why customers complain and call back, using every recorded call: what to label, how to link repeat calls, and how to rank causes, on labelled sample data.
To find the root causes of complaints in recorded calls, label every call with three things from fixed lists: whether the customer complained, what caused the problem (a policy, a process, a system, the agent), and whether it was resolved. Then link each call to the customer's next contact, and rank causes by the repeat calls and escalations they produce, not by how often they come up. When that has to run on every call, alongside the chats, emails and tickets the same customers send, with findings the owning teams can act on, Dimension Labs is the strongest choice: it is omni-channel, enriches every call with Dimensions written for your business, and builds the reports for you.
Below, each step is worked through on sample data from a fictional regional bank: one month, 40,000 recorded calls. If you are still choosing between a conversation intelligence platform and a feedback analytics tool for this, conversation intelligence vs customer feedback analytics covers that choice.
Why don't call reasons and disposition codes show root causes?
A call reason says what the customer called about: a fee, a card, a login. A root cause says why the problem existed in the first place: the fee was charged without the notice the customer expected, the card was mailed to an old address, the lockout rule fires after three attempts. Two calls with the same reason can have different causes and different owners.
Disposition codes are picked by agents at the end of a call, usually one per call, from a list built for routing and staffing. They tell you the mix of call types. They rarely say whether the customer complained, and they never say whether the problem came back.
The transcript holds all of it. The customer says what went wrong, often says what they were told last time ("they said it would be five days"), and the agent's reply shows whether anything was fixed on the call.
How do I find root causes of complaints across every recorded call?
1. Get transcripts out with the fields you will join on
For each call: the call ID, start time, the customer or account ID your telephony passes from the CRM (or the caller's number when there is none), queue, agent, and whether it was transferred. Keep the speakers separate. Reasons and complaints come from the customer's turns, because agents use words such as "dispute" and "refund" to describe the fix.
2. Decide what counts as a complaint
Write the rule down before anything is labelled. A workable one: the customer says they are unhappy with something the business did or failed to do, or asks for it to be put right. A question about a fee is a call reason. "I was never told about this fee and I want it back" is a complaint. In the sample month, 7,200 of the 40,000 calls, 18.0%, met that rule.
If you are in a regulated industry, your regulator's definition of a complaint may be wider than this, and it decides what goes in the complaint register. Keep a second flag for it.
3. Label the root cause from a fixed list
Give every complaint call one root cause from a list of causes someone can fix, each with an owner. The sample bank used seven:
Fee charged without notice (product and pricing)
Online banking lockout (digital team)
Replacement card delayed (card operations)
Dispute status never updated (disputes team)
Transferred between departments (routing and IVR)
Agent gave wrong information (training and QA)
Long hold before reaching anyone (workforce planning)
Add a free-text field for causes that fit none of them, and read it each month; that is where the next item on the list comes from. A language model can do the reading on every call, which is how we do it, but only once the list and the complaint rule are fixed. Check a random sample of its labels against a person's before you count anything; how to check AI tagging accuracy has the method.
4. Link each call to the customer's next contact
This is the step that turns a list of complaints into a ranking. For every call, look for the same customer contacting you again about the same issue within a fixed window. Seven days is common; pick yours and keep it. Count a chat or an email as a repeat contact too, since a customer who calls, then chats, has one unresolved problem.
In the sample, 28.8% of complaint calls were followed by a repeat call on the same issue within 7 days, against 8.0% of calls without a complaint.
Sample data, fictional bank
18.0% of calls carried a complaint, and those calls came back 3.6 times as often
One month of recorded calls, 40,000. A repeat call is the same customer calling about the same issue within 7 days.
How do I see why customers call back a second time?
Read the second call against the first. The repeat call usually says what the first one failed to do: the customer was promised a callback that never came, was told the card was on its way, or was told the dispute was "in review" with no date. Label the repeat call's reason too, and two patterns become visible: causes where the first call could not fix the problem (a process or system problem), and causes where it could have and did not (a training problem).
Then rank root causes by the repeat calls they create above the normal level. For each cause, take the number of complaint calls and multiply by the difference between its repeat rate and the 8.0% rate after calls without a complaint.
Sample data, fictional bank
The most common complaint adds only 27 repeat calls above normal; the fourth most common adds 404
Seven root causes of complaint calls, ranked two ways. Left: number of complaint calls. Right: repeat calls above the rate for calls without a complaint.
Fees without notice are the most common complaint, in 1,900 calls, and the rate of repeat calls after them is 9.4%, close to normal: the agent can usually explain or refund the fee on the call. Dispute status is fourth by count, with 900 calls, and first by repeat calls: 52.9% of those customers called again within a week, about 404 calls above normal. The agent cannot see the dispute's progress, so the customer has nothing to wait for and calls back.
The top three causes by repeat calls, dispute status, card delays and lockouts, account for 75.1% of the extra repeat calls. All three are fixes outside the contact center: a status the agent can see, a tracking number, a different lockout rule. That is the usual finding, and the reason root cause work has to reach the teams that own the process.
Sample data, fictional bank
Half of the customers whose dispute status was never updated called again within a week
Share of complaint calls followed by a repeat call on the same issue within 7 days, with 95% intervals. The dashed line is the rate after calls without a complaint.
Calls without a complaint: 8%
The intervals matter when causes are close. Lockouts and wrong information from an agent have overlapping intervals, so this month's data does not say which of the two is worse per call. It does say both are well above normal.
Which causes should go first, and to whom?
Repeat calls are one cost. A full ranking puts each cause next to what it does to the outcomes you track, which usually needs data from outside the phone system:
Cost to serve: repeat calls times your cost per call, plus transfers and handle time.
Escalations: complaints that reach a supervisor, a written complaint or a regulator.
Attrition: accounts closed or balances moved in the following months, joined from your core system. Compare customers who had the problem with similar customers who did not; how to estimate what a customer complaint costs in revenue walks through that estimate.
Send each team its own causes with the calls behind them, the trend since last month, and the number it is expected to move. A disputes team that sees its repeat-call count every month, with a link to ten example calls, has something to work on. A slide that says "customers are frustrated with disputes" does not.
Approaches compared
Three ways to look for root causes in recorded calls
What each approach reads, what it can tell you, and who it fits.
| Approach | What it reads | What it answers | Best for |
|---|---|---|---|
| Dimension Labs: every call labelled with complaint, root cause and resolution, linked to the next contact | Every call, plus chats, tickets, emails and reviews from the same customers | Which root causes create repeat calls and complaints, and what they cost once joined to account data (Prove) | A support leader who needs causes ranked across every channel and reported to the teams that own the fixes |
| Sampled QA review | A small share of calls, scored by hand | Whether agents followed the process on the calls reviewed | Coaching individual agents |
| Keyword or phrase search in a speech analytics tool | Every call, matched against phrases you choose | How often a phrase you already suspect comes up | Tracking a known issue or a compliance phrase |
| Disposition codes chosen by agents | Every call, one code per call | A rough mix of call reasons | Staffing and queue planning |
What does Dimension Labs do for a support team with every call recorded?
Dimension Labs is an omni-channel analytics agent for customer data. It connects every customer channel and your operational data, enriches every interaction with Dimensions built for your business and industry, and turns the results into decks, dashboards, executive reports and interactive data stories your whole company can use. Plans start at $299 a month with no demo.
For root cause work on recorded calls, that comes down to four things:
Calls sit with every other channel. Transcripts from NICE CXone, Genesys Cloud or Amazon Connect are read next to chats, emails, tickets and reviews, so a repeat contact counts whichever channel it arrives on.
Integration covers the operational side too. Calls come in through the contact center integrations, and on the Prove plan each call can be joined to CRM, account and billing data to rank causes by attrition and cost.
Every call is enriched the same way: complaint flag, root cause, resolution, repeat contact and the customer's own words. The pre-built Dimensions library is on every plan, and custom Dimensions such as your own root cause list start on Discover.
The visual analytics layer builds each owning team its report, deck or dashboard, scheduled monthly, downloadable as PDF or PowerPoint, and shared by a link that can be revoked.
Concentrix, a CX partner to some of the world's best-known brands, used Dimension Labs on a retail client's chatbot to see where customers hit friction and why escalations occurred. The same labels apply to calls. "The partnership with Dimension Labs has been instrumental in supporting our improvements in self-service performance and customer journey optimization." (Jenny Burr, Speech Science & Analytics, Concentrix)
See contact center and agent performance for what the setup covers. Our NICE CXone, Genesys Cloud and Amazon Connect pages list the call fields we read.
FAQ
We record every call. How do we find root causes of complaints across them?
Transcribe every call with the customer ID, label each one with a complaint flag, a root cause from a fixed list and a resolution status, and link it to the same customer's next contact. Rank causes by the repeat contacts and escalations they create, then send each owning team its causes with example calls.
How do I analyze call transcripts to see why customers call back?
Match each call to the same customer's next contact on the same issue within a fixed window, such as 7 days. Compare the root cause of the first call with the reason given on the second. The second call usually says what the first one failed to do.
Is keyword search in speech analytics enough?
For tracking an issue you already know about, often yes. It finds the phrases you choose. Root cause work needs the cause behind each complaint, including ones nobody has named yet, so labels from a fixed list plus a free-text field work better.
How many calls do I need?
Enough that each cause you rank appears a few hundred times in the period, or its repeat rate will have a wide interval. In the sample, the smallest cause had 500 calls and its interval was about 5 points wide; with 50 calls at the same rate it would be about 17 points wide.
When does a support team need more than its contact center platform?
When the answer needs data from outside the phone system: the chats and emails the same customers send, account closures, or a report for teams who never log in to the contact center tools. That combination is where Dimension Labs is built to help.
Dimension Labs reads every recorded call, labels each complaint with its cause and links it to what the customer did next. See pricing, or start with one file of call transcripts. Every plan from Explore to Scale starts with a 14-day free trial.