Schedule with travel time and distance
Field service organizations often perform preventative maintenance, inspections, repairs, and other types of services by sending field technicians to multiple customer sites, and they must actively manage locations and routes. This makes understanding and minimizing travel time critical for a field service organization's success.
Using Bing Maps API by default, Dynamics 365 Field Service calculates the driving travel time and distance as field technicians travel:
- From their personal address to a work order location.
- From a company address to a work order location.
- From their current work order location to the next work order location.
- From their current location to a work order location (typically for high-priority emergencies).
In this topic, we will explore how travel time and distance are calculated and visualized for dispatchers during manual scheduling, semi-automated scheduling with the schedule assistant, and automated scheduling with Resource Scheduling Optimization (RSO).
Connect your Dynamics 365 environment to Bing Maps. For more information, see our topic on setting this up. This allows you to locate resources (field technicians) and work orders, and later calculate the travel time and distances between them.
Set auto geocode addresses to Yes. For more information, see our topic on setting this up. This allows you to automatically geocode accounts and work orders when addresses are entered. Geocoding an account or work order record populates latitude and longitude values, which are required for travel time and distance calculations.
After connecting your environment to Bing Maps, make sure your resources have defined starting and ending locations. Resources must have geocoded start and end locations in order to calculate travel times and distances. See the topics on setting up bookable resources and using resource types to locate resources.
Understand that only requirements for which Work Location is set to Onsite and for which latitude and longitude values are specified are eligible for travel time calculations.
In the following screenshot, a work order has Work Location set to Onsite; this is passed to the related work order requirement. When that work order requirement is scheduled to a resource, the system will look at the work location field, the location of the requirement, and the location of the resource in order to calculate travel time.
Visualize travel time on the schedule board
After a requirement is scheduled to a resource, the booking appears on the schedule board, and, if applicable, travel time displays preceding the booking.
In the following screenshot, the travel time to the customer's location is 23 minutes, and the estimated duration of the work order is 2 hours, giving the booking a total duration of 2 hours and 23 minutes.
If you don't want travel time displayed as separate from the working duration, clear Show Travel Duration in the schedule board configuration. This makes it so the travel time and working duration appear as a single solid block, as seen in the following screenshot.
As field technicians complete work, they can update the booking status to Traveling. The system tracks the duration of time the booking status is set to traveling and updates the Actual Travel Duration accordingly, though this will not be displayed on the schedule board.
When field technicians arrive onsite, they can update the booking status to In progress, indicating work has begun. The system tracks the duration of time the booking status is set to In progress and updates the Total Duration In Progress booking field. Finally, when the booking is complete (in other words, the booking status is set to Completed), the booking End Time is updated, and the booking length is updated visually on the schedule board.
Add travel time with manual scheduling
By default, manually scheduling a requirement by dragging and dropping on the schedule board will not calculate travel time and distance. This can be helpful for field service organizations that are not very concerned with managing or optimizing their field technicians' travel but simply need to manage appointment start times. Imagine a scenario where an emergency work order arises, and the dispatcher simply wants to communicate the time that a field technician will arrive.
For example, a work order requirement that is manually scheduled to a resource at 9:00 AM implies that the field technician should arrive at the customer's location at 9:00 AM; in this scenario, it's the field technician's responsibility to manage travel arrangements. In the following screenshot, an unscheduled work order requirement was dragged from the lower requirement pane to 9:00 AM for a resource. No travel time is calculated or added to the duration of the booking, implying that all 4 hours make up the working duration.
Organizations that operate in small contained geographic areas can add a generic 30 minutes to the work order durations either manually or by inflating the incident durations to roughly estimate travel but still utilize manual scheduling.
As of Dynamics 365 Field Service version 8.6, travel time and distance calculations can be added to bookings that are manually scheduled.
In addition to completing the tasks mentioned earlier in this topic, you need to go to Resource Scheduling > Settings > Administration > Scheduling Parameters and set Auto Update Booking Travel to Enabled.
This will add a travel time to the booking visualization on the schedule board, displayed by a line preceding the booking, and populate the Miles Traveled booking field (though this is not visualized on the schedule board).
In the following screenshot, an unscheduled work order requirement was dragged from the lower requirement pane to a resource at 10:00 AM. Similarly to before, this implies that the field technician should arrive onsite at 10:00 AM; the only difference is that the travel time to get there from a home, office, or previous job location is displayed before that time.
The auto-update booking travel feature will update travel time calculations as new bookings are made beyond the initial schedule. In the following screenshot, you see two onsite work order requirements scheduled back-to-back on the schedule board.
If a third onsite requirement is scheduled in between the original two, the travel time calculations are updated accordingly, based on the new route order. The order of the bookings is decided by the estimated arrival time, not the travel start time.
When updates (like in the preceding screenshot) take place, the booking start and end times are not cascaded for the rest of the day, as is evident by the overlap. Only the travel times and distances are updated. To ensure that the remaining bookings cascade, correct overlapping times, and fit inside working hours after changes, organizations should consider using Resource Schedule Optimization (RSO).
For more details on the Auto Update Booking Travel feature, see the “Additional notes” section of this article.
Add travel time with schedule assistant
The schedule assistant is designed to help dispatchers make better scheduling decisions, particularly based on travel times and distances.
Consider a scenario where a dispatcher wants to schedule a work order requirement to the field technician who is closest to the work- order location based on travel time.
When triggered from the schedule board, the schedule assistant shows resources within the distance radius filter, along with the travel time estimates from their location (home, office, previous job, or real-time location) to the work-order location.
This is predicated on the following:
- The work order requirement has a work location of Onsite.
- The work order requirement has a location (latitude and longitude).
- The resources displayed have defined locations.
This is also true when the schedule assistant is not triggered from the schedule board but by the Book button from a requirement.
In the following screenshot, travel time and distance calculations appear in the columns.
If the work order requirement has a work location of Location Agnostic or if the schedule assistant work-location filter is changed to Location Agnostic, then resources without locations will also be displayed, along with resources that do have locations, except that the booking will not calculate travel time.
In the following screenshot, the work location is location agnostic, and no travel times are displayed in results.
Additionally, the Auto Update Booking Travel feature (Field Service version 8.6 and later) updates subsequent bookings when using the schedule assistant.
In the following screenshot, you'll see a resource's schedule with time available at the beginning of the day, perhaps due to a cancellation.
When the schedule assistant is triggered, it finds the available time slot.
After it's booked, the travel time of the subsequent booking is updated as the location has changed.
Add travel time with Resource Scheduling Optimization
While the schedule assistant can help dispatchers make better scheduling decisions for individual requirements, Resource Scheduling Optimization (RSO) helps dispatchers make smarter scheduling decisions across many or all requirements at once. In regards to travel, this is the difference between reducing travel times and distances and minimizing them.
When the optimization runs and automatically schedules work orders or other requirements, the travel times display on the schedule board the same as with other booking methods. See the following screenshot for reference.
However, to better understand how RSO minimizes overall travel time, each RSO run (called a "request") displays a graph comparing total working minutes scheduled to total travel minutes for those optimized bookings. This can be compared to the same graph for requirements scheduled manually or with the schedule assistant.
If the RSO is set to schedule within working hours, it will calculate time to leave at the end of the day for resources to travel to their ending location, generally a home or office.
Consider traffic when scheduling
To help with scheduling decisions, current traffic patterns and accidents can be displayed on the schedule-board map alongside technician routes. To do this, select the traffic light icon at the top of the schedule board map. See the following screenshot for reference.
Travel time calculations do not reflect traffic patterns or historical travel times based on the time of day or year.
Scheduling based on real-time traffic is generally not applicable because most organizations schedule days or weeks in advance, and you can't predict real-time traffic ahead of time.
Bing Maps and other mapping providers can provide real-time and historical travel-time calculations, and this information can be called with Power Automate to calculate whether the current travel time is greater than the estimated travel time and automatically update the booking status accordingly.
If a field technician begins travel to their next work order and sees that the travel time is much longer than estimated by the system, they should indicate this with a custom booking status of "running late," so dispatchers can plan accordingly.
- By adding a travel charge to the service account of the work order, you can charge the customer a fee for travel time and distance as work orders are completed. See the topic on adding account-related details to work orders for more details.
- A field technician's current location as derived from their mobile device running the Field Service Mobile app can be used for travel time and distance calculations with the scheduling assistant. This is called Real Time Mode. See the topic on enabling and testing location auditing for more details.
- Field Service uses the Bing Maps API for travel time and distance calculations, but other APIs such as Google Maps can be used as well.
- By default, work order requirements have a work location of Onsite, but default work location can be edited for each schedulable entity by going to Resource Scheduling > Settings > Enable Resource Scheduling for Entities >, and then selecting Enabled Entity.
- The out-of-the-box functionality supports travel time and distance calculations only for driving, not walking or flying.
- If Auto Goecode Addresses is turned on, imported records will be geocoded, as will updates to the Address 1 field.
Auto Update Booking Travel for Field Service version 8.6 and later**
The Auto Update Booking Travel feature for manual scheduling needs two locations to work. For example, if a resource has a starting location, and the first requirement scheduled to the resource has a location (for instance, the work location is Onsite), then the travel time will be calculated and visualized. If the resource does not have a starting location (for instance, if the resource start location is Location Agnostic), the first onsite requirement scheduled will not have a travel time. However, if an onsite requirement is scheduled after another onsite requirement, then the feature has two known locations, and the travel time between the two requirements will be calculated even if the resource is location agnostic.
Here are a few more notes about the Auto Update Booking Travel feature:
The feature cannot be enabled or disabled based on specific users, schedule board tabs, or specific schedulable entities.
The feature only applies to the Hours view of the schedule board, and travel time and distances are not updated if the bookable resource booking form is edited manually, edited with a workflow, or if the bookings are imported.
If you have an existing onsite booking, the subsequent onsite booking calculates travel time from the previous booking up until the beginning of the next day's working hours, even if there are multiple hours in between the two onsite bookings.
The time that the requirement is dragged to the schedule board is the time that the resource will arrive onsite, and the travel time is added before that time. This is not configurable. For example, if you schedule an onsite work order requirement at 10:00 AM by dragging the requirement to the 10:00 AM time slot, and the feature calculates 20 minutes of travel time, then the travel will begin at 9:40 AM, and the resource will arrive by 10:00 AM.