How Assignment Rules Work
When a ticket is escalated from Serval AI to a human agent, the assignment process follows this order:- Category inference — Serval AI analyzes the ticket content and matches it against your configured categories
- Rule matching — If a matching category is found, the ticket is assigned to a random member of the mapped group
- Fallback — If no category matches, the ticket falls through to your “All Tickets” group (if configured) or remains unassigned
Category inference uses AI to read the ticket’s messages and determine which category best fits. Writing clear, descriptive category names and descriptions improves inference accuracy.
Setting Up Assignment Rules
Step 1: Create Categories
Categories represent the types of requests your team handles. You define these based on the topics, workflows, or areas of expertise that are relevant to your team.Create your categories
Click New Category and give it a name and description. The description helps Serval’s AI accurately match tickets, so be specific about what kinds of requests belong in each category.Here are some examples of useful categories:
| Category | Description |
|---|---|
| Billing and Finance | Questions about invoices, payments, refunds, pricing, or subscription changes |
| Account Access | Password resets, login issues, MFA setup, permission requests |
| Hardware & Equipment | Laptop issues, monitor requests, peripheral problems, equipment returns |
| Software Requests | New software licenses, installation help, SaaS access requests |
| Onboarding | New hire setup, orientation questions, first-day logistics |
| Office & Facilities | Office access, desk reservations, building maintenance, parking |
Step 2: Create Assignment Rules
Once you have categories, map each one to the group that should handle those tickets.
Step 3: Cover All Your Tickets
Since tickets that don’t match any category remain unassigned, make sure you have broad enough category coverage. Create a general catch-all category (like “General Requests” or “Other”) mapped to a group so that tickets which don’t fit neatly into a specific category still get assigned. Alternatively, if your team doesn’t need category-based routing, you can skip categories entirely and set an “All Tickets” group from the assignment settings page. This group receives all escalated tickets regardless of content.Category rules and the “All Tickets” group are mutually exclusive. Adding your first category rule removes any existing “All Tickets” group. If you want catch-all coverage with category rules, create a broad category instead.
Managing Categories
Editing Categories
Category names and descriptions auto-save as you type. Update descriptions to improve AI categorization accuracy — the more specific the description, the better Serval can match incoming tickets.Deleting Categories
When you delete a category, any assignment rules that reference it are also removed. You’ll see a confirmation warning before the deletion goes through.Managing Rules
Updating a Rule
To change which group handles a category, click the group selector on the rule and choose a different group. Changes save automatically.Deleting a Rule
Click the X button next to a rule to remove it. Tickets matching that category will fall through to your next matching rule or the catch-all group.Multiple Mappings
A category can be mapped to multiple groups. When this happens, all members across those groups are combined into a single pool, and tickets are assigned randomly from that pool.How Members Are Selected Within a Group
When a ticket is assigned to a group, Serval randomly selects one member from that group. Every member has an equal chance of being selected for each ticket. If a category is mapped to multiple groups, all members across those groups are combined into a single pool before the random selection happens.Assignment Priority
When a ticket is escalated, assignment is determined in this order:- Guidance-based assignment — If a Guidance document specifies a user for this type of request, that user is assigned (highest priority)
- Category-based rules — Serval infers the ticket’s category and assigns to the mapped group
- “All Tickets” group — If no category rules exist, the configured “All Tickets” group is used
- Unassigned — If none of the above match, the ticket remains unassigned until manually claimed
Guidance-based assignment always takes priority. If you have both guidance documents and assignment rules, guidance wins when it specifies an assignee.
Best Practices
Always configure a catch-all
Include a broad category like “General Requests” so every ticket gets assigned, even if it doesn’t fit neatly into a specific category. Unassigned tickets can easily slip through the cracks.
Write descriptive categories
Include specific keywords and examples in your category descriptions. This helps the AI accurately infer the right category from ticket content.
Match categories to expertise
Map categories to groups whose members have the right skills. For example, route billing questions to your finance-savvy team members and hardware issues to your IT ops group.
Review and iterate
Periodically check whether tickets are landing in the right categories. Adjust category descriptions or add new categories as your team’s request patterns evolve.
Common Questions
What happens if a ticket doesn't match any category?
What happens if a ticket doesn't match any category?
If Serval can’t confidently match a ticket to one of your categories, the ticket remains unassigned. This is why you should include a broad catch-all category mapped to a group.
How does Serval determine the category?
How does Serval determine the category?
Serval uses AI to analyze the ticket’s messages and compare them against your category names and descriptions. The more specific and descriptive your categories are, the more accurate the matching will be.
Can I use both category rules and an 'All Tickets' group?
Can I use both category rules and an 'All Tickets' group?
No — they are mutually exclusive. Adding your first category rule removes any existing “All Tickets” group. To catch tickets that don’t match a specific category, create a broadly defined category (like “General Requests”) mapped to a group.
How are tickets assigned within a group?
How are tickets assigned within a group?
Tickets are assigned randomly to a member of the matched group. All members of the group have an equal chance of receiving the ticket.
Can I assign to individual users instead of groups?
Can I assign to individual users instead of groups?
Assignment rules map categories to groups. For user-specific assignment, use Guidance documents to instruct Serval to assign certain types of tickets to specific people.
What if I delete a category that has rules?
What if I delete a category that has rules?
Deleting a category also removes any assignment rules that reference it. You’ll see a warning before confirming. Make sure another category or your catch-all covers those tickets afterward.

