---
schema_version: "1"
id: 7b5bda620f2902cc7d65d754bf6ddd57539f60d71e1e369fb4d66a9e4ba1a3ba
title: Workforce Management Limits and Considerations
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/service/264-0-0/workforce_engagement_limits.md
canonical_url: https://help.salesforce.com/s/articleView?id=service.workforce_engagement_limits.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 424fc8cea891392a0b85315d6246ce5cbf5c61cfc4e0cd887c2b6916d17be6d7
description: Before setting up Workforce Management, review these limits and considerations.
products:
  - Service Cloud
  - Digital Engagement
release: "264"
---
# Workforce Management Limits and Considerations

Before setting up Workforce Management, review these limits and considerations.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;"><a href="https://help.salesforce.com/s/articleView?id=service.workforce_engagement_editions.htm&amp;release=264.0.0&amp;type=5" title="Learn about the Salesforce user interfaces, editions, and add-ons that support Workforce Management and Quality Management">View supported editions</a>.</td></tr></tbody></table>

## General Limits

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d18637e66">Limit</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d18637e69">Details</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e66 ">Maximum number of service resources per user</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e69 ">1 per service resource type </td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e66 ">Maximum number of service resource preferences</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e69 ">1 per service resource</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e66 ">
              <p>Maximum number of records for these objects:</p>
              <p style="margin-bottom:0;">Shifts, shift templates, shift
                scheduling operations, service resources, service territories, job profiles, operating
                hours, resource absences, time sheets, or scheduling constraints</p>
            </td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e69 ">Platform behavior; 2000 records can be viewed without searching</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e66 ">Maximum number of time slots, service territory members, or time sheet entries</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e69 ">Platform behavior</td>

          </tr>
        </tbody>
      </table>

## Workloads and Forecasting Limits

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d18637e135">Limit</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d18637e138">Details</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e135 ">Maximum number of queues or skill groups in a workload history </td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e138 ">39</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e135 ">Maximum number of service channels in a workload history</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e138 ">5</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e135 ">
              <p>Maximum number of weeks of historical data you can select when creating a workload</p>
              <div>
                <div class="slds-box slds-box_x-small slds-theme_shade slds-m-top_medium slds-m-bottom_medium">
                  <div class="slds-media slds-media_responsive">
                    <div class="slds-media__figure"><span class="slds-icon_container slds-icon_container_circle slds-icon-note-note"><img style="margin-bottom:0;" src="https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_channels-264-0-0-production-enus/f3c4b3d2-ff86-4f7c-9fe2-3d8b23d35109/images/icon_note.png" alt="Note"></span></div>
                    <div class="slds-media__body" style="padding-top:.5rem;padding-bottom:.5rem;"><span class="slds-text-title_caps">Note</span> After a workload is created, it can continue to be refreshed with data for
                      subsequent weeks. As a result, there's no overall limit on the number of years
                      of data that can be maintained. We recommend archiving older data manually based
                      on your retention requirements. </div>
                  </div>
                </div>
              </div>
            </td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e138 ">260 (5 years)</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e135 ">Minimum number of weeks in a workload history when creating a forecast </td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e138 ">3 weeks </td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e135 ">Maximum number of weeks in a forecast</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e138 ">12 weeks for Holt-Winters; 4 weeks for Moirai (Beta)</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e135 ">Maximum amount of historical data when Holt-Winters is selected as the
              forecasting model</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e138 ">3 years</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e135 ">Maximum amount of historical data when Moirai (Beta) is selected as the
              forecasting model</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e138 ">3 months</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e135 ">Maximum number of queues that can be selected for a workload using Moirai
              (Beta)</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e138 ">10</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e135 ">Maximum number of weeks of forecast data for a forecast using Moirai
              (Beta)</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e138 ">4 weeks</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e135 ">Maximum size of a workload history or forecast export</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e138 ">40,000 records</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e135 ">Maximum number of forecast adjustments with an hourly interval</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e138 ">50 records per adjustment, but you can make multiple updates</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e135 ">Maximum number of forecast adjustments with a daily interval</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e138 ">30 records per adjustment, but you can make multiple updates</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e135 ">Maximum number of forecast adjustments with a monthly interval</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e138 ">4 records per adjustment, but you can make multiple updates</td>

          </tr>
        </tbody>
      </table>

