AI Ticket Triage: Tag, Route, and Prioritise Support Requests

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Ticket Triage: Tag, Route, and Prioritise Support Requests.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Ticket Triage: Tag, Route, and Prioritise Support Requests.

Design a short, fixed set of tags, priority levels and queues first, then let AI classify each new request against written definitions, using your help desk's built-in triage or a Zapier or Make AI step. It applies tags, priority and assignment, and sends low-confidence requests to a person. Run it in suggest-only mode for two weeks before trusting it.

Most triage that "doesn't work" fails on the categories, not the AI. If "billing" and "warranty" overlap, or "urgent" means whatever the customer typed in the subject line, no model will sort consistently. The trick is to have AI detect facts (no heating, water leaking, elderly occupant) and let your written rules turn those facts into a priority.

Follow me on Instagram@sagnikteaches

Three lists to design before switching anything on

Triage answers three separate questions about every request, and each needs its own short list:

Connect on LinkedInSagnik Bhattacharya
  • Tag: what is it about? Six to ten categories that don't overlap. Every request gets exactly one main tag.
  • Priority: how fast must someone act? Three or four levels, each tied to a response time.
  • Queue: who handles it? Two to five groups or named roles.

Build the lists from real data. Export the last 200 requests, read them, and group them by hand. It takes an hour or two and it's the most valuable hour in the project, because you'll find categories you didn't know you had. For an illustrative ten-person HVAC installer, the result looked like this:

Subscribe on YouTube@codingliquids
TagDefinition (what the AI reads)Default queue
BreakdownSystem not working or working badly now: no heat, no cooling, leaks, noises, error codesService desk
Service bookingWants to book, move or cancel routine maintenanceScheduling
Job statusAsking when an engineer arrives or when booked work will happenScheduling
New installation quoteWants a price for a new or replacement systemSales
Warranty or plan claimSays the fault should be covered by a warranty or service planService desk
Invoice or paymentQuestions about a bill, payment, refund or direct debitAccounts
ComplaintUnhappy with work done, conduct, or how they've been treatedOffice manager
Not a customer requestSuppliers, job applicants, sales pitches, newsletters, spamNo queue; archive or forward

Two design rules make this sortable. Each definition says what's in and hints at what's out: a warranty claim is also a breakdown, so the definitions say warranty wins whenever coverage is mentioned. And there's always a "not a customer request" tag, because otherwise supplier emails and sales pitches get forced into the nearest real category.

Priority as rules, not feelings

Customers write "URGENT" on routine questions, and some people with a genuine emergency write politely. So don't ask the AI "how urgent is this?". Ask it to detect specific facts, and apply your own rules to the facts. The HVAC installer's rule table:

PriorityRule (any one fact is enough)Response target
P1Breakdown and the customer mentions a vulnerable person (elderly, baby, medical condition); water actively leaking; any mention of a smell of gas or burningPhone call within 30 minutes in hours; on-call alert out of hours
P2Any other breakdown; warranty or plan claim with the system not workingSame working day
P3Service booking, job status, quote request, invoice questionNext working day
P4Everything else, including feedback and general questionsWithin three working days

One firm rule sits above the table: anything mentioning a gas smell or burning never waits for a reply by email. The automation sends the customer your safety instructions immediately and alerts a person by phone. AI triage should detect emergencies, never handle them.

Built-in triage or a DIY classifier

There are two ways to get AI doing this. Help desks sell triage as a feature, usually on higher plans; or you add a small automation that sends each new request to a language model with your definitions. Prices below are list prices checked in September 2026.

OptionWhat you payStrengthsCatches
Freshdesk Auto TriagePro plan ($55 per agent a month billed annually) plus the Freddy AI Copilot add-on ($29 per agent a month billed annually)Suggests or automatically sets Priority, Group, Type and custom dropdown fields; manual or automatic modeFreshdesk recommends at least 2,000 past tickets for accuracy; your own automation rules override its suggestions
Zendesk intelligent triageSuite or Support Professional and above (Suite Professional is $115 per agent a month billed yearly); using the classifications in workflows needs the Copilot add-on at $50 per agent a monthClassifies topic (intent), sentiment and language, and extracts custom entities such as order numbersExpensive for a team of three; the topic list is Zendesk's, which you then map to your categories
DIY with Zapier or MakeZapier Professional from $19.99 a month billed annually (750 tasks), or Make from about $9 a month; plus AI step usageUses your exact definitions from day one, works with any help desk or inbox that the automation tool can updateYou own the maintenance, and you must check the help desk's integration can set the fields you need

