Omnichannel routing ticket queuing and assignment scenarios

<div class="article-banners">
<div id="docs-wmp-link"><a href="https://support.zendesk.com/hc/en-us/articles/5411234991258-plan" rel="noopener" target="_blank">What's my plan?</a></div>
<div class="article-banner" id="suite_all">
<table>
<tbody>
<tr>
<td>
<strong>All Suites</strong>
</td>
<td>Team, Growth, Professional, Enterprise, or Enterprise Plus</td>
</tr>
</tbody>
</table>
</div>
<div class="article-banner" id="support_all">
<table>
<tbody>
<tr>
<td>
<strong>Support</strong>
</td>
<td>Team, Professional, or Enterprise</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="body">
<div class="p">
<div class="note fastpath">
<span class="fastpathtitle">Location: </span> <span class="ph">Admin Center &gt; Objects and rules &gt; Omnichannel routing &gt; Routing configuration</span>
</div>
</div>
<p>This article describes many common scenarios to help you understand how <a href="https://support.zendesk.com/hc/en-us/articles/4409149119514">omnichannel routing</a> queues and assigns tickets.</p>
<h4 id="01H8PT3ATXXT9ZN37W619GCD81">Select a scenario to view it:</h4>
<ul>
<li><a class="content-chooser" data-content-choice="Proa" href="#01H7XJ4QW66QNZF5M76FXMNRY8">Agents are offline or at capacity</a></li>
<li><a class="content-chooser" data-content-choice="Prob" href="#01H7XJGV1WG1YP2BAGA449AGDK">Two agents are online</a></li>
<li><a class="content-chooser" data-content-choice="Proc" href="#01H7XJGV1WTDQ2END6XNZW3JTD">An agent marks an assigned ticket as solved</a></li>
<li><a class="content-chooser" data-content-choice="Prod" href="#01H7XJGV1WXH932AXW24CNT5W6">A customer responds to a solved ticket</a></li>
<li><a class="content-chooser" data-content-choice="Proe" href="#01H7XJGV1WKN6YV3R65N5S1DQH">An agent assigns an active conversation to another agent</a></li>
<li><a class="content-chooser" data-content-choice="Prof" href="#h_01H8YTBSDY0XHETWW9D1JJBYWJ">An agent is offered a message but doesn't accept it</a></li>
<li><a class="content-chooser" data-content-choice="Prog" href="#01H7XJGV1W8MQ077NFH8XF1472">A conversation becomes inactive while in the queue</a></li>
<li><a class="content-chooser" data-content-choice="Proh" href="#01H7XJGV1WRQYD42SZJ9KCJ34H">A conversation becomes inactive while assigned to an agent</a></li>
<li><a class="content-chooser" data-content-choice="Proj" href="#01H8MT1AKH8YVJXQTY6TBXW4C5">An email with the auto-route tag is received, and two agents are online</a></li>
<li><a class="content-chooser" data-content-choice="Prok" href="#01H8MT236NWY8AV8DX0R3G2Q2F">A voice call is received, and two agents are online</a></li>
<li><a class="content-chooser" data-content-choice="Prol" href="#01H8MT2WDXX77VG6Q4EB490TXR">An agent declines a voice call</a></li>
</ul>
<h3 class="labeled-content" data-content-labels="proa" id="01H7XJ4QW66QNZF5M76FXMNRY8">Agents are offline or at capacity</h3>
<table class="labeled-content" data-content-labels="proa">
<tbody>
<tr>
<td style="width: 50%;">
<p>A new message is received and added to the top of the queue.</p>
<p>Another new message is received and added to the queue below the existing message because messages of the same priority are ordered by the time received (oldest at the top).</p>
<p>A new urgent priority message is received, which goes to the top of the queue as messages are ordered by priority in the queue (urgent at the top).<br><br>Routing based on priority is only available on Suite Professional and above.</p>
</td>
<td style="width: 50%;"><img src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/rob-ocr-1.png" width="850"></td>
</tr>
</tbody>
</table>
<h3 class="labeled-content" data-content-labels="prob" id="01H7XJGV1WG1YP2BAGA449AGDK">Two agents are online</h3>
<table class="labeled-content" data-content-labels="prob">
<tbody>
<tr>
<td style="width: 50%;">
<p>The message at the top of the queue is offered to Agent 1 (the agent who has been inactive the longest.)</p>
<p>Agent 1 accepts the message.</p>
<p>The next message in the queue is offered to Agent 2 (the agent with the most free capacity.) </p>
<p>Agent 2 accepts the message.</p>
<p>The next message in the queue is offered to Agent 1 (both agents have the same free capacity, but Agent 1 has been inactive the longest.) </p>
<p>Agent 1 accepts the message.</p>
</td>
<td style="width: 50%;"><img src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/rob-ocr-2.png"></td>
</tr>
</tbody>
</table>
<h3 class="labeled-content" data-content-labels="proc" id="01H7XJGV1WTDQ2END6XNZW3JTD">An agent marks an assigned ticket as solved</h3>
<table class="labeled-content" data-content-labels="proc">
<tbody>
<tr>
<td style="width: 50%;">
<p>When an assigned ticket is marked as solved, it no longer counts toward an agent’s capacity.</p>
<p>The solved ticket is still be assigned to the agent</p>
<p>Marking a ticket as Pending, On-Hold, or a custom state based on those ticket status categories has the same effect.</p>
</td>
<td style="width: 50%;"><img src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/rob-ocr-3.png"></td>
</tr>
</tbody>
</table>
<h3 class="labeled-content" data-content-labels="prod" id="01H7XJGV1WXH932AXW24CNT5W6">A customer responds to a solved ticket</h3>
<table class="labeled-content" data-content-labels="prod">
<tbody>
<tr>
<td style="width: 50%;">
<p>If a customer believes their issue isn’t solved and responds, the agent currently assigned to the ticket receives a notification, and the ticket status changes to Open. This message will now count against their capacity.</p>
<p>If an agent reassigns the ticket back to the group, for example if they are going offline for an extended period, then when a response comes in, omnichannel routing routes the ticket to an alternative agent in the group.</p>
</td>
<td style="width: 50%;"><img src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/rob-ocr-4.png"></td>
</tr>
</tbody>
</table>
<h3 class="labeled-content" data-content-labels="proe" id="01H7XJGV1WKN6YV3R65N5S1DQH">An agent assigns an active conversation to another agent</h3>
<table class="labeled-content" data-content-labels="proe">
<tbody>
<tr>
<td style="width: 50%;">
<p>Agent 2 comes online and there are no messages in the queue.</p>
<p>Agent 1 decides to assign her lower priority conversation to Agent 2 who receives a notification that this has happened.</p>
</td>
<td style="width: 50%;"><img src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/rob-ocr-5.png"></td>
</tr>
</tbody>
</table>
<h3 class="labeled-content" data-content-labels="prof" id="h_01H8YTBSDY0XHETWW9D1JJBYWJ">An agent is offered a message but doesn't accept it</h3>
<table class="labeled-content" data-content-labels="prof">
<tbody>
<tr>
<td style="width: 50%;">
<p>A new message arrives, is placed in the queue and offered to Agent 1.</p>
<p>Agent 1 doesn’t accept the message within the reassignment time, so the message is offered to Agent 2.</p>
<p>Agent 2 accepts the message.</p>
</td>
<td style="width: 50%;"><img src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/rob-ocr-6.png"></td>
</tr>
</tbody>
</table>
<h3 class="labeled-content" data-content-labels="prog" id="01H7XJGV1W8MQ077NFH8XF1472">A conversation becomes inactive while in the queue</h3>
<table class="labeled-content" data-content-labels="prog">
<tbody>
<tr>
<td style="width: 50%;">
<p>A conversation might become inactive during, for example, outside of business hours or during a spike in calls.</p>
<p>If a customer waits in the queue for over ten minutes, their conversation becomes inactive.</p>
<p>At this stage, the conversation remains in the queue because no agent has any free capacity.</p>
<p>When an agent comes online or frees up some capacity, they are assigned this conversation and receive a notification.</p>
<p>Depending on your <a href="https://support.zendesk.com/hc/en-us/articles/4828787357210">routing configuration</a>, all inactive messages could be assigned to the first available agent as they do not affect capacity.</p>
</td>
<td style="width: 50%;"><img src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/rob-ocr-7.png"></td>
</tr>
</tbody>
</table>
<h3 class="labeled-content" data-content-labels="proh" id="01H7XJGV1WRQYD42SZJ9KCJ34H">A conversation becomes inactive while assigned to an agent</h3>
<table class="labeled-content" data-content-labels="proh">
<tbody>
<tr>
<td style="width: 50%;">
<p>If a customer is inactive for more than 10 minutes, the conversation becomes inactive</p>
<p>At this stage, the conversation remains assigned to Agent 1 but no longer counts toward their capacity</p>
<p>If the conversation becomes active again, Agent 1 receives a notification, and the conversation counts against their capacity again</p>
<p>If an inactive conversation assigned to an agent becomes active again when the agent is at capacity, they will go over their capacity threshold and not be served messages until they are within it again.</p>
</td>
<td style="width: 50%;">
<p><img src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/rob-ocr-8.png"></p>
</td>
</tr>
</tbody>
</table>
<h3 class="labeled-content" data-content-labels="proj" id="01H8MT1AKH8YVJXQTY6TBXW4C5">An email with the auto-route tag is received, and two agents are online</h3>
<table class="labeled-content" data-content-labels="proj">
<tbody>
<tr>
<td style="width: 50%;">
<p>An email is received, gets added to the top of the queue, and is automatically assigned to Agent 1 (the agent who has been inactive the longest).</p>
<p>Another email is received, gets added to the top of the queue, and is automatically assigned to Agent 2 (the agent with the most free capacity)</p>
<p>A third email is received, gets added to the top of the queue, and is automatically assigned to Agent 1 (both have the same free capacity; Agent 1 hasn’t received an email for the longest time).</p>
</td>
<td style="width: 50%;"><img src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/rob-ocr-9.png"></td>
</tr>
</tbody>
</table>
<h3 class="labeled-content" data-content-labels="prok" id="01H8MT236NWY8AV8DX0R3G2Q2F">A voice call is received, and two agents are online</h3>
<table class="labeled-content" data-content-labels="prok">
<tbody>
<tr>
<td style="width: 50%;">
<p>A call is received and is offered to Agent 1 (the agent who has been inactive the longest).</p>
<p>Agent 1 accepts it, and the ticket is assigned to them.</p>
<p>Another call is received and is offered to Agent 2 (the agent with the most free capacity). </p>
<p>Agent 2 accepts the call, and the ticket is assigned to them.</p>
<p>Another call is received. Since both agents are busy, the caller waits for the defined call wait time for an agent to become available. If no agent is available, the call goes to voicemail.</p>
</td>
<td style="width: 50%;"><img src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/rob-ocr-10.png"></td>
</tr>
</tbody>
</table>
<h3 class="labeled-content" data-content-labels="prol" id="01H8MT2WDXX77VG6Q4EB490TXR">An agent declines a voice call</h3>
<table class="labeled-content" data-content-labels="prol">
<tbody>
<tr>
<td style="width: 50%;">
<p>A call is received and is offered to Agent 1 (the agent who has been inactive the longest.)</p>
<p>Agent 1 declines the call.</p>
<p>The call is then offered to Agent 2.</p>
<p>Agent 2 accepts the call, and the ticket is assigned to them.</p>
</td>
<td style="width: 50%;"><img src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/rob-ocr-11.png"></td>
</tr>
</tbody>
</table>
</div>
<div id="topic_bvg_mnf_vq">
<h2 id="01H7XHXSMVD818F3WXV27E75NR">Further reading</h2>
<ul>
<li><a href="https://support.zendesk.com/hc/en-us/articles/5061050408730">Omnichannel routing resources</a></li>
</ul>
</div>
<p>
<script id="docs-schema-markup" type="application/ld+json">{
"@context": "https://schema.org",
"@type": "TechArticle",
"@id": "https://support.zendesk.com/hc/en-us/articles/6083625616666",
"url": "https://support.zendesk.com/hc/en-us/articles/6083625616666-Omnichannel-routing-ticket-queuing-and-assignment-scenarios",
"headline": "Omnichannel routing ticket queuing and assignment scenarios",
"description": "You can understand how omnichannel routing manages ticket queuing and assignment through various scenarios involving agent availability, message priority, and conversation activity states.",
"articleSection": "Routing",
"datePublished": "2023-08-28T17:03:12+00:00",
"dateModified": "2025-09-05T23:23:17+00:00",
"inLanguage": "en-US",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://support.zendesk.com/hc/en-us/articles/6083625616666"
},
"author": {
"@type": "Organization",
"name": "Zendesk",
"@id": "https://www.zendesk.com"
},
"publisher": {
"@type": "Organization",
"name": "Zendesk",
"@id": "https://www.zendesk.com"
},
"isPartOf": {
"@type": "WebSite",
"name": "Zendesk Help",
"@id": "https://support.zendesk.com/hc/"
},
"about": {
"@type": "SoftwareApplication",
"name": "Zendesk",
"@id": "https://www.zendesk.com"
}
}</script><script>
const configurePage = () => {
const content_choosers = document.getElementsByClassName("content-chooser");
for (let i = 0; i < content_choosers.length; i++) {
let content_chooser = content_choosers[i];
if (content_chooser.tagName === "SELECT") {
content_chooser.addEventListener("change", function (e) {
const chosen_content = e.target.value;
showContent(chosen_content);
});
} else {
content_chooser.addEventListener("click", function () {
const chosen_content = content_chooser.getAttribute("data-content-choice");
showContent(chosen_content);
});
}
}
handleUrlParameters();
};