## Capacity Plan Limits

 
| Limit | Details |
| --- | --- |
| Maximum number of weeks in a short-term capacity plan | 12 |
| Maximum number of job profiles per plan | 10 |
| Maximum slices per job profile. A slice represents a per-channel combination of region, skill, and custom values aggregated in the workload. | 20 slices |
| Capacity plan processing | 1 plan per org at a time |

## Intraday Management Limits

 
| Limit | Details |
| --- | --- |
| Maximum number of capacity plans or service territories associated with an Intraday Management dashboard | 1 per dashboard |
| Date and time displayed on the Intraday Management dashboard | Up to 24 hours of a single business day |

## Scheduling Limits

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d18637e407">Limit</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d18637e410">Details</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e407 ">Maximum number of shift segment types</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e410 ">200 records</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e407 ">Maximum number of shift segments</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e410 ">10 shift segment types per shift</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e407 ">Maximum number of shifts that can be batch assigned (using Assign)</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e410 ">200 shifts at once</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e407 ">Maximum number of shifts on which Mass Shift Update can assign and update
              status</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e410 ">The number of shifts within a 90-day timespan. We recommend that you select less than
              50,000 shifts. It can take a few hours to assign and update the status on 50,000
              shifts.</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e407 ">Maximum number of scheduling rules</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e410 ">50 </td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e407 ">Maximum number of scheduling constraints</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e410 ">50 </td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e407 ">
              <p>Maximum number of records per page in these Shift Manager views</p><a name="workforce_engagement_limits__ul_ycl_khg_tcc"><!-- --></a>
              <ul id="workforce_engagement_limits__ul_ycl_khg_tcc">
                <li>View Shifts</li>
                <li>View Service Territories</li>
                <li>View Job Profiles</li>
                <li>View Operating Hours</li>
              </ul>
            </td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e410 ">Up to 2000 records per page</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e407 ">Maximum number of Resource Absence records per page in the Shift Manager </td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e410 ">Up to 300 records per page</td>

          </tr>
          <tr class="">
            <td data-label="Limit" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e407 ">Maximum historical data in adherence metrics (Workforce Management only)</td>

            <td data-label="Details" class="slds-cell-wrap" style="vertical-align:top;" headers="d18637e410 ">Up to the past 365 days</td>

          </tr>
        </tbody>
      </table>

## General Considerations

Workforce Management supports only time zones based on full hours, such as GMT+9:00 but not GMT+9:30. When you create a workload history, you select a service territory, which sets the time zone used in related data views. The setup flow shows only service territories with full-hour time zones.

## Considerations for Workload Histories and Forecasting

- You can create multiple forecasts from the same workload. However, you can't create or update forecasts for a workload while another forecast creation or workload update is in progress. During these operations, the workload is locked until processing is complete.
- Only one forecast can be created at a time using Moirai (Beta) across all workloads in your org — you can't start a new Moirai forecast while another is already in progress, regardless of workload.
- Use Average Handle Times (AHT) less than 60 minutes in a workload or a forecast.

## Considerations for Capacity Planning

- When the number of job profiles increases, the prediction for Staff Required in a short-term plan increases. This increase happens because we split the workload across job profiles equally, calculate the required staff for each job profile separately, and then round up to the nearest whole number. If the workload is small, when you add job profiles, you can see a sudden jump in the number of staff required.
- If a shift template changes after you create a plan, Workforce Engagement can’t create shifts from it. Specifically, if you change a shift template’s start time, end time, or job profile, you can’t create shifts from the plan.
- When two shift templates have overlapping hours, the plan uses the template that covers demand with the least number of shifts.
- The capacity planning engine uses specific algorithms tailored to distinct operational profiles. The current implementation is scoped to support work streams characterized by an Average Handle Time (AHT) of less than 1 week, alongside an arrival rate of <= 2 transactions per hour (or a daily aggregate of ~50 transactions).
- You can create a capacity plan only for one service territory at a time.