Product

Resources

Case Studies

Careers

Log In

Book a demo
Book a demo

Log In

Log in

Book a demo

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:

  1. Go to Team Settings → Categories

  2. Click New Category

  3. 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:
  1. Go to Team Settings → Schedules

  2. Define your coverage windows (days, hours, time zone)

  3. 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:

  1. Create an event-triggered workflow (trigger: Ticket created)

  2. Add a condition to filter by category or content

  3. Define the action

  4. 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

What will you build?

Book a demo

What will you build?

Book a demo

What will you build?

Book a demo