I created a Service “Car Repair” but wanted it to require specific sets of resources. For instance, either one “Expert”, two “Novices” or one “Newbie” and a “Novice”, in that order of preference based on availability.
In order set up those requirements, I simply selected the “Resource Requirement” tab in its form. Then, added three subgroups, each containing the desired categories.
By selecting “Any” on the root level, it means that you only need one option to meet the requirements. If I had chosen “All” every one of them would have to meet the requirements. By selecting “All” in the option level, it means that we must have all lines to meet the requirements in order to have the option available. If I had chosen “Any”, one of them would be enough.
After creating the service and configuring its requirements, I simply created and booked a service activity. Note that you can associate a service activity with a case, for example.
After creating the activity, I pressed “Book” to allocate a resource for the service, and a scheduling window was displayed, with the possible available “teams” that meet the requirements. In this case, we only had one “Expert Car Technician” and he was available, therefore only him would show up, as it is the first option.
Once you book, the service activity is now scheduled, and it will appear on the schedule board, for the selected resource.
You can then go further and customize your system to let the resource know he is being scheduled an activity; with all the details you want.
The scheduling board also offers us a map view. By default, you’ll be able to see where both your resources and your organizational units are located, as long as they have geo-location coordinates predefined. Resources can either inherit the location of a “home” organizational unit you choose, or the coordinates of the user/contact it represents.
You can then go further and customize your system to let the resource know he is being scheduled an activity; with all the details you want. In this scenario, we can see two resources and one organizational unit on the map. The resources are both contacts that have geo-location coordinates predefined.
Now, that is good, but it can get way better. With a few configurations, we can have the service routes displayed on the map. I’ll show that down the road.
Another great thing about the Universal Resource Scheduling, is that it allows you to enable scheduling for any other entities (standard or even custom ones) for scheduling, like cases for example.
For that, you must hop on to the Resource Scheduling App, and open the “Administration” in the Settings area. There, click on “Enable Resource Scheduling for Entities” and choose the entity you want.
Following the publish, there’s few fields you might want to create on the Case (or whatever entity you want scheduling configured):
Latitude and Longitude
These fields represent the location of the customer and will allow us to see service routes on a map. Optimally, a simple development should be made for the case to inherit this data from the customer record. (Account/Contact).
You should configure them exactly as shown below.
This option set field is important to define how the case is scheduled, giving three possibilities: Onsite, Facility and Location Agnostic.
Onsite is used when the work is taking place onsite, for example, at the customer’s site (based on his lat/long coordinates that you defined).
Facility means that the work will be conducted at a facility. We will not go deep into this concept, but here’s a Microsoft’s doc explaining it https://docs.microsoft.com/en-us/dynamics365/customer-engagement/common-scheduler/facility-scheduling)
Location Agnostic is used when the location of the activity is irrelevant, therefore it won’t be shown in the map.
Once you have the fields created, and added to the case form, you must then go back to the Administration settings and double click on your configured entity.
The Booking Setup record will be opened, where you can do some simple configurations, that should end up looking like this.
Once this is all done, you can start allocating resources to solve cases through scheduling. Now, there will be a button “Book” on the configured entity’s form ribbon.
Then, just like with service activities, the scheduling window will be displayed with the available resources. It will give you a estimated arrival time, based on the base location of both the resource and the customer’s location, which is the destination.
After selecting the desired resource, the case will be displayed on the schedule board, assigned to him. Since we created the case as “Onsite” (and we do have the locations of both resource and customer) the most effective route will be shown.
An interesting feature about the schedule board, is that if you need to either change the status of an activity, rebook or substitute the resource, you can do directly there just by right clicking it.
Once you re-assign an activity, it will readjust the board and the route on the map with the new resource, as shown below:
Service Scheduling takes Dynamics 365 Customer Service to another level. It surely takes some initial time and effort to set everything up, adapting it to your business’s reality, but once it’s up and running it’s going to be a very helpful tool in ensuring the quality and the overall efficiency of your customer service.