Geofencing for the Dynamics 365 Field Service mobile app
A geofence is a virtual perimeter around a specific location. Geofencing allows users to draw zones around places of work, customer sites, and secure areas. You can configure the system to trigger various actions when geofences are crossed by a person or an equipped vehicle.
In Dynamics 365 Field Service, the default use case for geofencing is to create a circular geofence around a work order's location and compare it to the changing location of field technicians as measured by their mobile devices running the Field Service mobile app. When a work order geofence is crossed by a field technician, a geofence event record is created and the geofence status is changed from outside to inside, indicating the field technician is inside the geofence. Another geofence event is created as the field technician leaves the geofenced area. Based on entering or leaving a geofenced area, a mobile push notification or custom workflow can be triggered.
In this article, we look at how to configure and use geofences by:
- Setting distance radius.
- Booking a work order to automatically create a geofence around it.
- Testing geofence events, as field technicians enter and leave geofenced areas.
Connect to Bing Maps in order to locate service accounts and work orders to later place geofences around.
Set auto geocode addresses to yes in order 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 in order to place geofences.
Enable location tracking, sharing, and auditing and test location tracking.
Step 1. Enable and test location tracking, sharing, and auditing
First, enable location tracking, sharing, and auditing and verify each technician's location is being tracked in Field Service. You'll know location tracking is working if the technician's location appears on the schedule board map and in location records in the geolocation tracking record type.
Step 2. Activate geofence processes
Go to Settings > Processes and ensure the following processes are in an Active state.
Update Geofence instance coordinates
If you have Enhanced Background Processing (Preview) set to Yes in Field Service Settings, enable the geofence Power Automate flows. With Enhanced Background Processing (Preview) with Power Automate Flows, the processes aren't required to be active.
- Go to https://make.powerapps.com/ and select your environment.
- Go to Solutions > Geofencing for Field Service.
- Enable the following flows:
- Flow – DeleteGeofenceWhenBookingIsCompletedOrClosed
- Flow – GenerateGeofenceWhenBookingIsCreated
- Flow – UpdateGeofenceInstanceCoordinates
Step 3. Configure geofencing settings
Go to Field Service > Settings > Geofencing Settings.
Enter a Unit of Measure and Minimum Radius. As demonstrated in the following screenshot, the smallest geofence we can create is a circle around a service account, with a radius of 25.59 feet.
Step 4. Configure geofence entities
Go to Field Service > Settings > Entity Configurations.
Then select the account configuration, included by default with the geofence solutions.
Enter the following information:
Entity: Select Account because work order locations are inherited from the related service account.
Latitude / Longitude: Choose the latitude and longitude fields on the account entity that holds the geo coded location; this setting will determine the center of the geofence.
Enabled As: Select Geofence because the account serves as a static location that a geofence will surround.
Default Radius: Enter a number to represent the radius of the geofence around the latitude and longitude of the account location. The unit of measure will be the unit chosen in the geofence settings in the previous step. In this example, the default radius is 328.08399 feet.
Next, go to the bookable resource configuration and enter the following:
Entity: Select Bookable Resource to compare the location of field technicians relative to work orders and service accounts.
Latitude / Longitude Choose the latitude and longitude fields on the bookable resource entity that hold the most recent coordinates of the location.
Timestamp Field Name Choose the location time stamp. This time stamp represents the date and time when the geofence location was updated. Geofence status will be updated only if the status is different than the current status and the time stamp is more recent than the time stamp associated with the current geofence status.
Enabled As Select Geo tracked because the bookable resource has a variable location that is compared against defined geofences.
Step 5. Book a work order
Next, book a work order using your preferred method. In this example, a work order is manually dragged and dropped to a field technician bookable resource. This resource has been designated as a User type, and has access to the Field Service Mobile app.
Booking a work order will trigger an asynchronous workflow that creates a geofence as long as the appropriate process was activated in earlier steps.
Go to Field Service > Settings > Geofences to view the newly created geofence.
The Geo tracked Record Status is set to Outside, meaning the bookable resource is outside of the geofence area.
Step 6. Enter and exit a geofence
Before traveling to the work order location, the technician is outside the geofence and an "exit" geofence event is created.
When a technician arrives at the work order location and interacts with the Field Service mobile app, an "enter" geofence event is created.
Additionally, this will change the related geofence Geo tracked Record Status to Inside.
When the technician leaves the geofence, another "exit" event will be created.
If you want to test entering a geofence but cannot physically travel to the location, you can expand the geofence radius to include your current location.
Geofence trigger filters
Geofence trigger filters can be used to define when a geofence event will trigger, relative to time values of the booking.
When geofencing is enabled, the geofence will be created for all bookings, which can result in performance issues if there are many pre-created or past bookings. Geofence trigger filters allow you to define a time window within which the geofence will be created and events can be triggered. Along with performance improvements, these filters can help avoid false-positive geofence events. By filtering to only relevant upcoming service appointments, you can avoid a scenario where a frontline worker inadvertently travels through a geofence that isn't currently their active engagement.
When trigger filters are enabled, you can enable one or two different time-based filters. Filtered fields include:
- Start Time
- End Time
- Actual Arrival Time
- Created On
- Estimated Arrival Time
- Modified On
- Offline Time Stamp
- Record Created On
You can then set a value in days before or after the current date for the filter.
In the scenario shown in the following screenshot, a geofence will only be created and trigger events for bookings that meet the following condition:
- Start Time of the booking is within the last day or next day.
- Custom geofences using entities other than accounts and bookable resources are supported.
- You can configure how far back in time a geolocation is valid. This is important for scenarios when a bookable resource synchronizes a geolocation to the server and then loses internet connection, making dispatchers unaware of the true location. The time threshold can be configured in Resource Scheduling > Settings > Scheduling Parameter > Geo Data > Geo Location Expires After X Minutes.
- Only circular-shaped geofences are currently supported.
Submit and view feedback for