Skip to main content
Free Agentforce workshops and AI Certifications: Learn more. Terms and conditions apply.

Plan with Global Optimization

Learning Objectives

After completing this unit, you’ll be able to:

  • Run global optimization for a schedule.
  • Set up a job to optimize the schedule nightly.
  • Describe optimization best practices.

Global Optimization in Action

Maria has set up optimization for her org. She’s now ready to test it to see what a difference it makes. First, she looks at the top of her Gantt to see how efficient her schedule is before optimization.

Maria’s Gantt with the KPIs and utilization highlighted.

Currently, Ursa Major uses automated scheduling. There are 70 hours scheduled, with an average travel time of 32 minutes, and a 78% utilization rate. That’s already a big improvement over the days when each appointment was hand scheduled by a dispatcher.

Optimize Your Schedule

But, Maria thinks that those statistics can improve. Here’s how she optimizes her schedule.

  1. Select Optimize from the dropdown in the list of service appointments.
    Optimize selected in the list of service appointments.
  2. Select the optimization options. Maria selects the following values.
    • Service territory: Los Angeles
    • Dates to optimize: Jan 6, 2025 to Jan 7, 2025 (Maria is using a time traveling org)
    • Service appointment to include: All
    • Scheduling policy: Customer First
    • Filters: None

      Optimize window with Maria’s values selected.

  3. Click Optimize.

Optimization takes time to run. You receive a notification that it’s started and can then check its progress on the Gantt.

Gantt showing optimization in progress

When the optimization finishes, Maria reviews her Gantt.

Maria’s Gantt displaying the KPIs and utilization.

Now Ursa Major has 73 hours scheduled, with an average travel time of 15 minutes and an 84% utilization rate. That’s a great improvement. Maria’s team can bring that sunshine to more customers, faster.

Optimize Every Night

Maria decides to optimize the schedule every night. That way, when her team shows up in the morning, they work from the best possible schedule.

Maria could optimize the schedule manually every night before she heads home, but she likes to automate whatever she can. That ensures that everything gets done without her intervention.

So she creates a recurring optimization job.

  1. From the App Launcher App Launcher icon, click Field Service Admin.
  2. Click Field Service Settings.
  3. Click Optimization and Scheduled Jobs.
  4. In the Optimization pane, click New Job.
  5. Enter the name of the scheduled job. Maria enters Nightly Schedule Optimization.
  6. Click Save.

She sets up her new job.

  1. Open the new optimization job. Maria clicks next to Nightly Schedule Optimization.
  2. Define the job’s scope. Here’s how Maria defines it.
    • Effective Territories: San Francisco and Los Angeles
    • Optimize in Stages: Maria toggles to optimize first one set of territories and then the next.
    • Territories per stage: 1
    • Time horizon in days: 2
    • Filter by criteria: None
    • Scheduling policy: Customer First
    • Email recipient: maria@ursamajor.com
    • Frequency: Recurring 
    • Select each month and day of the week
    • Hour: 1 am
  3. Click Save.
  4. To run the optimization job right away, open the optimization job and click Run Now.

Maria runs her optimization job in a sandbox to test it. The job times out after 2 hours. She decides to speed up things.

  1. From the App Launcher App Launcher icon, click Field Service Admin.
  2. Click Field Service Settings.
  3. Click Optimization, then Logic.
  4. In Global Optimization, select the run time to use for each service appointment. Maria selects Medium.
  5. Check the service appointments not to change during optimization. Maria checks In Progress, Cannot Complete, and Completed. It doesn’t make sense to move a job on the schedule if it’s already underway, completed, or can’t be done. So appointments with these statuses are pinned in place and don’t move during optimization. Likewise, appointments pinned by the dispatcher or agent aren’t considered for optimization.
  6. Click Save.

Her global optimization process speeds up considerably and finishes in a little under 2 hours. She’s happy with her optimized schedule and is thrilled to see that Ursa Major’s schedules are more efficient than ever.

Optimize Your Optimization

Because optimization considers many possibilities before creating the best schedule, it’s a resource-intensive process. It’s best to schedule global optimization jobs to run at night, as Maria does. But if your schedule goes awry, you can always rely on in-day optimization to help you fix it. There’s an optimization for every occasion, as we discover in the next unit.

Maria is excited to use global optimization, but wants to make sure that the optimization process itself is optimized. She comes up with the following list.

  • Minimize the time frame between an appointment’s arrival window start and arrival window end and the earliest start permitted and due date.
  • Limit the time horizon. Global optimization optimizes the entire schedule for the time period you specify. Setting a shorter time period means you have less to optimize, thus fewer changes to your schedule. Usually, optimizing from 1 to 7 days in advance is the best practice, as most schedules change frequently.
  • Limit appointments geographically by setting up territories that correspond with your business. That way, for example, only mobile workers who work in Los Angeles are included in the optimization calculations for Los Angeles appointments. If necessary, you can specify smaller territories, such as Beverly Hills or Burbank in Los Angeles.
  • Limit the pool of candidates available for each appointment using work rules.
    • Use a Match Territory work rule to assign service appointments to workers in the right territory.
    • Use a Maximum Travel from Home work rule type to set the maximum distance or travel time between a worker’s home base and their appointments.
    • Use an Extended Match work rule to schedule service appointments using custom criteria, such as assigning service appointments to mobile workers within a specific ZIP code.
  • Increase the number of seconds per appointment.
  • Decrease the number of pinned appointments, because pinned appointments aren’t moved during optimization. Pinned appointments reduce a schedule’s flexibility.
    • Make sure you only pin appointments when you really need to.
    • Unschedule appointments with rule violations because they’re pinned, too.
  • Run a health check to make sure that the data you’re optimizing is in good shape.

In this unit, Maria activated and set up optimization. She ran a global optimization, viewed her results, and created an ongoing nightly optimization job. Then, she ran her nightly optimization in a sandbox, and tweaked the optimization logic to make it run faster. Finally, she checked out ways to optimize optimization itself.

Share your Trailhead feedback over on Salesforce Help.

We'd love to hear about your experience with Trailhead - you can now access the new feedback form anytime from the Salesforce Help site.

Learn More Continue to Share Feedback