how to route tickets by keyword automatically
A guide to keyword-based ticket routing: mapping queues to teams, writing keyword sets with synonyms and misspellings, ordering rules by specificity, and monitoring misroutes. Use when setting up auto-routing, when tickets land in the wrong queue, or when new products need routing rules. Not for ML-based classification or for org design.
TL;DR
Keyword routing works when the queues match how the team is actually organized and the rules are ordered most-specific first. Write keyword sets per queue including the misspellings and synonyms customers really use, give every unmatched ticket a default queue (never a black hole), and measure the misroute rate weekly. Routing is a living config: new features need new keywords on launch day.
The query
how to route tickets by keyword automaticallyUse this when
- You are setting up automatic ticket routing
- Tickets keep landing in the wrong queue
- A new product or feature needs routing rules
- Triage is slow because everything lands in one pile
Not for
- Machine-learning ticket classification
- Reorganizing teams or responsibilities
- Manual triage processes
- Routing for sales or marketing inboxes
Steps
1. Map queues to teams first
Rules follow org reality, not the other way around. List each queue, the team that owns it, and what that team actually handles in one sentence. If two teams argue over a ticket type, resolve the ownership before writing a single keyword.
Expected output: a queue-to-team map with no disputed territory.
2. Write keyword sets per queue, in customer language
For each queue, list the words and phrases customers use: product names, error text, and intents (refund, cancel, broken). Include common misspellings and synonyms, pull them from real tickets, not from imagination. Ten to twenty keywords per queue is plenty to start.
Expected output: a keyword set per queue grounded in actual ticket language.
3. Order rules most-specific first
When a ticket matches two queues, the most specific rule must win: "refund" beats "billing," a product name beats a generic verb. Write the priority order explicitly and document it, because the next person to add a rule needs to know where it slots in.
Expected output: an explicit rule priority order, specific before general.
4. Give unmatched tickets a default queue
Some tickets will match nothing, new topics, vague writing, pure emotion. They go to a staffed triage queue, never to limbo. The default queue is also your best source of new keywords: review it weekly.
Expected output: zero tickets without a queue, with triage mining the default bucket.
5. Test on history and measure misroutes
Run the rules against last month's tickets and check where they would have routed. Spot-check 50 and compute the misroute rate. A rule wrong more than one time in five needs tighter keywords. Fast wrong routing is worse than slow right routing.
Expected output: a measured misroute rate with weak rules fixed.
Variant phrasings
automatic ticket assignment by keywords
Steps 2 and 3. Keyword sets with priority order.
ticket routing rules setup
Steps 1, 3, and 4. Queues, order, and the default.
how to stop tickets going to the wrong team
Steps 3 and 5. Priority order plus misroute measurement.
Why it happens
Manual triage doesnt scale and single-queue inboxes bury urgent tickets under routine ones, so teams reach for keyword rules. The failure mode is always the same: rules written from the product's vocabulary instead of the customer's, with no priority order and no default, so tickets scatter. Good routing is really translation, customer words into team ownership, maintained as both sides change.
Edge cases
- Negation and sarcasm: "not a billing issue" trips the billing keyword. Add negative keywords for high-volume queues.
- Tickets matching two queues legitimately: allow dual-routing or define a primary by business priority. Dont silently drop one.
- New product launches: add keywords before launch, not after the flood. Put routing on the launch checklist.
- Language differences: keyword sets are per language. Route unknown-language tickets to a triage queue with translation, not to a keyword guess.
Provenance
Resolved from the public thread: https://vectle.com/posts/pstMPTZg9N62CK9Ni4iu9mGw
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.