Ticket Routing
Ticket Routing automatically assigns incoming tickets to the right technician based on condition-driven rules. Rules evaluate when a ticket is created — including tickets opened manually, from inbound email, from the client portal, from the API, and from Level RMM alerts — so work lands with the correct person without manual triage.
Overview
The Ticket Routing tools let you:
- Build ordered rules that match tickets by source, category, client, priority, tag, or business hours
- Combine conditions with AND/OR logic, including nested condition groups
- Assign matching tickets to a specific user, a round-robin pool, the current on-call technician, or a technician with a matching skill
- Group technicians into weighted pools for round-robin distribution
- Tag technicians with skills for skill-based assignment
- Review a routing log of every automatic assignment decision
Navigate to Ticket Routing
Ticket Routing must be included in your plan. If your organization is not licensed for it, the Ticket Routing settings page and its navigation entry do not appear, and opening the page directly shows an upgrade prompt instead. Contact your account owner about upgrading if you do not see it.
Go to Admin → Ticket Routing (/settings/ticket-routing). The nav item appears for Owner and Admin users who have the ticket_routing_rules.read permission on a plan that includes the feature. Each tab reads from its own resource — rules use ticket_routing_rules, pools use ticket_routing_pools, skills use technician_skills, and the routing log uses ticket_routing_log — so the data you can view and the actions you can take depend on the matching permissions.
The page is organized into four tabs:
| Tab | What it manages |
|---|---|
| Rules | Ordered condition → action rules that assign tickets |
| Pools | Groups of technicians for round-robin assignment |
| Skills | Skills assigned to technicians for skill-based routing |
| Routing Log | A record of recent automatic assignment decisions |
How rules are evaluated
Rules are evaluated in order, top to bottom, and the first matching rule wins. Once a rule matches, its action runs and evaluation stops — later rules are not considered. If no enabled rule matches, the ticket is left unassigned (recorded in the log as a Fallback).
A rule with no conditions matches every ticket ("Always matches"), so it makes a useful catch-all when placed at the bottom of the list.
Rules tab
The Rules table shows each rule's order, name, a preview of its conditions, its actions, and an enabled/disabled toggle.
Create a rule
- Click Add Rule.
- Enter a Rule Name (for example, High priority → Senior tech).
- Leave Enabled on to activate the rule immediately, or switch it off to save a draft.
- Add one or more Conditions (see below).
- Add one or more Actions (see below).
- Click Create Rule.
To change a rule later, click the edit (pencil) icon; to remove it, click the trash icon and confirm.
Reorder rules
Because the first match wins, order matters. Use the up and down chevrons in the Order column to move a rule higher or lower in the evaluation sequence.
Enable or disable a rule
Click the toggle in the Status column to enable or disable a rule without deleting it. Disabled rules are skipped during evaluation and shown dimmed in the table.
Conditions
Each condition is built from a field, an operator, and a value. All field values are chosen from dropdowns — there are no free-text condition values.
Fields:
| Field | Matches against | Value options |
|---|---|---|
| Source | How the ticket was created | Manual, Email, Portal, Level Alert, API, Recurring, Split |
| Category | The ticket's category | Your organization's ticket categories |
| Client | The ticket's client | Your clients |
| Priority | The ticket's priority | Low, Medium, High, Critical |
| Tag | The ticket's tags | Your tags |
| Business Hours | Whether the ticket arrived inside or outside business hours | Inside business hours, Outside business hours |
Operators:
| Operator | Behavior |
|---|---|
| Equals | The field exactly matches the selected value |
| Not equals | The field does not match the selected value |
| In | The field matches any value in a selected list (multi-select) |
| Not in | The field matches none of the values in a selected list (multi-select) |
If a field has no values available yet (for example, you haven't created any tags), the value selector shows "No <field> available" — define the records first, then build the rule.
Combining conditions
When a rule has more than one condition, an AND / OR toggle appears next to the Conditions heading. This controls how the rule's top-level conditions (and any groups) are combined:
- AND — every condition must match.
- OR — at least one condition must match.
Condition groups
Click Add group to create a nested group of conditions with its own AND / OR operator. Groups let you express logic such as Priority is Critical AND (Source is Level Alert OR Source is Email). The rule's top-level operator combines the standalone conditions with each group, while each group's own operator combines the conditions inside it.
Actions
Actions determine where a matching ticket is assigned. Choose an action type, then pick its target where applicable:
| Action | What it does | Target |
|---|---|---|
| Assign to User | Assigns the ticket to a specific team member | Select a user |
| Assign to Pool | Assigns to the next technician in a round-robin pool | Select a pool |
| Assign to On-Call | Assigns to the technician currently on call | Resolved automatically from the on-call schedule |
| Assign by Skill | Assigns to a technician who has a matching skill | Matched from technician skills |
You can add multiple actions in the builder, but a matching rule runs its first action. Order your actions so the intended assignment is first.
Assign to On-Call relies on your on-call schedule, and Assign by Skill relies on the skills assigned to technicians. If no on-call technician or matching skilled technician can be resolved, the ticket is left unassigned for that rule.
Pools tab
Pools group technicians for round-robin assignment. Each pool tracks its current round-robin position so tickets are distributed evenly across members.
Create a pool
- Click Add Pool.
- Enter a Pool Name (for example, Tier 1 Support).
- Click Create.
Use the edit (pencil) icon to rename a pool, or the trash icon to delete it. Deleting a pool removes the pool and all its members; rules that reference the pool will need to be updated.
Add members and weights
- On a pool card, click the add member (person+) icon.
- Select a Member from your team.
- Set a Weight between 1 and 100 (default 1). Higher weight means more tickets are assigned to that member relative to others in the pool.
- Click Add Member.
Each member's weight is shown next to their name (for example, 2x). Remove a member with the person-minus icon. The pool card also shows the member count and the current round-robin position.
Skills tab
Skills enable skill-based routing through the Assign by Skill action. Skills are organized by technician.
Add a skill
- Click Add Skill.
- Select a Technician.
- Enter a Skill name (for example, Networking or Microsoft 365).
- Choose a Level from 1 – 5: Beginner, Junior, Intermediate, Advanced, or Expert.
- Click Add Skill.
Each technician's skills appear as badges showing the skill name and level (for example, Lv3). Remove a skill by clicking the trash icon on its badge.
Routing Log tab
The Routing Log lists recent automatic routing decisions, most recent first.
| Column | Description |
|---|---|
| Ticket | The ticket the decision applied to (links to the ticket) |
| Rule | The matching rule's name, or Fallback when no rule matched |
| Action | The action that ran and the resulting assignment |
| Reason | An explanation of why the decision was made |
| Time | When the decision was evaluated |
Use the log to confirm rules are behaving as intended and to troubleshoot unexpected assignments.
Best Practices
- Order from specific to general. Put narrow, high-priority rules first and a broad catch-all last, since the first match wins.
- Add a catch-all. A bottom rule with no conditions (or a single always-true condition) ensures every ticket gets assigned instead of falling through to unassigned.
- Use pools for shared queues. Round-robin pools spread routine work evenly; raise a member's weight to send them a larger share.
- Keep skills consistent. The Assign by Skill action matches on the skill name, so use the same naming across technicians.
- Verify with the log. After changing rules, watch the Routing Log to confirm new tickets route as expected.