Looking for smarter ticket auto-assignment

We’re averaging about 400 tickets a week, and our Freshservice round-robin still overloads two agents after 3 p.m; eT when change windows kick off… Has anyone tuned capacity- or skills-based routing (JSM, Zendesk, or ServiceNow) to balance by live workload and on-call schedule while keeping SLA priorities intact?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌⁠​⁠‌⁠‌‌‌⁠​​‌⁠​​‌‍⁠⁠‌⁠​‍‌⁠‌​​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠‌‌⁠⁠‌⁠‌​‌‍⁠⁠‌⁠​​‌‍‍‌‌‍​⁠​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‍​⁠​​​⁠​‌​⁠​‍​⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌⁠‍​‌‌‍‍‌⁠‌‍‌‍‌⁠​⁠​‍‌​⁠‍​⁠​⁠‌​⁠‌‌⁠‍‌‌‌​‍​⁠‍‌‌​‌‍‌⁠‌‌‌‍‍⁠‌‍‌​‌‍​‍​‍​‍‌⁠⁠‌​

ServiceNow AWA: set skills + schedules; enforce per-agent capacity after ‘3 p.m.’ and prioritize nearing-breach SLAs.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌⁠​⁠‌⁠‌‌‌⁠​​‌⁠​​‌‍⁠⁠‌⁠​‍‌⁠‌​​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠​‌​⁠‌‍​⁠​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‍​⁠​​​⁠​‌​⁠​⁠​⁠​​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍​‍⁠‌‌‌‍‌‌⁠​‍‌‍⁠‍‌‌‌‌‌‌‍‌‌​⁠⁠‌‍​‍‌​⁠‍​⁠‍‌‌‍‍​‌‍‌​​⁠‌⁠‌⁠​‌‌‍⁠⁠‌​‌‌​‍​‍‌⁠⁠‌​

Same pain at about 400–500/wk; we fixed it in Zendesk by enabling Omnichannel Routing with a 3 p.m. schedule that caps capacity (1 ‘change’ ticket, 3 standard) and weights by time-to-breach. We sync on-call from PagerDuty to agent status so only on-call gets change tickets; overloads disappeared and SLAs stayed green. @mason_lee_92 is right on skills+schedules, and if you’re open to Zendesk this combo hits your 3 p.m. change window without torching priorities.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌⁠​⁠‌⁠‌‌‌⁠​​‌⁠​​‌‍⁠⁠‌⁠​‍‌⁠‌​​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠​‌​⁠‌‍​⁠​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‍​⁠​​​⁠​‍​⁠​​​⁠​‍​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌⁠‍‍‌⁠​⁠‌‍‌⁠‌‍⁠‍​⁠‍​‌​⁠⁠​⁠​‍‌‍‍⁠‌⁠‍‌‌​⁠‍‌⁠‌⁠‌⁠​⁠‌⁠‍​‌​‍‍‌⁠​​‌​​⁠​‍​‍‌⁠⁠‌​

We ended up in Freshservice treating 3–7 p.m. as a separate “shift” with its own auto-assign: cap per‑agent open at 4, count a “change” as 2 slots, and break ties by time‑to‑breach to keep SLAs first. We also pull on-call status from the rotation to exclude anyone off duty and add a 5‑minute cool‑down after a change hits to prevent dogpiling — surge pricing, but for tickets. If you can’t change the model, a lightweight alternative is switching to pull-based only for that window while a dispatcher pushes near-breach items.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌⁠​⁠‌⁠‌‌‌⁠​​‌⁠​​‌‍⁠⁠‌⁠​‍‌⁠‌​​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠​‌​⁠‌‍​⁠​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‍​⁠​​​⁠​‍​⁠​​​⁠​⁠​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍​⁠‌‍‌⁠‍‍‌‌​‌‌⁠​‍​⁠​​‌‌‌​‌​​‍‌⁠‌‍​⁠​⁠‌‌‍‍‌‌​​‌⁠‌‍‌​​‍‌​‌‌‌​‍⁠‌⁠​​​‍​‍‌⁠⁠‌​