Ticket categorization in Serval: AI inference, categories, and automated routing
How Serval classifies tickets
When a ticket comes in, Serval reads it and assigns a category based on the content. No dropdowns. No forms before submission. The employee describes what they need in natural language, and Serval figures out what kind of request it is.
How categorization is used depends on how the ticket's source channel is configured:
Channel without a team specified — Serval first routes the ticket to the right team using automations, then assigns it within that team. Category drives both steps.
Channel with a team specified — The team is already known, so Serval skips team routing and goes straight to assignment within that team.
In both cases, the category (along with conditions like schedule and priority) determines who gets assigned. The rules that act on it are scoped to the relevant team.
Setting up categories
Categories live in Team Settings → Categories. Each needs a name and a description.
The description is what the AI uses to classify tickets. Specific descriptions with concrete examples outperform vague ones.
Example categories:
Category | Description |
Password reset requests | Password resets, account lockouts, credential recovery, MFA resets |
Access requests | Requests to gain access to applications, systems, databases, or file shares |
Device issues | Laptop problems, peripheral malfunctions, hardware troubleshooting, equipment repairs |
Onboarding | New hire setup, first-day IT tasks, account provisioning for new employees |
Software installation | Installing, updating, or troubleshooting software on company-managed devices |
To add a category:
Go to Team Settings → Categories
Click New Category
Enter a name and a specific description
Writing descriptions that produce accurate matches
Include keywords and synonyms employees are likely to use. Distinguish each category from adjacent ones. Describe what's in scope, and when helpful, what's out.
Weak: "IT problems"
Better: "Requests to install, update, or troubleshoot software on company-managed devices. Includes requests for tools not yet installed, version updates, license activation errors, or software behaving unexpectedly."
Keep categories disjoint. If two categories overlap, tickets will land inconsistently. "Hardware requests" and "Device issues" will compete for the same tickets: pick one, or define clear boundaries in each description.
Step 1: Routing tickets to the right team (when no team is specified)
When a ticket arrives on a channel that isn't tied to a specific team, Serval's automations determine which team it belongs to before anyone is assigned. Assignment rules evaluate the ticket's category, priority, schedule, and other conditions to make this determination.
If the channel already has a team configured, this step is skipped — the ticket goes directly to within-team assignment.
Schedules are a key condition here. A schedule tells Serval what counts as business hours, after hours, or on-call coverage for a given team. By combining category and schedule conditions, you can send the same category of ticket to different teams depending on when it arrives.
Example team-routing rules:
Conditions | Action |
Category = Access requests + Priority = High | Route to Security team |
Category = Device issues + Schedule = After hours | Route to on-call group |
Category = Onboarding + Schedule = Business hours | Route to IT onboarding team |
Category = Password reset | Route to Level 1 support |
To configure a schedule:
Go to Team Settings → Schedules
Define your coverage windows (days, hours, time zone)
Reference the schedule as a condition in your assignment rules
Serval evaluates rules in order and applies the first match. If no rules match, the ticket falls back to the team's default assignment.
Step 2: Assignment within the team
Once a ticket is on the right team, assignment rules within that team determine who gets it. These rules follow the same structure — category, priority, schedule, and other conditions — but now the actions are individual assignees or sub-groups rather than teams.
Example within-team assignment rules:
Conditions | Action |
Category = Password reset | Assign to Level 1 agent |
Category = Access requests + Priority = High | Assign to security specialist |
Category = Onboarding + Schedule = Business hours | Assign to onboarding specialist |
Category = Device issues + Schedule = After hours | Assign to on-call agent |
You can combine multiple conditions in one rule. All conditions must match for the rule to fire. Every assignment event is logged in the ticket activity feed.
Category-driven automation
Event-triggered workflows can fire automatically when a ticket is created or updated. Combine this with category filtering to build category-driven automation.
Examples:
When a ticket is categorized as an access request, automatically run an intake workflow to gather the application, access level, and justification before routing to the approver
When a ticket is categorized as an incident, link it to any open incident record and notify the requester that a related issue is being worked
When a ticket matches a known, fully automatable request type, run the workflow that resolves it end to end and close the ticket without IT involvement
Setup:
Create an event-triggered workflow (trigger: Ticket created)
Add a condition to filter by category or content
Define the action
Publish
Once live, it runs automatically for every ticket that matches.
What's captured on the ticket
When Serval infers a category, it's visible in two places: the side panel on the ticket page, and the activity feed, where the inference event is logged with a timestamp. This gives you a record of when and how every ticket was classified.
As your team gathers information conversationally through the Help Desk Agent, that context is attached to the ticket: the system involved, the access level requested, the error described. Agents receive structured context before they touch the ticket.
Categorization-driven analytics
Consistent categorization makes ticket data queryable. Because every ticket has a category, you can filter and trend by:
Category
Assignee
SLA status
Channel source
Automation rate
Track which request types are growing, which have the longest resolution times, and which are the strongest candidates for full automation.
Reviewing and improving categories
Periodically check whether tickets are landing in the right categories. Adjust descriptions or split categories as request patterns evolve. Refinement is usually enough to fix mismatches: you don't need to rebuild from scratch.
Watch for:
Categories almost never used (description may be too narrow, or the category is redundant)
Categories catching unrelated tickets (description may be too broad)
High-volume categories that could be split for more precise routing