My rule of thumb: if you're already on a help desk plan that includes triage, try it first. If you'd have to upgrade several seats to get it, a DIY classifier usually costs a fraction and fits your categories better. Freshdesk's detail that "automation rules always take precedence over AI suggestions" matters in practice: if you already have keyword rules setting priority, the AI won't suggest a value for that field, so review old rules before switching triage on.

The classifier prompt for a DIY setup

A DIY classifier is a trigger (new ticket or new email), an AI step, and one or two actions that write the result back. The AI step's prompt is where the work is. Include the definitions verbatim and ask for structured output:

You classify incoming support requests for a heating and cooling firm.
Read the request and return JSON only.

tag: one of "breakdown", "service booking", "job status",
  "new installation quote", "warranty or plan claim",
  "invoice or payment", "complaint", "not a customer request"
  Rules: if the customer mentions a warranty or service plan and the system
  isn't working, use "warranty or plan claim". If a complaint also reports
  a fault, use "complaint".
facts: list any that apply, using only these words:
  "vulnerable person", "active leak", "gas smell", "burning smell",
  "no heating", "no cooling", "error code"
other_issues: any second request in the message, in five words or fewer
confidence: "high", "medium" or "low"
  Use "low" if the request is unclear, in a language you're unsure of,
  or fits two tags equally.
reason: one sentence explaining the tag

Do not decide priority. Do not reply to the customer.

An illustrative request and the classifier's output:

Subject: boiler again!!
Hi, the engineer came Tuesday and it's gone off again, no heating or hot
water. My mum's staying with us and she's 88 so need someone quickly please.
Also can you send me the invoice from Tuesday as I can't find it.

{"tag": "breakdown", "facts": ["vulnerable person", "no heating"],
 "other_issues": "resend Tuesday's invoice", "confidence": "high",
 "reason": "System has stopped working again after a recent visit."}

What you'd check: the facts are right, so the priority rules make it P1. But "breakdown" is arguably wrong. A fault recurring days after a visit is a callback on the firm's own work, which this firm treats as a complaint risk. The fix was a new rule in the prompt: "if the customer says an engineer visited recently and the problem has returned, add the fact 'repeat visit'", with a matching rule sending repeat visits to the office manager's view. The "other_issues" field did its job: the invoice request was copied into a separate P3 task, instead of being lost inside an emergency.

Shadow mode: two weeks of suggestions before any routing

Don't let the classifier move tickets on day one. For two weeks, have it write its tag, facts and confidence into a note or a custom field while people carry on triaging as normal. Then compare. A simple agreement table from the HVAC installer's shadow fortnight (illustrative):

TagTicketsAI matched the personMost common disagreement
Breakdown9486Recalls after a recent visit (person chose complaint)
Service booking6159Customer booking a service because of a fault
Job status4846None significant
Warranty or plan claim2215Plan mentioned in the signature, not the request
Invoice or payment3029None significant
Complaint96Polite complaints tagged as questions

Overall agreement was 241 of 264, about 91%. Just as useful are the disagreements, because each one is a definition problem: the plan-in-the-signature issue was fixed with a sentence telling the AI to ignore email signatures, and polite complaints were caught by adding "disappointed", "not happy" and "expected better" to the complaint definition as examples. The people weren't always right, either. In four of the disagreements the AI's tag was better, which is worth telling the team so they see it as a colleague rather than a threat.

Move to live routing when agreement is above about 90% and no P1 request was missed in the fortnight. A missed P1 is the only error that should stop the rollout outright.

The HVAC installer's numbers before and after

Before triage, the office manager spent the first 50 minutes of each day reading about 30 overnight requests and assigning them, and requests arriving mid-morning waited for someone to notice. Breakdowns reported by email at 7am were sometimes not seen until 9.30.

After, the classifier tags and prioritises each request within a minute of arrival, P1s trigger a text to the on-call engineer's phone, and the morning job is a ten-minute review of the "low confidence" view, typically three to five requests a day.

The cost sums are worth doing before building. The firm receives about 650 requests a month. With Zapier, each one uses the AI step (1, 3 or 5 tasks depending on the model tier chosen, or 1 with your own API key) plus one task to update the ticket. At two tasks each, that's 1,300 tasks a month, which outgrows Professional's base 750 and points to the Team plan (from $69 a month billed annually for 2,000 tasks) or a larger Professional task tier. With their own API key and a small model, the model cost is trivial: at gpt-5-nano's $0.05 per million input tokens and $0.40 per million output, 650 requests of about 500 words in and 60 words out costs a few cents a month. The automation platform, not the AI, is the real bill.

Routing once each ticket is tagged

