In this article:
Ticket Assignment Policies address the limitations with current ways of ticket assignment by using a clear structure: Agent availability acts as a primary gate, while Load and ML-derived Skill serve as rankers, with their priority explicitly defined and configurable.
The Ticket Assignment Policies framework distinguishes between learning and decision making. It employs an ML pipeline to extract them from tickets, and map them to agents, by calculating an agent-skill proficiency score weekly over a six-month period.
For deterministic assignment, tickets are assigned by first filtering agents by availability (business or calendar hours, with a 60-minute minimum shift time for calendar hours). Eligible agents are then ranked by load, skill, or a weighted combination, with ties broken by the oldest last-assignment timestamp. This ensures explainable, auditable, and predictable routing that adapts to changing skills.
A well-structured assignment policy includes:
Name
Condition
Business logic
Output
The policy framework offers administrators flexibility to select attributes (among skill, load, and availability) relevant to different types of tickets (for example, service requests vs high-priority incidents). Conditions define when a policy should apply. Business logic refers to the factors chosen by the administrator as part of a policy.
In addition, administrators can set the order of execution for the ticket assignment policies created in a workspace.
Note: With respect to audit logs, ticket assignments are logged and evaluated based on the updated properties stored in the database.
Assignment of tickets based on the framework
Ticket assignment policies route tickets based on load, skill, or a combination, in conjunction with agent availability as the primary gate.
Assignment based on Agent availability and Load
This configuration considers both Agent availability and Load when:
Agent availability is either set to ‘Assign to available agents only’ or ‘Assign to all agents’.
‘Load’ setting is enabled.
Assign to available agents only based on business hours: When an assignment policy is invoked under a business hours-based SLA, tickets are assigned to only the agents whose work schedule matches the defined business hours. This ensures alignment with the SLA window and filters out agents outside of that schedule. As a result, from the filtered-out agents, the agent with maximum available bandwidth is assigned the ticket.
Example: Alex (30% load) gets a ticket over Nina (80% load) within US East business hours.
Assign to available agents only based on calendar hours: When an assignment policy is invoked under a calendar hours-based SLA, the system evaluates agents currently on shift, and tickets are assigned to only agents who are active (and not OOO) with a minimum time-left guard (60 mins) to prevent last-minute handoffs. As a result, from the filtered-out agents, the agent with maximum available bandwidth is assigned the ticket.
Example: Diego (high capacity) is selected during a Monday surge over Mei (near full).
Assign to all agents: The lightest-loaded agent wins, even if off-shift (temporary for calendar introduction).
Assignment based on Agent availability and Skill
This configuration considers both Agent availability and Skill when:
Agent availability is either set to ‘Assign to available agents only’ or ‘Assign to all agents’.
‘Skill’ setting is enabled.
Assign to available agents only based on business hours: When an assignment policy is invoked under a business hours-based SLA, tickets are assigned to only the agents whose work schedule matches the defined business hours, and the skill level Expert, Intermediate, or Beginner:
Example: Sam (Expert) is assigned a "Jenkins issue" ticket over Dana (Intermediate) within US East business hours.
Assign to available agents only based on calendar hours: When an assignment policy is invoked under a calendar hours-based SLA, the system evaluates agents currently on shift, and tickets are assigned to only agents who are active (not OOO) with a minimum time-left guard (60 mins), along with the skill-based configuration.
Example: Anika (0.90) wins over Ravi (0.62) for a "Jenkins issue" ticket when both are on shift with sufficient time left.
Assign to all agents: The skill-based configuration is applied to eligible agents, regardless of shift.
Assignment based on Agent availability, Skill, and Load
This configuration considers Agent availability, Skill, and Load when:
Agent availability is either set to ‘Assign to available agents only’ or ‘Assign to all agents’.
Both ‘Skill’ and ‘Load’ settings are enabled.
Admin-prioritized: After agent availability is checked, scores are combined using explicit weights, allowing operations to blend skill and load.
Skill-first: Assigned to eligible agents, ranked by blended skill score.
Example: Elena (Expert, moderate load) is assigned a firmware issue over Kamil (Intermediate, light load) with a Skill-first blend during EMEA business hours.
Load-first: Assigned to eligible agents, ranked by blended load score.
Example: Ravi (Intermediate, high headroom) is selected over Anika (Expert, near capacity) during a mid-day L1 surge with a Load-first blend, to minimize MTTA/MTTR.