AI Adoption GuideSupportTriage
Churn-risk and VIP flagging
A predictive model surfaces revenue-at-risk, VIP, or expansion-sensitive tickets for fast-track handling.
Support processIntakeTriageAssignInvestigateResolveConfirmClose
By Don, DoneThat’s AI coach · updated
A flag names an account, not a promise to that account
A churn-risk flag on a ticket says one thing: this account's relationship is worth extra attention right now. It is a pointer to a commercial fact that the agent reading the ticket would not otherwise see. It is not a prediction that the customer will leave, and it is not authorization to give them anything.
The flag exists because most agents have no visibility into contract value, renewal dates, or an open expansion conversation. Someone handling a stuck integration ticket has no way to know the account is sixty days from renewal. Surfacing that at triage is the whole benefit.
Effort is high here for reasons that have nothing to do with modeling. The flag needs contract data, renewal dates, product usage, and an opinion from the account team, joined to a support ticket in real time. Most of that work is plumbing and agreement, not machine learning.
Keep the flag off any customer-visible surface. A support reply that reveals someone was fast-tracked because of contract size is a bad day for the account team. Store it as an internal field with an audit trail, alongside the account context pulled into the ticket at intake.
Three different flags, three different definitions
Collapsing VIP, revenue-at-risk, and expansion-sensitive into one badge is the most common design error. They mean different things, they come from different data, and they justify different handling. Give each one its own field and its own rule.
VIP is a list, not a prediction. Somebody in sales or customer success writes down which accounts qualify and why, with a review date. A list is auditable. A model that infers importance from behavior will quietly encode whichever accounts happened to complain most last year.
Revenue-at-risk is the predicted one, and it needs an explicit definition of risk of what. Non-renewal within a stated window is a definition. Unhappiness is not. Train on accounts that actually churned, and be honest that churn is rare enough that most flags will be wrong in the direction of caution.
Expansion-sensitive is the simplest and the most often forgotten. It means an open opportunity or an active pilot exists on this account today. That comes straight from the CRM, needs no model, and is usually the flag agents find most useful.
When contract or CRM data is stale, show no flag rather than an old one. A VIP badge on an account that downgraded eight months ago sends real effort to the wrong place, and it takes a long time for anyone to notice.
Fast-track means a capped lane with a fixed size
Decide exactly what a flag is allowed to do before turning it on. Three options are defensible. It can move the ticket into a small dedicated queue. It can raise the ticket within its existing priority band. It can add a note without changing order at all.
One option is not defensible: unlimited promotion to the front. If every flagged ticket goes first, the flag becomes the queue, and unflagged customers absorb all the waiting. Cap the fast lane at a number of tickets per shift that the staffing actually supports.
Publish the cap internally and watch what fills it. If the lane runs full every day, either the flag is too broad or the team is understaffed, and both are management problems rather than model problems. A lane that overflows silently is just a slower version of the old queue.
Never let the flag change what the customer is entitled to. Refund limits, exception approvals, and policy carve-outs stay exactly where they were. An agent who sees a VIP badge and issues a credit they could not otherwise issue has turned a triage hint into an unlogged discount.
Show the reason next to the flag. Renewal in forty days, open expansion opportunity, third ticket on the same defect this month. An agent can act on a reason. A red dot with no explanation gets ignored within a fortnight.
A fleet telematics renewal where the flag fired for the wrong reason
This example is invented. A vendor selling vehicle telematics to regional trucking firms flags accounts as revenue-at-risk when three conditions coincide: renewal inside ninety days, a drop in weekly active vehicles, and two or more support tickets in a fortnight.
A mid-sized carrier hits all three in March. Renewal is seventy days out. Active vehicles fell by roughly a fifth. Three tickets arrived in nine days, all about missing overnight trip data. The flag fires with the reason string shown to the triage agent.
The fast lane is capped at eight tickets per shift and has four in it, so the ticket enters. An agent picks it up the same morning, reads the usage drop in the reason string, and investigates rather than answering the surface question.
The underlying cause turns out to be seasonal. The carrier parks part of its fleet every winter, which explains the vehicle drop, and the missing trip data comes from a firmware version on twelve older units. The account was never close to leaving. The flag still did its job, because a stalled data problem on a renewing account got worked in hours instead of days.
The account manager gets a note, not an alarm. Seasonal parking is now a documented exclusion, added by a person after this case. The three related tickets are also linked by similarity matching that groups tickets sharing an underlying defect, which is what actually explains the volume.
What makes a risk flag stop being believed
Trust in this flag is fragile, and once agents ignore it the whole build was wasted. Four things destroy it.
Too many flags. If a large share of the queue carries a badge, the badge stops meaning anything and agents filter it out. Tune for a flag rate the fast lane can absorb, and accept that this means missing some real risk.
Reasons that do not survive a phone call. If the reason string says declining engagement and the account manager knows the customer is mid-migration, the agent learns the model is guessing. Reasons must be checkable facts: a date, a count, a named product.
Silence about the misses. A model trained on churned accounts will never flag the customer who leaves quietly at renewal without filing a ticket. Support cannot see that customer at all. Say so plainly, so nobody treats an unflagged account as a healthy one.
Flag stacking with other automation. When a flag also raises the sentiment score, also changes the routing category, and also triggers a manager alert, one signal fires four times and the ticket arrives with manufactured urgency. Let each signal count once, and keep it separate from the priority score built from tone, tier, and language cues.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other. This one is rated high effort to implement, so the baseline matters more than usual.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first