Zendesk WFM product limits

<body>
<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="addon_wfm">
<table>
<tbody>
<tr>
<td>
<strong>Add-on</strong>
</td>
<td>Workforce Management (WFM) or Workforce Engagement Management (WEM)</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="docs-ai-summary">
<p id="docs-ai-summary-toggle">Verified AI summary <span id="up-triangle">◀</span><span id="down-triangle">▼</span></p>
<p id="docs-ai-summary-content">This article outlines the product limits for Workforce Management (WFM), detailing maximum thresholds for monitoring, reporting, scheduling, and administration. Understanding these limits helps you manage data effectively, anticipate occasional inconsistencies, and ensure optimal system performance. Key limits include dashboard and widget counts, file sizes, and scheduling intervals. Regular updates may introduce new limits based on usage patterns.</p>
</div>
<div class="body">
<p class="p" dir="ltr"><a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6514633060634-Getting-started-with-Zendesk-WFM-Manager-guide" target="_blank">The Workforce Management (WFM) system</a> processes large
volumes of data in near real-time, balancing speed, scalability, and accuracy. This article
outlines the maximum product limits that are in place for Zendesk WFM. </p>
<p class="p">Because Zendesk WFM operates in a distributed, real-time environment, you may occasionally
notice slight differences or inconsistencies in the data. Minor data differences are a normal
part of real-time, distributed systems. Such differences are typically small in relation to
the overall data and rarely impact your day-to-day decisions. It's helpful to share this
information with your team to help them understand the reasons for <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/9513135487514" target="_blank">occasional small inconsistencies</a>.</p>
<p class="p" dir="ltr">This article contains the following topics:</p>
<ul class="ul" id="topic-1__ul_dhr_rvp_fcc">
<li class="li" dir="ltr"><a class="xref" href="#topic_vl4_khk_1bc">Limits for WFM Monitoring and
Reporting</a></li>
<li class="li" dir="ltr"><a class="xref" href="#topic_l1c_kwp_fcc">Limits for WFM
Scheduling</a></li>
<li class="li" dir="ltr"><a class="xref" href="#topic_aj5_xbq_fcc">Limits for WFM
Administration</a></li>
</ul>
<div class="p">
<div class="note note">
<span class="notetitle">Note:</span> This article will continue to be updated, as we may introduce additional limits in the
future based on usage.</div>
</div>
</div>
<div aria-labelledby="ariaid-title2" class="topic nested1" id="topic_vl4_khk_1bc">
<h2 class="title topictitle2" id="ariaid-title2">Limits for WFM monitoring and reporting</h2>
<div class="body">
<p class="p">The following table shows the maximum limits for Zendesk WFM monitoring and reporting.</p>
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_vl4_khk_1bc__table_fj4_dj2_2cc" rules="all" summary="">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody class="tbody">
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;"><strong class="ph b">Page</strong></td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;"><strong class="ph b">Feature</strong></td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;"><strong class="ph b">Limits</strong></td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" rowspan="2" style="vertical-align:top;">Dashboard</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Maximum number of dashboards</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">10</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Maximum number of widgets per dashboard</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">12</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" rowspan="4" style="vertical-align:top;">Reports</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">File size</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">&lt; 15 MB</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">UI response timeout</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">&lt; 15 sec</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" style="vertical-align:top;">
<p class="p" dir="ltr">Daterange picker future max </p>
<p class="p" dir="ltr">(the maximum number of days that can be selected in the future) </p>
</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">-1 (we currently don't allow a current day selection)</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Data granularity per time frame selected</td>
<td class="entry cell-norowborder" style="vertical-align:top;">
<ul class="ul" id="topic_vl4_khk_1bc__ul_gj4_dj2_2cc">
<li class="li" dir="ltr">1 day or less: data is displayed in 15m or 30m intervals</li>
<li class="li" dir="ltr">7 days or less: data is displayed daily and hourly</li>
<li class="li" dir="ltr">31 days or less: data is displayed weekly and daily</li>
<li class="li" dir="ltr">13 weeks or less: data is displayed weekly, monthly and
quarterly</li>
<li class="li" dir="ltr">Up to 58 weeks (or the equivalent of 13 months): data is displayed
monthly and quarterly</li>
</ul>
</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Agent Activity</td>
<td class="entry nocellnorowborder" style="vertical-align:top;">Date picker future max (max number of days displayed in future)</td>
<td class="entry cell-norowborder" style="vertical-align:top;">0 (we currently only allow up to the current day selection; it’s not possible
to select future dates) </td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Agent Attendance</td>
<td class="entry nocellnorowborder" style="vertical-align:top;">Date picker future max (max number of days displayed in future)</td>
<td class="entry cell-norowborder" style="vertical-align:top;">0 (we currently only allow up to the current day selection; it’s not possible
to select future dates)</td>
</tr>
<tr class="row">
<td class="entry nocellnorowborder" dir="ltr" rowspan="2" style="vertical-align:top;">Public API</td>
<td class="entry nocellnorowborder" dir="ltr" style="vertical-align:top;">Rate limit (number of requests per second)</td>
<td class="entry cell-norowborder" dir="ltr" style="vertical-align:top;">100 requests</td>
</tr>
<tr class="row">
<td class="entry row-nocellborder" dir="ltr" style="vertical-align:top;">Pagination limit per page</td>
<td class="entry cellrowborder" dir="ltr" style="vertical-align:top;">100 items </td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title3" class="topic nested1" id="topic_l1c_kwp_fcc">
<h2 class="title topictitle2" id="ariaid-title3">Limits for WFM scheduling</h2>
<div class="body">
<p class="p">The following table shows the maximum limits for Zendesk WFM scheduling.</p>
<div class="p">
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_l1c_kwp_fcc__table_ufb_5xp_fcc" rules="all" summary="">
<colgroup>
<col style="width:33.33333333333333%">
<col style="width:33.33333333333333%">
<col style="width:33.33333333333333%">
</colgroup>
<thead class="thead" style="text-align:left;">
<tr class="row">
<th class="entry cellrowborder" dir="ltr" id="d51e262" style="vertical-align:top;"><strong class="ph b">Page</strong></th>
<th class="entry cellrowborder" dir="ltr" id="d51e266" style="vertical-align:top;"><strong class="ph b">Feature</strong></th>
<th class="entry cellrowborder" dir="ltr" id="d51e270" style="vertical-align:top;"><strong class="ph b">Limits</strong></th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e262" rowspan="2" style="vertical-align:top;">Agent Schedule Time Off</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e266" style="vertical-align:top;">Maximum number of requested days displayed in advance in the
sidebar</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e270" style="vertical-align:top;">One year</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e266" style="vertical-align:top;">Maximum number of requested days displayed in the past in the
sidebar</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e270" style="vertical-align:top;">30 days</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e262" style="vertical-align:top;">Agent schedule shift trades</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e266" style="vertical-align:top;">Maximum number of requested days displayed in the
past in the sidebar</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e270" style="vertical-align:top;">30 days</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e262" style="vertical-align:top;">Agent schedule notes</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e266" style="vertical-align:top;">Maximum number of notes</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e270" style="vertical-align:top;">1 per task</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e262" rowspan="9" style="vertical-align:top;">Schedule</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e266" style="vertical-align:top;">Maximum scheduling interval</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e270" style="vertical-align:top;">90 days</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e266" style="vertical-align:top;">Maximum publishing interval in the past</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e270" style="vertical-align:top;">30 days</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e266" style="vertical-align:top;">Maximum publishing interval</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e270" style="vertical-align:top;">90 days</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e266" style="vertical-align:top;">Import schedule CSV file size</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e270" style="vertical-align:top;">25Mb</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e266" style="vertical-align:top;">Maximum exporting interval</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e270" style="vertical-align:top;">30 days at once</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e266" style="vertical-align:top;">Maximum bulk add shifts interval</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e270" style="vertical-align:top;">90 days</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e266" style="vertical-align:top;">Maximum scheduling recurring tasks repeat interval</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e270" style="vertical-align:top;">12 weeks</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e266" style="vertical-align:top;">Maximum task "Recurrence ends on" interval</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e270" style="vertical-align:top;">90 days</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e266" style="vertical-align:top;">Minimum task size</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e270" style="vertical-align:top;">5 min</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title4" class="topic nested1" id="topic_aj5_xbq_fcc">
<h2 class="title topictitle2" id="ariaid-title4">Limits for WFM Administration</h2>
<div class="body">
<p class="p" dir="ltr">The following table shows the maximum limits currently in place for Zendesk WFM
Administration.</p>
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_aj5_xbq_fcc__table_pg1_z2q_fcc" rules="all" summary="">
<colgroup>
<col style="width:33.33333333333333%">
<col style="width:33.33333333333333%">
<col style="width:33.33333333333333%">
</colgroup>
<thead class="thead" style="text-align:left;">
<tr class="row">
<th class="entry cellrowborder" dir="ltr" id="d51e439" style="vertical-align:top;"><strong class="ph b">Page</strong></th>
<th class="entry cellrowborder" dir="ltr" id="d51e443" style="vertical-align:top;"><strong class="ph b">Feature</strong></th>
<th class="entry cellrowborder" dir="ltr" id="d51e447" style="vertical-align:top;"><strong class="ph b">Limits</strong></th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e439" style="vertical-align:top;">Roles and permissions</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Number of roles per user</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">1</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e439" style="vertical-align:top;">Account settings</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Block and allow lists maximum number of
characters</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">4B characters</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e439" rowspan="8" style="vertical-align:top;">Locations</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Location shifts: maximum rotation period (rotation
folder)</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">12 weeks, 90 days</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e443" style="vertical-align:top;">Location shifts: maximum duration of a task</td>
<td class="entry cellrowborder" headers="d51e447" style="vertical-align:top;">24 hours</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Location shifts: minimum duration of a task</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">5 minutes</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Location shifts: maximum number of start time options for automatic
shift intraday</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">10 items</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Location shifts: maximum shift length</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">24 hours</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Location shifts: minimum shift length</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">5 minutes</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Location shifts: maximum difference in shifts start time for
automatic shifts </td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">±24 hours</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Location shifts: maximum rotation period (automatic shifts)</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">12 weeks, 90 days</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e439" style="vertical-align:top;">Workstreams</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Maximum number of workstreams inside a combined workstream</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">10</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e439" rowspan="11" style="vertical-align:top;">Forecast</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Maximum number of visible workstreams on chart</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">10</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Use Zendesk data (available in WFM database)</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">2 years</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">AHT (Average handle time)</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">24 hours</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Duration</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">24 hours</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Concurrency</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">100</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">First response time</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">48 hours</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Speed of answer</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">48 hours</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Wait time</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">48 hours</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Shrinkage</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">99</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Minimum staffing</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">1000</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" dir="ltr" headers="d51e443" style="vertical-align:top;">Import historical volume period</td>
<td class="entry cellrowborder" dir="ltr" headers="d51e447" style="vertical-align:top;">Cannot be future dates</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<script id="ai-summary-script">
//<![CDATA[
const ai_summary_style = document.createElement('style');
ai_summary_style.innerHTML = `#styled-article-body{padding:0 0 0}#article-body #docs-ai-summary{background-color:#f3f3f3;border:1px solid #d3d3d3;padding:10px 10px 6px;margin-bottom:16px}#article-body #docs-ai-summary #docs-ai-summary-toggle{font-size:.9em;font-weight:700;margin-bottom:4px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}#article-body #docs-ai-summary #docs-ai-summary-toggle #up-triangle{margin-left:auto;padding-right:10px;display:none}#article-body #docs-ai-summary #docs-ai-summary-toggle #down-triangle{margin-left:auto;padding-right:10px}#article-body #docs-ai-summary #docs-ai-summary-content{font-size:.9em;padding-left:25px;padding-right:25px;margin-bottom:12px}`;
document.head.appendChild(ai_summary_style);

const toggleAISummary = () => {
const summary = document.getElementById("docs-ai-summary-content");
const upTriangle = document.getElementById("up-triangle");
const downTriangle = document.getElementById("down-triangle");
if (summary.style.display === "none") {
summary.style.display = "block";
upTriangle.style.display = "none";
downTriangle.style.display = "inline";
} else {
summary.style.display = "none";
upTriangle.style.display = "inline";
downTriangle.style.display = "none";
}
};

document.getElementById("docs-ai-summary-toggle").addEventListener("click", toggleAISummary);
//]]>
</script>
</body>