STAYCHARTED BLOG · ZENDESK · TICKET ROUTING
Zendesk ticket classification with AI trained on your own solved tickets
Compare triggers, intelligent triage and models trained on solved tickets for Zendesk ticket classification. Route by category and group with human review.
Three ways to classify Zendesk tickets
| Triggers (keyword rules) | Intelligent triage (Zendesk AI) | A model trained on your solved tickets | |
|---|---|---|---|
| How it decides | Conditions you write, such as "subject contains refund" | Zendesk's AI picks a topic, sentiment and language | Learns from tickets your team already categorized and routed |
| Your categories | Any, if you can write a rule for each | Prebuilt topics, plus custom topics defined by a name and a description | Exactly the ones in your history: groups, categories, priorities, custom fields |
| Needs | Any Zendesk plan | Suite or Support Professional or higher; workflows need the Copilot add-on | A few hundred solved tickets with the answers filled in |
| How sure it is | Not applicable | — | A confidence on every answer, tested on tickets it never saw |
| Best when | A few clear, stable rules | The prebuilt topics match how you route | Routing follows your own conventions |
None of these is wrong. Most teams use triggers whatever else they add, because triggers are what actually set the group and priority in Zendesk.
Triggers and keywords: fine for a few clear rules
Zendesk triggers check conditions when a ticket is created or updated and then act: set a group, add a tag, change the priority. For a handful of clear cases, they're the right tool. "If the ticket comes in through the VIP address, set priority to High" is a straightforward rule when that matches your policy.
They struggle when the rule depends on what the customer means:
- "Charged twice", "double billed" and "two payments came out" are the same problem, and a rule needs all three wordings, plus the ones you haven't seen yet.
- Rules pile up. At a few hundred, nobody knows which one fired.
- Rules don't tell you how often they're right.
Zendesk's intelligent triage: try it first if your topics are standard
Zendesk's own AI, intelligent triage, classifies new tickets by topic (previously called intent for some Copilot customers), sentiment, language and entities such as product names. Classifications are available on Suite or Support Professional plans and above. Using them in workflows, for example to route by topic, needs the Copilot add-on.
You can add custom topics for gaps in the prebuilt list. Each one is defined by a name and a description of up to 650 characters, written "as if briefing a new agent", and an account can have up to 500.
When it's enough: you're already on a plan with Copilot, and Zendesk's prebuilt topics are close to how your team routes (refund requests, order status, password resets). It works inside the agent workspace, with nothing else to connect.
Where a trained model helps: when your routing is a convention only your team's history shows. "Billing questions from wholesale accounts go to Accounts Receivable, not Billing." "Bug reports about the mobile app go to Tier 2 Mobile." A description can say some of this. Your solved tickets say all of it, thousands of times, including the edge cases nobody wrote down.
We measured how much examples matter on a similar problem. On BANKING77, 13,083 real customer-service messages sorted into 77 overlapping categories, a general AI given a one-line definition of each category got 84.7% of 3,080 unseen messages right. A model trained on the team's labeled examples got 93.7%: fewer than half the mistakes. That test was of Claude, not of Zendesk's AI, which we haven't tested. The lesson is about definitions versus examples. Read the benchmark →
A model trained on your solved tickets
The idea is simple. Every solved ticket is a question with its answer:
| Ticket text | What your team decided |
|---|---|
| "I was charged twice this month" | Category: Billing · Group: Billing · Priority: Normal |
| "The app crashes when I upload a photo" | Category: Bug report · Group: Tier 2 Mobile · Priority: High |
| "Can I add a second admin?" | Category: How do I · Group: Support · Priority: Low |
Train on a few hundred to a few thousand of these, and the model suggests all three for each new ticket, with one confidence for the whole answer. Then:
- Confident answers add a tag, or set the fields, through your usual triggers.
- Unsure answers go to a person, as today, and wait in a review queue where a team member confirms or corrects them.
- Every correction becomes a training example for the next version, so the model keeps up when you add a group or rename a category.
Before anything touches a live ticket, the model is tested on solved tickets it never trained on, and you see how often it's right for each category.
Step by step: Zendesk ticket classification without code
1. Export your solved tickets
You need the text customers wrote and the final answers your team gave.
- Zendesk's CSV export leaves out the ticket description and comments, so it isn't enough on its own. The JSON export includes comments, and the first comment is the description. Account exports are on Support Professional or Enterprise, or Suite Growth and above. The account owner asks Zendesk Support to turn them on.
- On any plan, the Zendesk API exports tickets with their comments; a colleague familiar with the API can prepare the export.
- Take 6 to 12 months of solved tickets from the queues you want to automate. Keep the subject, the description, and anything known when the ticket arrived (channel, brand, customer type).
- Keep the final group, category and priority. The first group a ticket went to is often the mistake you want to avoid.
- Leave out anything written later, such as agent replies and satisfaction scores. They make the test look great and the model useless on new tickets.
2. Train and read the report
Prepare one row per ticket in a spreadsheet: subject, first customer description, fields known at arrival, and reviewed answers. Do not upload a raw comments archive without preparing those columns. Upload that table to StayCharted AI Model Trainer (CSV, Excel and JSON all work). Choose which columns the model reads and which it answers, and train. The report shows:
- accuracy overall and category by category;
- which categories it confuses (often two groups your team uses the same way);
- for each confidence cutoff, how many tickets would go to a person, and how many mistakes that would catch.
3. Connect it to new tickets
There's no StayCharted app in the Zendesk Marketplace. Zendesk talks to the model through an automation tool or the API.
With Zapier:
- Trigger: Zendesk → New Ticket.
- StayCharted → Classify Record: map the subject and description.
- A Filter continues only when Needs Review is false.
- Zendesk → Add Tag(s) to Ticket adds a tag such as
sc_billing.
A Zendesk trigger on that tag then sets the group and priority, so routing stays in Zendesk, where your admins can see it. Add Add Comment to Ticket with a private note if you want agents to see the suggestion and its confidence. Zendesk is a premium app in Zapier, so this needs a paid Zapier plan and Zendesk Team or above. Zapier guide →
With Make: the same flow, using Make's Zendesk modules and an HTTP module that calls the model. Make guide →
With your own code: Zendesk's own guidance is not to update tickets directly from a webhook. A small service or serverless function can instead receive the ticket, call StayCharted's REST API, and update the ticket through Zendesk's API. API reference →
4. Start with suggestions, then automate
For the first few weeks, add the suggestion as a private note or a tag, and let agents route as usual. Compare what they chose with what the model said. Once the confident answers are reliably right, let the tag drive the trigger.
How StayCharted helps
StayCharted AI Model Trainer turns your team's past decisions into a private model that makes the next ones, and shows how often it's right before you rely on it.
- Learns your routing, not a generic list. Train on your solved tickets' final category, group and priority. One model can answer all three at once.
- Checks your data first. Before training, it flags duplicates, categories with too few examples, and categories that look like the same thing, and finds email addresses and phone numbers so you can mask them.
- Tested before anyone relies on it. Every model is scored on tickets it never saw, category by category.
- Unsure tickets go to a person. Answers below your cutoff wait in the Review Queue, and corrections go into the next version.
- Works where you work. Connect it through Zapier, Make or the REST API. You can also fill a whole exported file at once, or ask the model from Claude and ChatGPT.
- No change to your Zendesk plan. It doesn't need Copilot or a higher Zendesk tier. The Zapier route needs Zendesk Team or above.
Not ready to export? Choose Start here in the app and pick the Support tickets (sample): 40 tickets already sorted into five categories (Account access, Billing, Bug report, Feature request, How do I). It shows the whole flow in a few minutes.
Common questions
Can Zendesk classify tickets automatically?
Yes. Triggers can set fields based on keywords and conditions on any plan, and intelligent triage classifies tickets by topic, sentiment and language on Suite or Support Professional and above. Routing by those classifications needs the Copilot add-on.
What's an alternative to Zendesk intelligent triage?
A model trained on your own solved tickets. Instead of describing each topic, you show it thousands of tickets your team has already routed, and it learns your categories, groups and priorities from them. StayCharted connects to Zendesk through Zapier, Make or its API.
How do I auto-tag Zendesk tickets with AI?
Send each new ticket's subject and description to the model, and add the answer as a tag when the model is confident. In Zapier, that's Zendesk "New Ticket", StayCharted "Classify Record", a Filter on Needs Review, then Zendesk "Add Tag(s) to Ticket". A Zendesk trigger on the tag can then set the group.
How many solved tickets do I need?
A few hundred can work. Aim for at least 20 per category, and more where two categories look alike. Six to twelve months of history is usually plenty.
Will it reassign or close tickets on its own?
No. It returns an answer and a confidence. Your Zendesk triggers decide what happens, and closing tickets stays with your agents.
What about personal information in tickets?
StayCharted only sees what you upload and the fields your automation sends. Before training, it finds email addresses and phone numbers so you can mask them. Your examples train only your workspace's models.
Which StayCharted plan do I need?
Training and testing work on every plan, Free included. The API, which Zapier, Make and your own code use, and the Review Queue are on Essentials and Business.