Classification alone saves little; the value comes from what happens next. Three routing rules did most of the work for the HVAC installer:

  1. P1 goes to a phone, not a queue. An SMS or push alert to whoever is on call, with the customer's number and the first two lines of the request. The ticket also appears at the top of the service desk view.
  2. Each queue gets its own view, sorted by priority then age. Scheduling sees only bookings and job-status requests; accounts sees only invoices. People stop scrolling past other people's work.
  3. Response timers by priority. Most help desks let you set service-level targets per priority. A P2 still open after four working hours turns red. This is what turns "priority" from a label into a behaviour.

If you don't have a help desk yet and requests arrive in a shared inbox, the same classifier can apply labels and forward urgent ones; AI triage for shared inboxes covers that version. If you're choosing a help desk partly for its triage, compare the options in Freshdesk vs Zendesk for a small team using AI.

Requests that confuse triage, and what to do with them

  • Two requests in one message. The emergency plus the invoice question above. The "other_issues" field catches the second one; without it, the invoice request disappears.
  • Replies on old threads. A customer replies to last year's quote email to report a breakdown. Some setups classify the whole thread, so the quote history drowns out the new fault. Classify the latest message only.
  • Third parties. A letting agent reports a tenant's broken system, or a daughter writes about her father's boiler. The requester isn't the customer. Add a fact for "reported on behalf of someone" so the ticket gets linked to the right account.
  • The shouty subject line. "URGENT!!!" with a request to move a service date. Because priority comes from facts, not capitals, this correctly lands as P3. Explain that to staff, who may be tempted to override it.
  • Other languages. The classifier may read them perfectly well but mark confidence low; that's the right behaviour until you've tested it. Routing multilingual requests is covered in multilingual customer support with AI translation.
  • Automated emails. Delivery notifications, payment-processor alerts and out-of-office replies. Filter them out before the AI step so they don't use tasks.

The same method in a surveying firm and a locksmith

A six-person surveying firm receives far fewer requests, perhaps 60 a week, but their mix is different: report queries from buyers, booking changes, requests from lenders or solicitors, fee questions and the occasional complaint about a report's findings. Speed matters less than getting the report query to the surveyor who wrote the report. Their classifier's most useful output wasn't priority but an extracted entity: the property address or job reference, used to route the request straight to that surveyor's queue.

A two-van locksmith needs almost none of this. Its written requests are few, and the only triage question that matters is "is someone locked out or unable to secure a property right now?". A single rule that detects those phrases and sends an alert, with everything else waiting for the evening, is the whole system. Building eight tags there would be effort for its own sake.

Keeping triage accurate after launch

Categories drift as the business changes. Once a week, check three numbers from the help desk, then act on the one that moved:

  • Override rate: how often a person changed the AI's tag or priority. Rising overrides usually mean a new kind of request has appeared that no definition covers.
  • Missed P1s: any urgent request that wasn't flagged. Target zero; review every one, and add its wording to the rule.
  • Low-confidence share: if it climbs past about 10% of requests, the categories need revisiting.

Once tags are reliable, they become a byproduct worth having: a month of tagged tickets shows exactly which questions keep coming, which is the raw material for turning support tickets into help-centre articles.

AI ticket triage: questions from small teams

How many support requests do I need before AI triage is worth it?

Roughly 100 or more a week, or any volume where one urgent request sitting unseen for hours causes real damage. Below that, a person reading the queue twice a day is usually quicker than building and checking an automation. Emergency detection is the exception: even a small firm can justify a rule that spots urgent requests and alerts someone immediately.

Can AI triage work without any past tickets to learn from?

Yes, if you use a general language model with written category definitions, which works from the first ticket. Some built-in help-desk features learn from your history instead; Freshdesk, for example, recommends at least 2,000 past tickets for its Auto Triage to be accurate. With little history, the written-definition approach is usually the better starting point.

Should the AI also reply to the tickets it sorts?

Keep the two jobs separate at first. Sorting mistakes are cheap to fix because a person sees the ticket anyway; reply mistakes reach the customer. Once triage has been accurate for a couple of months, you can let AI draft replies for the simplest categories, with a person approving each one before it's sent.

Further reads

Sources: Freshdesk support articles on Auto Triage; Zendesk help on intelligent triage; Freshdesk and Zendesk pricing pages; Zapier task and AI step documentation; OpenAI API pricing.

Want your support queue sorted before you open it?

On a 1:1 call we'll design your tags and priority rules from a sample of real tickets, decide between your help desk's own triage and a simple automation, and set up the shadow test.

Book a 1:1 call with me