const handleUrlParameters = () => {
var params = new URLSearchParams(window.location.search);
if (!params.has('option')) {
return;
}
const chosen_content = params.get('option');
showContent(chosen_content);
};

const showContent = (chosen_content) => {
const content_elements = document.getElementsByClassName("labeled-content");
for (let i = 0; i < content_elements.length; i++) {
let content_element = content_elements[i];
let content_element_labels = content_element.getAttribute("data-content-labels").split(" ");
if (content_element_labels.includes(chosen_content.toLowerCase())) {
content_element.style.display = "block";
} else {
content_element.style.display = "none";
}
}
};

// configure page after page load
document.addEventListener("DOMContentLoaded", configurePage());
</script>
<script>
// stylesheet
const style = document.createElement('style');
style.innerHTML = `
.labeled-content {
display: none;
}
`;
document.head.appendChild(style);
</script>
</p>
<script id="fast-path-script">
//<![CDATA[
const fast_path_style = document.createElement('style');
fast_path_style.innerHTML = `#article-body .fastpath{font-size:.9em;background-color:#f3f3f3;border:1px solid #d3d3d3;padding:10px 10px 8px;margin-bottom:16px}#article-body .fastpath::before{content:none!important}`;
document.head.appendChild(fast_path_style);
//]]>
</script>