ticket-routing changedabout-claude/use-case-guides/ticket-routing
Nearest release: v2.1.307, published an hour after this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Recorded here
Lines+43added
Lines−43removed
From line
1
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits10to this page, all time
The whole hunk
from line 1, old and new numbered
/
from line 1
11---
22title: Ticket routing
33url: https://platform.claude.com/docs/en/about-claude/use-case-guides/ticket-routing
4description: This guide walks through how to harness Claude's advanced natural language understanding capabilities to classify customer support tickets at scale based on customer intent, urgency, prioritization, customer profile, and more.
4description: This guide walks through how to use Claude's advanced natural language understanding capabilities to classify customer support tickets at scale based on customer intent, urgency, prioritization, customer profile, and more.
55---
66
77## Prerequisites
from line 12
1212
1313## Define whether to use Claude for ticket routing
1414
15Here are some key indicators that you should use an LLM like Claude instead of traditional ML approaches for your classification task:
15Here are some key indicators that you should use an LLM such as Claude instead of traditional ML approaches for your classification task:
1616
1717<AccordionGroup>
1818 <Accordion title="You have limited labeled training data available">
from line 31
3131 Traditional ML approaches often rely on bag-of-words models or simple pattern matching. Claude excels at understanding and applying underlying rules when classes are defined by conditions rather than examples.
3232 </Accordion>
3333
34 <Accordion title="You require interpretable reasoning for classification decisions">
34 <Accordion title="You need interpretable reasoning for classification decisions">
3535 Many traditional ML models provide little insight into their decision-making process. Claude can provide human-readable explanations for its classification decisions, building trust in the automation system and facilitating easy adaptation if needed.
3636 </Accordion>
3737
from line 52
5252
5353Before you automate, it's crucial to understand your existing ticketing system. Start by investigating how your support team currently handles ticket routing.
5454
55Consider questions like:
55Consider questions such as:
5656
5757* What criteria are used to determine what SLA/service offering is applied?
5858* Is ticket routing used to determine which tier of support or product specialist a ticket goes to?
from line 149
149149 </Accordion>
150150</AccordionGroup>
151151
152In addition to intent, ticket routing and prioritization may also be influenced by other factors such as urgency, customer type, SLAs, or language. Be sure to consider other routing criteria when building your automated routing system.
152In addition to intent, ticket routing and prioritization might also be influenced by other factors such as urgency, customer type, SLAs, or language. Be sure to consider other routing criteria when building your automated routing system.
153153
154154### Establish success criteria
155155
from line 159
159159
160160<AccordionGroup>
161161 <Accordion title="Classification consistency">
162 This metric assesses how consistently Claude classifies similar tickets over time. It's crucial for maintaining routing reliability. Measure this by periodically testing the model with a set of standardized inputs and aiming for a consistency rate of 95% or higher.
162 This metric assesses how consistently Claude classifies similar tickets over time. It's crucial for maintaining routing reliability. Measure this by periodically testing the model with a set of standardized inputs and aiming for a consistency rate of 95 percent or higher.
163163 </Accordion>
164164
165165 <Accordion title="Adaptation speed">
166 This measures how quickly Claude can adapt to new categories or changing ticket patterns. Test this by introducing new ticket types and measuring the time it takes for the model to achieve satisfactory accuracy (for example, >90%) on these new categories. Aim for adaptation within 50–100 sample tickets.
166 This measures how quickly Claude can adapt to new categories or changing ticket patterns. Test this by introducing new ticket types and measuring the time it takes for the model to achieve satisfactory accuracy (for example, more than 90 percent) on these new categories. Aim for adaptation within 50–100 sample tickets.
167167 </Accordion>
168168
169169 <Accordion title="Multilingual handling">
170 This assesses Claude's ability to accurately route tickets in multiple languages. Measure the routing accuracy across different languages, aiming for no more than a 5–10% drop in accuracy for non-primary languages.
170 This assesses Claude's ability to accurately route tickets in multiple languages. Measure the routing accuracy across different languages, aiming for no more than a 5–10 percent drop in accuracy for non-primary languages.
171171 </Accordion>
172172
173173 <Accordion title="Edge case handling">
174 This evaluates Claude's performance on unusual or complex tickets. Create a test set of edge cases and measure the routing accuracy, aiming for at least 80% accuracy on these challenging inputs.
174 This evaluates Claude's performance on unusual or complex tickets. Create a test set of edge cases and measure the routing accuracy, aiming for at least 80 percent accuracy on these challenging inputs.
175175 </Accordion>
176176
177177 <Accordion title="Bias mitigation">
178 This measures Claude's fairness in routing across different customer demographics. Regularly audit routing decisions for potential biases, aiming for consistent routing accuracy (within 2–3%) across all customer groups.
178 This measures Claude's fairness in routing across different customer demographics. Regularly audit routing decisions for potential biases, aiming for consistent routing accuracy (within 2–3 percent) across all customer groups.
179179 </Accordion>
180180
181181 <Accordion title="Prompt efficiency">
182 In situations where minimizing token count is crucial, this criteria assesses how well Claude performs with minimal context. Measure routing accuracy with varying amounts of context provided, aiming for 90%+ accuracy with just the ticket title and a brief description.
182 In situations where minimizing token count is crucial, this criterion assesses how well Claude performs with minimal context. Measure routing accuracy with varying amounts of context provided, aiming for at least 90 percent accuracy with just the ticket title and a brief description.
183183 </Accordion>
184184
185185 <Accordion title="Explainability score">
from line 187
187187 </Accordion>
188188</AccordionGroup>
189189
190Here are some common success criteria that may be useful regardless of whether an LLM is used:
190Here are some common success criteria that might be useful regardless of whether an LLM is used:
191191
192192<AccordionGroup>
193193 <Accordion title="Routing accuracy">
194 Routing accuracy measures how often tickets are correctly assigned to the appropriate team or individual on the first try. This is typically measured as a percentage of correctly routed tickets out of total tickets. Industry benchmarks often aim for 90–95% accuracy, though this can vary based on the complexity of the support structure.
194 Routing accuracy measures how often tickets are correctly assigned to the appropriate team or individual on the first try. This is typically measured as a percentage of correctly routed tickets out of total tickets. Industry benchmarks often aim for 90–95 percent accuracy, though this can vary based on the complexity of the support structure.
195195 </Accordion>
196196
197197 <Accordion title="Time-to-assignment">
from line 199
199199 </Accordion>
200200
201201 <Accordion title="Rerouting rate">
202 The rerouting rate indicates how often tickets need to be reassigned after initial routing. A lower rate suggests more accurate initial routing. Aim for a rerouting rate below 10%, with top-performing systems achieving rates as low as 5% or less.
202 The rerouting rate indicates how often tickets need to be reassigned after initial routing. A lower rate suggests more accurate initial routing. Aim for a rerouting rate below 10 percent, with top-performing systems achieving rates as low as 5 percent or less.
203203 </Accordion>
204204
205205 <Accordion title="First-contact resolution rate">
206 This measures the percentage of tickets resolved during the first interaction with the customer. Higher rates indicate efficient routing and well-prepared support teams. Industry benchmarks typically range from 70–75%, with top performers achieving rates of 80% or higher.
206 This measures the percentage of tickets resolved during the first interaction with the customer. Higher rates indicate efficient routing and well-prepared support teams. Industry benchmarks typically range from 70–75 percent, with top performers achieving rates of 80 percent or higher.
207207 </Accordion>
208208
209209 <Accordion title="Average handling time">
from line 211
211211 </Accordion>
212212
213213 <Accordion title="Customer satisfaction scores">
214 Often measured through post-interaction surveys, these scores reflect overall customer happiness with the support process. Effective routing contributes to higher satisfaction. Aim for CSAT scores of 90% or higher, with top performers often achieving 95%+ satisfaction rates.
214 Often measured through post-interaction surveys, these scores reflect overall customer happiness with the support process. Effective routing contributes to higher satisfaction. Aim for CSAT scores of 90 percent or higher, with top performers often achieving satisfaction rates of at least 95 percent.
215215 </Accordion>
216216
217217 <Accordion title="Escalation rate">
218 This measures how often tickets need to be escalated to higher tiers of support. Lower escalation rates often indicate more accurate initial routing. Strive for an escalation rate below 20%, with best-in-class systems achieving rates of 10% or less.
218 This measures how often tickets need to be escalated to higher tiers of support. Lower escalation rates often indicate more accurate initial routing. Strive for an escalation rate below 20 percent, with best-in-class systems achieving rates of 10 percent or less.
219219 </Accordion>
220220
221221 <Accordion title="Agent productivity">
222 This metric looks at how many tickets agents can handle effectively after implementing the routing solution. Improved routing should increase productivity. Measure this by tracking tickets resolved per agent per day or hour, aiming for a 10–20% improvement after implementing a new routing system.
222 This metric looks at how many tickets agents can handle effectively after implementing the routing solution. Improved routing should increase productivity. Measure this by tracking tickets resolved per agent per day or hour, aiming for a 10–20 percent improvement after implementing a new routing system.
223223 </Accordion>
224224
225225 <Accordion title="Self-service deflection rate">
226 This measures the percentage of potential tickets resolved through self-service options before entering the routing system. Higher rates indicate effective pre-routing triage. Aim for a deflection rate of 20–30%, with top performers achieving rates of 40% or higher.
226 This measures the percentage of potential tickets resolved through self-service options before entering the routing system. Higher rates indicate effective pre-routing triage. Aim for a deflection rate of 20–30 percent, with top performers achieving rates of 40 percent or higher.
227227 </Accordion>
228228
229229 <Accordion title="Cost per ticket">
230 This metric calculates the average cost to resolve each support ticket. Efficient routing should help reduce this cost over time. While benchmarks vary widely, many organizations aim to reduce cost per ticket by 10–15% after implementing an improved routing system.
230 This metric calculates the average cost to resolve each support ticket. Efficient routing should help reduce this cost over time. Although benchmarks vary widely, many organizations aim to reduce cost per ticket by 10–15 percent after implementing an improved routing system.
231231 </Accordion>
232232</AccordionGroup>
233233
234234### Choose the right Claude model
235235
236The choice of model depends on the trade-offs between cost, accuracy, and response time.
236The choice of model depends on the trade-offs among cost, accuracy, and response time.
237237
238Claude Haiku 5.5 (`claude-haiku-5-5`) suits ticket routing: it's the fastest and most cost-effective current model, and at `low` effort it handles simple, high-volume requests such as classification. If your classification problem requires deep subject matter expertise or a large volume of intent categories, or complex reasoning, you may opt for the [larger Sonnet model](https://platform.claude.com/docs/en/models/overview).
238Claude Haiku 5.5 (`claude-haiku-5-5`) suits ticket routing: it's the fastest and most cost-effective current model, and at `low` effort it handles simple, high-volume requests such as classification. If your classification problem requires deep subject matter expertise, a large volume of intent categories, or complex reasoning, you may opt for the [larger Sonnet model](https://platform.claude.com/docs/en/models/overview).
239239
240240### Build a strong prompt
241241
from line 689
689689
690690It’s hard to know how well your prompt works without deploying it in a test production setting and [running evaluations](https://platform.claude.com/docs/en/test-and-evaluate/develop-tests).
691691
692Build the deployment structure. Start by defining the method signature for wrapping the call to Claude. Extend the method you began writing earlier, which takes `ticket_contents` (typescript, csharp, go, java: `ticketContents`; php: `$ticketContents`) as input, so that it now returns the reasoning and the intent as output. If you have an existing automation using traditional ML, you'll want to follow that method signature instead.
692Build the deployment structure. Start by defining the function signature for wrapping the call to Claude. Extend the function you started writing earlier, which takes `ticket_contents` (typescript, csharp, go, java: `ticketContents`; php: `$ticketContents`) as input, so that it now returns the reasoning and the intent as output. If you have an existing automation using traditional ML, you'll want to follow that method signature instead.
693693
694694<CodeGroup exclude="shell">
695695 <CodeGroupItem language="cURL">
from line 1028
10281028
10291029### Build an evaluation function
10301030
1031The example evaluation for this guide measures Claude’s performance along three key metrics:
1031The example evaluation for this guide measures Claude’s performance along two key metrics:
10321032
10331033* Accuracy
10341034* Cost per classification
10351035
1036You may need to assess Claude on other axes depending on what factors that are important to you.
1036You may need to assess Claude on other axes depending on which factors are important to you.
10371037
1038To assess this, first modify the script to add a function that compares the predicted intent with the actual intent and calculates the percentage of correct predictions. Then add cost calculation and time measurement functionality.
1038To assess this, first modify the script so that it compares the predicted intent with the actual intent. Then have it return the API call's token usage, from which you can calculate cost.
10391039
10401040<CodeGroup exclude="shell">
10411041 <CodeGroupItem language="cURL">
from line 1397
13971397
13981398Here is a breakdown of the edits:
13991399
1400* The `classify_support_request` (typescript, go, java, php: `classifySupportRequest`; csharp: `ClassifySupportRequest`) method now takes the `actual_intent` (typescript, csharp, go, java: `actualIntent`; php: `$actualIntent`) from the test cases and compares it against Claude’s intent classification to assess whether they match.
1401* The method extracts usage statistics for the API call to calculate cost based on input and output tokens used.
1400* The `classify_support_request` (typescript, go, java, php: `classifySupportRequest`; csharp: `ClassifySupportRequest`) function now takes the `actual_intent` (typescript, csharp, go, java: `actualIntent`; php: `$actualIntent`) from the test cases and compares it against Claude’s intent classification to assess whether they match.
1401* The function extracts usage statistics for the API call to calculate cost based on input and output tokens used.
14021402
14031403### Run your evaluation
14041404
1405A proper evaluation requires clear thresholds and benchmarks to determine what is a good result. The preceding script returns the runtime values for accuracy, response time, and cost per classification, but you still need clearly established thresholds. For example:
1405A proper evaluation requires clear thresholds and benchmarks to determine what is a good result. The preceding script returns the values you need to measure accuracy and cost per classification, but you still need clearly established thresholds. For example:
14061406
14071407* **Accuracy:** 95% (out of 100 tests)
14081408* **Cost per classification:** 50% reduction on average (across 100 tests) from current routing method
14091409
1410Having these thresholds allows you to quickly and easily tell at scale, and with impartial empiricism, what method is best for you and what changes might need to be made to better fit your requirements.
1410Having these thresholds allows you to tell at scale, and with impartial empiricism, what method is best for you and what changes might need to be made to better fit your requirements.
14111411
14121412***
14131413
14141414## Improve performance
14151415
1416In complex scenarios, it may be helpful to consider additional strategies to improve performance beyond standard [prompt engineering techniques](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/overview) & [guardrail implementation strategies](https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/reduce-hallucinations). Here are some common scenarios:
1416In complex scenarios, it might be helpful to consider additional strategies to improve performance beyond standard [prompt engineering techniques](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/overview) and [guardrail implementation strategies](https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/reduce-hallucinations). Here are some common scenarios:
14171417
14181418### Use a taxonomic hierarchy for cases with 20+ intent categories
14191419
from line 1420
14201420As the number of classes grows, the number of examples required also expands, potentially making the prompt unwieldy. As an alternative, you can consider implementing a hierarchical classification system using a mixture of classifiers.
14211421
142214221. Organize your intents in a taxonomic tree structure.
14232. Create a series of classifiers at every level of the tree, enabling a cascading routing approach.
14232. Create a series of classifiers at every level of the tree to make a cascading routing approach possible.
14241424
14251425For example, you might have a top-level classifier that broadly categorizes tickets into "Technical Issues," "Billing Questions," and "General Inquiries." Each of these categories can then have its own sub-classifier to further refine the classification.
14261426
from line 1454
14541454
14551455* **Pros - greater nuance and accuracy:** You can create different prompts for each parent path, allowing for more targeted and context-specific classification. This can lead to improved accuracy and more nuanced handling of customer requests.
14561456
1457* **Cons - increased latency:** Be advised that multiple classifiers can lead to increased latency, and Anthropic recommends implementing this approach with the fastest model, Haiku.
1457* **Cons - increased latency:** Multiple classifiers can lead to increased latency, and Anthropic recommends implementing this approach with the fastest model, Haiku.
14581458
14591459### Use vector databases and similarity search retrieval to handle highly variable tickets
14601460
from line 1462
14621462
14631463In this scenario, you could employ a vector database to do similarity searches from a dataset of examples and retrieve the most relevant examples for a given query.
14641464
1465This approach, outlined in detail in the [classification recipe](https://platform.claude.com/cookbook/capabilities-classification-guide), has been shown to improve performance from 71% accuracy to 93% accuracy.
1465This approach, outlined in detail in the [classification recipe](https://platform.claude.com/cookbook/capabilities-classification-guide), has been shown to improve performance from 71 percent accuracy to 93 percent accuracy.
14661466
14671467### Account specifically for expected edge cases
14681468
1469Here are some scenarios where Claude may misclassify tickets (there may be others that are unique to your situation). In these scenarios, consider providing explicit instructions or examples in the prompt of how Claude should handle the edge case:
1469Here are some scenarios where Claude might misclassify tickets (there might be others that are unique to your situation). In these scenarios, consider providing explicit instructions or examples in the prompt of how Claude should handle the edge case:
14701470
14711471<AccordionGroup>
14721472 <Accordion title="Customers make implicit requests">
1473 Customers often express needs indirectly. For example, "I've been waiting for my package for over two weeks now" may be an indirect request for order status.
1473 Customers often express needs indirectly. For example, "I've been waiting for my package for over two weeks now" might be an indirect request for order status.
14741474
14751475 * **Solution:** Provide Claude with some real customer examples of these kinds of requests, along with what the underlying intent is. You can get even better results if you include a classification rationale for particularly nuanced ticket intents, so that Claude can better generalize the logic to other tickets.
14761476 </Accordion>
14771477
14781478 <Accordion title="Claude prioritizes emotion over intent">
1479 When customers express dissatisfaction, Claude may prioritize addressing the emotion over solving the underlying problem.
1479 When customers express dissatisfaction, Claude might prioritize addressing the emotion over solving the underlying problem.
14801480
14811481 * **Solution:** Provide Claude with directions on when to prioritize customer sentiment or not. It can be something as simple as “Ignore all customer emotions. Focus only on analyzing the intent of the customer’s request and what information the customer might be asking for.”
14821482 </Accordion>
14831483
14841484 <Accordion title="Multiple issues cause issue prioritization confusion">
1485 When customers present multiple issues in a single interaction, Claude may have difficulty identifying the primary concern.
1485 When customers present multiple issues in a single interaction, Claude might have difficulty identifying the primary concern.
14861486
14871487 * **Solution:** Clarify the prioritization of intents so that Claude can better rank the extracted intents and identify the primary concern.
14881488 </Accordion>
from line 1504
15041504***
15051505
15061506<CardGroup cols={2}>
1507 <Card title="Classification cookbook" icon="link" href="https://platform.claude.com/cookbook/capabilities-classification-guide">
1508 Visit the classification cookbook for more example code and detailed eval guidance.
1507 <Card title="Classification recipe" icon="link" href="https://platform.claude.com/cookbook/capabilities-classification-guide">
1508 Visit the classification recipe for more example code and detailed eval guidance.
15091509 </Card>
15101510
15111511 <Card title="Claude Console" icon="link" href="https://platform.claude.com/dashboard">
1512 Begin building and evaluating your workflow on the Claude Console.
1512 Start building and evaluating your workflow on the Claude Console.
15131513 </Card>
15141514</CardGroup>
15151515
No line in this hunk matches that.