With Rippit, compliance teams check 100% of customer conversations, whether a rep or an AI agent handled them, with every flag traceable to the source conversation.
A customer doesn’t usually write, “I would like to file a complaint.” They write: “This is the third time I’ve asked about this and now I’ve been charged twice.” Or: “I just want my money back.” If your process depends on customers using the right words, or reps remembering the right tag, you’re going to miss complaints. As more conversations are handled entirely by AI agents, that blind spot gets bigger.
Key takeaways
- Tag-based counts miss complaints: customers rarely say “complaint,” and reps are measured on solving problems, not classifying them.
- A complaint made to an AI agent may never reach a person who could log it.
- Five signals find likely complaints: dissatisfaction, detriment, a remedy sought, repeat contact and escalation.
- Automated detection finds candidates; your policy and a trained reviewer decide what counts.
- You can price missed complaints with your own numbers.
Why don’t ticket tags tell you how many complaints you have?
Because tagging is a side task. The rep is trying to solve the customer’s problem quickly, juggling multiple conversations. Even when a rep recognizes that a customer is unhappy, they may fix the problem and close the ticket as “solved.” That’s good customer service. It’s not necessarily good complaint detection.
Broad categories don’t help either. A “billing” tag might describe an invoice download question or a customer charged twice who has contacted you three times for a refund. The better approach is to look at what the customer actually said.
What signals indicate a complaint?
Instead of searching for the word “complaint,” define the signals that indicate one, written the way you’d brief a new reviewer:
| Signal | What to look for in the conversation | Why it matters |
|---|---|---|
| Dissatisfaction | The customer says something was wrong, unfair or unacceptable | The baseline of most complaint definitions |
| Detriment | Money lost, fees charged, access blocked, significant time wasted or another negative consequence | Separates a complaint from dissatisfaction with no consequence |
| A remedy sought | A refund, reversal, correction, apology or some other action | A strong sign the customer expects redress |
| Repeat contact | Contacting you again about something that should already have been resolved | Often the clearest unlabeled complaint |
| Escalation | A supervisor, chargeback, regulator, lawyer or public review is mentioned | Usually needs routing under your policy |
Not every conversation containing one of these signals is a complaint. That’s the point: automated detection shouldn’t make the final compliance determination. It should find the conversations a person should review. Your own policies and applicable regulatory requirements determine what ultimately counts as a complaint, what is reportable and what happens next.
What happens when a customer complains to an AI agent?
There may be no human in the conversation to notice. The AI agent might answer the immediate question and close the chat. On a containment dashboard it looks fine, but the customer may still have made a complaint that should have been reviewed (see why containment rate can mislead). Complaint monitoring needs to cover the conversation itself, whether a human or an AI agent handled it.
Why check every conversation instead of a sample?
Complaints are exactly the kind of event sampling struggles with: they’re relatively rare, and the ones that matter aren’t necessarily the lowest-CSAT conversations. So instead of asking, “Did our agents tag every complaint?”, ask “Which of our customer conversations contain the signals our complaint policy tells us to look for?” That can be checked across the entire population. For the full compliance program (which checks to run, what a flag record must contain), see how fintech support teams monitor 100% of conversations for compliance and why Rippit reads 100% of conversations.
What is a missed complaint worth?
An unlogged complaint can still become a refund, an escalation (a chargeback, a regulator or ombudsman referral, a public review) or a customer who quietly leaves. Price it with your own numbers:
Monthly cost of missed complaints = missed complaints per month × [(share that escalate × average cost of an escalation) + (share whose customer leaves × annual revenue per customer)]
Illustrative example, not Rippit data: 400 missed complaints a month, 5% escalating at $300 each and 10% losing a customer worth $1,200 a year, puts 400 × (0.05 × $300 + 0.10 × $1,200) = $54,000 at risk every month.
How does Rippit find complaints in every conversation?
Describe your complaint criteria in plain language and Rippit runs them across every conversation. Connect your customer conversation hubs to Rippit in one click—including Zendesk, Intercom, Gong and more—then tell the agent what to check across 100% of your connected conversations (how it works, integrations). Self-serve connections are read-only (data integrations, security). For example:
“Flag conversations where the customer describes a financial loss, asks for a refund or correction, says they’ve contacted us previously about the same unresolved issue, or asks to escalate.”
The agent runs across conversations handled by reps and AI agents and produces a queue of candidates. Each flag links back to the source conversation, so the reviewer sees what the customer actually said. Once the logic is working the way you want, it runs automatically on new conversations on a schedule and sends candidates to email or Slack (Agent Apps).
The important distinction is simple: Rippit finds the conversations. Your team decides what they mean.
- 1 · EVERY CONVERSATIONHandled by reps and AI agents, from connected sources.
- 2 · CANDIDATE QUEUEThe agent flags candidates, each linked to the source conversation.
- 3 · REVIEWERRecords “complaint” or “not a complaint” with a reason.
- 4 · CALIBRATIONDisagreements go to a regular calibration session.
- 5 · RUBRICChanges when the same disagreement keeps coming back.
How do you keep a person in the decision?
Treat the output as a queue, not a verdict. A reviewer opens each candidate and records “complaint” or “not a complaint” with a reason; disagreements go to a regular calibration session; and the rubric changes when the same disagreement keeps coming back. Keep the rubric version, the decision and the source conversation together: that trail is what an audit asks for. More on Rippit Learn and the compliance pillar page.
Frequently asked questions
How do we find customer complaints in our support tickets and calls when customers never use the word complaint?
Look for behavior, not vocabulary: dissatisfaction, detriment, a remedy requested, repeat contact or escalation. Apply those signals to every conversation and have a trained reviewer decide which candidates are complaints.
Does it cover conversations our AI agent handled?
Yes, when those conversations reach Rippit through a connected source. AI agents such as Intercom Fin, Zendesk AI agents, Ada, Decagon and Sierra are covered the same way. The full catalog is at rippit.com/integrations.
How do we show our work to an auditor?
Keep three things together: the rubric version used, the flag with the signals behind it, and the reviewer’s decision recorded against the source conversation. Confirm the retention and evidence requirements that apply to you with your own compliance counsel.
Build your first agent on your own customer conversations. Free, no credit card, no engineer needed.
Want a more personalized walkthrough? Request a demo.
Rippit Docs · Data integrations
Rippit Docs · Security: data integrations
Rippit Docs · Agent Apps
Rippit · How it works
Rippit · Integrations
.webp)