Workflow: Replacing the Out of Office app with omnichannel routing

<p>The omnichannel routing (OCR) feature <a href="https://support.zendesk.com/hc/en-us/articles/4828787357210-Managing-your-omnichannel-routing-configuration" target="_blank" rel="noopener noreferrer">reassigns open tickets</a> and fully replaces the <a href="https://www.zendesk.com/marketplace/apps/support/49617/out-of-office/" target="_blank" rel="noopener noreferrer">Out of Office</a> app. The transition to OCR offers improved agent availability management and more advanced routing capabilities. This article compares <strong>Out of Office</strong> app features with omnichannel routing capabilities. You'll find a step-by-step guide to transition from the Out of Office app to manage agent availability and tickets with omnichannel routing.</p><h3 id="h_01KY7QPYW74PY1V7FXJ98WGZBZ">Why replace the Out of Office app?</h3><p>The Out of Office app manages agent availability and ensures that tickets aren't routed to absent agents. The app also reassigns their open tickets.</p><p>Omnichannel routing supports the features below:</p><ul>
<li data-list-item-id="eb5749cd00242506c7bce83ac8972d8ee">Agent status management across channels, such as email, messaging, chat, and voice</li>
<li data-list-item-id="ef7ad3ec16c2832667449447859353509">Automatic ticket routing based on availability and capacity</li>
<li data-list-item-id="ef6d9727cb4c4b300485079ba14c95f0e">Real-time control and visibility over agent workloads</li>
<li data-list-item-id="e421c8d2524f06c64d7e82e1371753aba">Native experience to manage agent workload and ticket reassignment</li>
<li data-list-item-id="e10707021429a5b68e0f2a367f3cc9dfd">Preservation of an <strong>Out of office</strong> status during idle timeouts and disconnection events</li>
</ul><p>These capabilities render the Out of Office app redundant and make omnichannel routing a more scalable alternative.</p><h3 id="h_01KY7QWP9GSR0Q601KDBK84TG0">Feature comparison</h3><p>The table below shows the supported features between the Out of Office app and omnichannel routing:</p><figure class="wysiwyg-table"><table style="margin-left: 0px; margin-right: auto;"><tbody>
<tr>
<td><strong>Available feature</strong></td>
<td><strong>Out of Office app</strong></td>
<td><strong>Omnichannel routing</strong></td>
</tr>
<tr>
<td>Manually mark agents as out of office</td>
<td>Yes</td>
<td>Yes, through status change</td>
</tr>
<tr>
<td>Prevent the assignment of tickets to unavailable agents</td>
<td>Yes</td>
<td>Yes, and doesn't block manual assignments</td>
</tr>
<tr>
<td>Integration with routing logic</td>
<td>No</td>
<td>Yes</td>
</tr>
<tr>
<td>Auto-assignment based on availability and capacity</td>
<td>No</td>
<td>Yes</td>
</tr>
<tr>
<td>Real-time visibility in Admin Center</td>
<td>No</td>
<td>Yes</td>
</tr>
<tr>
<td>Reporting capabilities</td>
<td>Limited</td>
<td>Full analytics in Explore</td>
</tr>
<tr>
<td>API support for custom workflows</td>
<td>No</td>
<td>Yes</td>
</tr>
</tbody></table></figure><div style="margin-bottom: 20px; text-align: right;">
<button id="master-toggle" class="btn fw-semibold text-dark" data-action="expand" style="background-color: #DEF991; border: none; outline: none; border-radius: 7px; padding: 10px 20px; font-size: 15px; transition: background-color 0.2s ease;" onmouseover="this.style.backgroundColor='#cbef6d'" onmouseout="this.style.backgroundColor='#DEF991'">
Expand all tabs
</button>
</div>
<script>
document.addEventListener('DOMContentLoaded', function () {
const toggleBtn = document.getElementById('master-toggle');

toggleBtn.addEventListener('click', function () {
const action = this.getAttribute('data-action');
const headers = document.querySelectorAll('.accordion');

headers.forEach(header => {
const isActive = header.classList.contains('active');
const panel = header.nextElementSibling; // Grabs the corresponding .panel container

if (action === 'expand' && !isActive) {
// Open it by simulating a standard click
header.click();
} else if (action === 'collapse' && isActive) {
// Close it by simulating a standard click
header.click();
}
});

// Flip button text and states
if (action === 'expand') {
this.setAttribute('data-action', 'collapse');
this.textContent = 'Collapse all tabs';
} else {
this.setAttribute('data-action', 'expand');
this.textContent = 'Expand all tabs';
}
});
});
</script><div class="accordion"><h3 id="h_01KY7QJEYW89MTK0V8GND07AHP">Steps to replace the Out of Office app with OCR</h3></div><div class="panel">
<p>To replace the Out of Office app with omnichannel routing:</p>
<h3 id="h_01KY7QXTSC53J9PF3DWQNTDJDH">Prerequisites</h3>
<ul>
<li data-list-item-id="ed31021c92e6030e1949e87e997f9ed6d">Zendesk Suite (Professional, Enterprise, or Enterprise Plus) or Support (Professional or Enterprise) plan</li>
<li data-list-item-id="ee5e00e569e5c92c74392c78b7828d958">Omnichannel routing activated and configured</li>
<li data-list-item-id="e0e5f4d775339e22916ab990a3da56d37">Custom agent statuses</li>
</ul>
<h3 id="h_01JWTX3CFAHNKBTG1PAT3W097G">Step 1: Define a custom unified agent status</h3>
<ol>
<li data-list-item-id="e0bf375141474979991880ac05de92db4">In <a href="https://support.zendesk.com/hc/en-us/articles/4581766374554#topic_hfg_dyz_1hb" target="_blank" rel="noopener noreferrer">Admin Center</a>, click <img src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/ac_objects_rules_icon.png"> <strong>Objects and rules</strong> in the sidebar, then select <strong>Omnichannel routing Agent statuses</strong>
</li>
<li data-list-item-id="e39ed42ebd9a749a45dc23ca000d3fb38">
<a href="https://support.zendesk.com/hc/en-us/articles/4410525357594-Creating-custom-unified-agent-statuses" target="_blank" rel="noopener noreferrer">Create a custom status</a> named <strong>Out of Office</strong>
</li>
<li data-list-item-id="ea34b6e8b61d1fc50f3ea8197eb05e882">Under <strong>Channel routing</strong>, set the <strong>Email, Messaging, </strong>and<strong> Talk</strong> channels to <strong>Offline</strong>. This prevents the assignment of tickets to agents when they are on the offline status.</li>
<li data-list-item-id="e0166aba1f2b3eb3f30c9283f77309d53">Set the <strong>Groups</strong> that this configuration applies to</li>
<li data-list-item-id="e6dc758fccef59c0b055aca05227a77a0">Click the <strong>Create agent status</strong> button to create this custom status<br><img class="wysiwyg-image-resized" style="aspect-ratio: 1986/1310; width: 89.8%;" src="https://support.zendesk.com/hc/article_attachments/9376947246746" alt="Screenshot 2025-06-15 at 1.40.41 PM.png" width="1986" height="1310"><br><img class="wysiwyg-image-resized" style="aspect-ratio: 1984/1146; width: 89.24%;" src="https://support.zendesk.com/hc/article_attachments/9376932270234" alt="Screenshot 2025-06-15 at 1.41.14 PM.png" width="1984" height="1146">
</li>
</ol>
<h3 id="h_01JXZ44DQ7CEERSTC1F2FNH14J">Step 2: Configure idle timeout and disconnection statuses for the Out of Office status</h3>
<ol>
<li data-list-item-id="e3b79bf4c443eef598527d7d88d4481df">In <a href="https://support.zendesk.com/hc/en-us/articles/4581766374554#topic_hfg_dyz_1hb" target="_blank" rel="noopener noreferrer">Admin Center</a>, click <img src="https://zen-marketing-documentation.s3.amazonaws.com/docs/en/ac_objects_rules_icon.png"> <strong>Objects and rules</strong> in the sidebar, then select <strong>Omnichannel routing Status timeouts</strong>
</li>
<li data-list-item-id="eff45674923a99378ab916b107846943d">In the <strong>Out of office</strong> row of the table, set the <strong>Disconnection status</strong> to <strong>Keep current status</strong>
</li>
<li data-list-item-id="e5f70d8bd1b276a3c779395979a557179">Click <strong>Save</strong>
</li>
</ol>
<h3 id="h_01K4AK20KR1F77HYHTR7PN0H6J">Step 3: Activate reassignment for reopened and open tickets</h3>
<ol>
<li data-list-item-id="e069436a7dc0160eb0ec85873f41661d5">Edit the <a href="https://support.zendesk.com/hc/en-us/articles/4828787357210#topic_ymt_btp_m5b" target="_blank" rel="noopener noreferrer">omnichannel routing configuration</a>
</li>
<li data-list-item-id="e127f2824bdef7dd365879ce97b3e18f2">Select <strong>Turn on reassignment for reopened tickets</strong>
</li>
<li data-list-item-id="ee0aaf80bba31174f56106b7268bf6df0">Choose the tickets you want omnichannel to handle, such as <strong>Email</strong> or <strong>Messaging</strong>, and specify the <strong>Out of Office</strong> custom unified agent status as the required status</li>
<li data-list-item-id="e893dc7a8444d97c964e92e2d22ecd281">Select the <strong>Ticket priority</strong> that this configuration applies to</li>
<li data-list-item-id="ec260017ba37fb7a838c5ee8b83c68552">Scroll down and select <strong>Auto-reassign open tickets</strong>
</li>
<li data-list-item-id="ee2b0ac15b415549f111c3cef3fe353a7">Choose the tickets you want omnichannel to handle, such as <strong>Email</strong> or <strong>Messaging,</strong> and specify the <strong>Out of Office</strong> custom unified agent status as the required status. Select the <strong>Ticket priority</strong> that you want this applied to. For example, apply this to all ticket priorities.</li>
<li data-list-item-id="e9a40f82ebbbb6e56d09c73d10f28100e">Scroll down and select <strong>Reassign tickets through queues,</strong> then click <strong>Save</strong>. Omnichannel routing re-routes reassigned tickets through queues.<br><img src="https://support.zendesk.com/hc/article_attachments/9376976557594" alt="Reassign reopened and open tickets - 1" width="1926" height="1274"><img src="https://support.zendesk.com/hc/article_attachments/9376961646362" alt="Reassign reopened and open tickets - 1" width="1926" height="474">
</li>
</ol>
<h3 id="h_01JWTX3CFD1F7MRW176TPTAD5G">Step 4: Train agents</h3>
<p>Ensure agents know how to set their status and the implication of the setup:</p>
<ul>
<li data-list-item-id="e13dd0e3334c8a8317b82643877f86e8a">From the Zendesk Agent Workspace, agents click their profile picture and choose the appropriate status</li>
<li data-list-item-id="e2c6c2fe359f9415b4a97a9aa39e6ced7">Status persists across sessions and disconnection events, but agents set it automatically through the API or business rules</li>
</ul>
<h3 id="h_01JWTX3CFEAHT1ZQ03HFAYAQ4G">Step 5: Deactivate the Out of Office app</h3>
<p>After you configure and test OCR, <a href="https://support.zendesk.com/hc/en-us/articles/4409155972378-Managing-your-installed-apps" target="_blank" rel="noopener noreferrer">deactivate and remove</a> the Out of Office app.</p>
</div><div class="accordion"><h3 id="h_01KY7QJEYWRPQ257J5QGBAQ9TT">API Integration alternative</h3></div><div class="panel">
<p>For custom out-of-office workflows, use the omnichannel routing API.</p>
<p>Omnichannel Routing API capabilities:</p>
<ul>
<li data-list-item-id="e132522a4c3a81b860211902e4e1f8962">Programmatically set agent availability status</li>
<li data-list-item-id="e5b1085b352597e4da4aa91042eb1f651">Trigger automatic reassignment</li>
<li data-list-item-id="ece7b3ffd90b4133494c11247daae58ca">Integrate with external scheduling systems</li>
</ul>
<p>API endpoint:</p>
<pre class="language-auto">PUT /api/v2/routing/agents/{agent_id}/availability</pre>
<p>To set the agent to unavailable:</p>
<pre class="language-auto">curl https://yoursubdomain.zendesk.com/api/v2/routing/agents/123/availability \
-u email@example.com/token:api_token \
-X PUT \
-H "Content-Type: application/json" \
-d '{"availability": {"status": "unavailable"}}'</pre>
<p>Integration scenarios:</p>
<ul>
<li data-list-item-id="e283e88940dbfe6803b331c29ed20b5c8">Sync with Google Calendar or Outlook</li>
<li data-list-item-id="e1cad6f1962875dda472973b842b6321f">Integrate with HR time-off system</li>
<li data-list-item-id="e508f9507ee53b7da5eec99cae6b6f1d3">Automate based on WFM schedules</li>
</ul>
<div class="p"><div class="note">
<strong>Note: </strong>Manual status updates require agent discipline. Unlike the automated Out of Office app, agents must remember to update their status.</div></div>
<p>For more information, see <a href="https://developer.zendesk.com/api-reference/agent-availability/introduction/" target="_blank" rel="noopener noreferrer">Omnichannel routing API</a>.</p>
</div><div class="accordion"><h3 id="h_01KY7QJEYW6C7VJC09V9QGJ35Y">Best practices</h3></div><div class="panel"><ul>
<li data-list-item-id="e263d06e722a8ddf1894ce871576e11ea">Encourage agents to update their unified status at the start and end of each shift to maintain accurate availability data</li>
<li data-list-item-id="e3f0c98b9286a2c98858e16b53243ec06"><a href="https://support.zendesk.com/hc/en-us/articles/5600298255770-Analyzing-omnichannel-agent-state-and-activity" target="_blank" rel="noopener noreferrer">Monitor agent status reports</a></li>
<li data-list-item-id="edf52ae8b79bf3c77f38775427af31ac8">Update internal documentation and notify your support team of the changeover</li>
</ul></div>