Set Up Optimization of Large Field Service Datasets with Dynamic Scaling
Manage large-scale global and in-day optimization effectively without splitting data due to system limits. Dynamic scaling intelligently structures data into logical clusters, seamlessly balancing demand and capacity while accounting for operational work rule constraints. This capability simplifies optimization management by enabling higher system limits, so you can optimize your entire dataset in one smooth operation. You don’t need to manually define optimization groups and boundaries. Dynamic scaling unifies and streamlines the optimization process, creating a single, cohesive solution that prevents conflicts and overlaps. Dynamic scaling is available only when you’re using Enhanced Scheduling and Optimization.
Required Editions
| Available in: Available in Lightning Experience and Salesforce Classic in these editions where Field Service is enabled: Enterprise, Unlimited, and Developer Editions |
This is a Field Service managed package feature.
Dynamic scaling uses AI to automatically break down a large-scale scheduling challenge into smaller, more manageable optimization request clusters based on logical grouping of data. This approach improves performance and efficiency by processing optimization requests in parallel.
With dynamic scaling, global optimization can handle up to 50,000 service appointments, up to 1,000 service resources, and up to 1,000 service territories in one request. In-day optimization can handle up to 20,000 service appointments, up to 1,000 service resources, and up to 1,000 service territories per request. When setting up optimization jobs, you can easily select many service territories without having to select each one individually. Dynamic scaling simplifies optimization planning by letting you select service territories based on business needs. The system then automatically defines optimization groups by clustering the data to meet specific optimization requirements. You still need to define soft boundaries (areas that share service resources) and smaller service territories to avoid performance issue for other scheduling actions. Without dynamic scaling, you must define specific optimization groups for soft boundaries, and maintain the underlaying data and setup. This makes workforce planning difficult, and optimization jobs configuration more time consuming and inefficient.
Use Cases for Dynamic Scaling
Review the use cases to gain a better understanding of how dynamic scaling works in Field Service Enhanced Scheduling and Optimization.
Example 1: Optimize for a high volume of appointments per resource per day
Utility companies often handle a high volume of service appointments per day, for example 50 meter readings. Without dynamic scaling, the 5,000 service appointment limit is easily reached. For example, a five-day work week with 50 service resources in a service territory means optimizing 12,500 service appointments. With dynamic scaling, the optimization request is split into smaller clusters of data that can be optimized independently.
Example 2: Optimize for an extended horizon
Companies that average, for example, 10 service appointments per service resource per day, and 50 resources in a service territory, can optimize a maximum of 10 working days with the 5,000 service appointment limit. With dynamic scaling, customers can increase their optimization horizon, leading to longer-term planning visibility.
Example 3: Optimize for improved resource efficiency
When service resources and service appointments are organized by territory, secondary service territories are typically used so that resources can work outside their primary areas. Without dynamic scaling, configuring optimization groups requires careful analysis to make sure that shared territories are included in the same optimization request. With dynamic scaling, you can simplify this process by replacing the traditional Match Territory or Working Territory work rules with the Maximum Travel Distance from Home work rule. This setup allows the optimization engine to schedule across invisible territory boundaries while respecting real travel distances. You don’t need to manually align territories in optimization groups.
For example, mobile workers live near service territory boundaries and there are appointments nearby, in a neighboring service territory. The mobile worker can't be assigned these appointments because of the Match Territory rule or because these territories must be set up in the same optimization group when using the Working Territories work rule. With dynamic scaling, you can put all the service territories in the same optimization group and use the Maximum Travel from Home work rule to keep the mobile workers from traveling too far from home.
Example 4: Optimize by using a single optimization request for simplified setup and maintenance
A small company with a dataset of 10,000 service appointments needs to be optimized across a two week period. Each territory is small, with only 10 service resources and 500 service appointments for the two weeks. With dynamic scaling, you can configure a single group for all territories under scheduled jobs, instead of configuring 20 different groups for 20 small territories. Select all the service territories and run one optimization job. Even though the data and territories are small, this simplifies setup and maintenance. Manage one job for your entire business, and consume only one APEX scheduled job.
Example 5: Optimize for in-day disruptions to the schedule
A company with 400 service technicians, where each resource handles 20 service appointments per day (total of 8,000 service service appointments a day) needs to optimize today and tomorrow’s schedule in order to handle in-day disruptions, like last-minute cancellations, traffic, and more. With dynamic scaling, you can configure a single group for all territories under scheduled jobs to process these 16,000 service appointments.
Considerations and Limitations for Dynamic Scaling
Before using dynamic scaling, review the considerations and limitations.
- Dynamic scaling is supported only for global and in-day optimization.
- Dynamic scaling doesn't consider shifts with overlapping travel times when creating clusters. This can lead to rule violations on the Gantt.
- Dynamic scaling doesn’t support:
- Multiday work
- Work Capacity work rule
- Rollback option for Commit Mode in the scheduling policy
- Dynamic scaling is supported only for large datasets. Even if enabled, not all optimization requests use this capability. Dynamic scaling only applies to optimization requests that exceed 5,000 service appointments or 500 service resources. Dynamic scaling isn’t triggered if the number of service appointments or service resources in the optimization request are within these limits, and only the number of service territories exceeds 100.
- For global optimization, dynamic scaling supports a maximum of 50,000 service appointments, 1,000 service resources, and 1,000 service territories in a group. For in-day optimization, Dynamic scaling supports a maximum of 20,000 service appointments, 1,000 service resources, and 1,000 service territories per group. The optimization request fails if any of these limits are exceeded. The service appointment limit is lower for in-day optimization than for global optimization because the in-day operation needs to run much faster (complete within 5 minutes). As such, the horizon for in-day optimization is typically much narrower than for global optimization as it’s only meant to handle in-day changes to the schedule, like no-shows, or emergency repair jobs.
- If an optimization request fails, the failure details are displayed only on the child optimization request (specific cluster) and not on the main optimization request.
- The clustering mechanism uses many factors to determine the clusters. However, it's possible that the scheduling engine can't schedule a service appointment or schedule to an optimal resource if the optimal service resource is in a different cluster. This is because the clusters are optimized as separate optimization requests in parallel. Global and in-day optimization can fail to schedule a service appointment even though the Find Candidates or Task Insert operations can schedule it successfully.
- The more times you run the optimization request, the more service appointments are scheduled as the clustering improves. This means scheduled service appointments affect clustering, such that the more you run and schedule appointments, the better clustering gets.
- Enable Field Service Dynamic Scaling
Set up large-scale global and in-day optimization to efficiently optimize your entire Field Service dataset. With dynamic scaling, you don’t need to manually set up optimization groups and define boundaries between areas that need to be optimized together, or split data due to system limits.

