Best Matching Technician Overview

Attention: SAP Field Service Management documentation is now available at the SAP Help Portal. On 31 December 2020, docs.coresystems will no longer be available. Until that time, documentation will NOT be updated in docs.coresystems.


Within SAP Field Service Management, different planning modes are supported. Apart from manual and fully automated planning, a dispatcher can utilize the Best Matching Technician feature in order to support them with finding the best possible technician to perform a job. The main difference to the fully automated planning is two-fold:

  • first, the Best Matching Technician feature still has to be manually activated by the dispatcher (for this, select one job (activity or service call) from the backlog and hit “Find matching technicians”)
  • second, while automated planning is meant to assign the best possible technicians to a high volume of jobs (according to the criteria that is individual to every customer - refer to the following), Best Matching Technician is there to help you find the best technician for an individual job.

The feature yields the list of technicians suitable to perform a job in descending order. The extent to which a technician matches the qualification criteria (which might differ based on version and used plugins - see below) is displayed in 5 level ranking. Technicians are weighed against each other: the best fitting ones are displayed on top of the list with 5 dots, with less fitting technicians ordered below them with their corresponding ranking.

Over time, the Best Matching Technician feature has evolved to support similar concepts to automated scheduling and is now powered by the same plugin-based optimization engine.

Best Matching Technician - Two Versions

Currently, there are two versions of the feature available. One version is automatically available to every customer once their Account and Company are configured. The other version has to be enabled via Company Settings.

Standard version

The standard version of Best Matching Technician has static criteria based on which the best technician for any job is determined. Those criteria include:

  • Skills: only technicians that possess skills that are mandatory for a job are considered.

Technicians that do not possess non-mandatory skills shall NOT be filtered out.

The major limitation of the standard version is that neither distance to the job nor driving time required is computed. Thus, the standard version schedules all jobs one after the other without consideration of the time needed to commute from one location to the other.

The standard version always considers all of the technicians that are available in the system as a plannable resource.

Best Matching Technician with Plugins

The newer version of the Best Matching Technician gives the customer a flexibility to select the criteria which define the technician who is best fitting to perform the job. Best Matching Technician with Plugins utilizes the plugins available within the Company. Depending on the amount of plugins, Best Matching Technician shall have multiple tabs.

Each tab represents a different optimization plugin. Thus, by selecting a different tab, the dispatcher can select the technician matching criteria.

Each tab may therefore return a different set of suggested technicians based on the logic of the selected plugin. In case there are no custom plugins available within the Company, standard plugins can be used. For the list of the standard plugins please refer to the following.

Additionally, Best Matching Technician with Plugins inherits filter values from the planning board. Thus, if there are any filters set by the dispatcher, Best Matching Technician only considers technicians that are visible on the planning board.

Best Matching Technician with Plugins has to be enabled via Company Settings.

CoreSystems.ResourePlanner.BestMatchingTechnicianWithPlugins has to be set to TRUE.

The Best Matching Technicians with Plugins is also available via public ReST API.

Live Location

Best Matching Technician can use the live location of technicians to calculate driving distances to jobs. For detailed description of the feature as well as necessary settings see the following.

For Best Matching Technician, live location will be an important feature when technicians’ schedules are being filled gradually throughout the day. It can be used when there is at most a single job in progress, but no subsequent jobs are scheduled, OR Include booked technicians is unchecked. This is because Best Matching Technician generates the first best available slot for a job to be scheduled. If technicians’ schedules are full, the first available slot will be AFTER the scheduled jobs. Alternatively, booked technicians can be included - in this case, live location will be used to calculate the driving time, but a job can be assigned to a technician in parallel with an already scheduled and released job.

Considering Bookings and Planned Jobs

When looking for a technician to perform a job, Best Matching Technician considers the availability of technicians. The availability is defined by several factors: work time patterns, existing reservations (for example, sick leaves), and already assigned jobs. Standard behaviour only regards released jobs - so jobs that have been pushed to the mobile application, which have been released for the technician to perform - as occupied slots. However, when doing planning manually, the dispatcher might first like to construct the final version of the schedule using Best Matching Technician and only then release it. In that case, there will not be many released jobs on the dispatching board, but a lot of planned assignments. With the standard behaviour, planned assignments are regarded as free time, so the feature will suggest assignments that overlap existing ones. In order to avoid the overlap, planned assignments need to be considered occupied time by Best Matching Technician. To enable that, use the company setting CoreSystems.Optimization.AllowPlannedJobOverlap. By setting the value to FALSE you make sure that planned assignments are treated like released jobs (that is, no overlapping assignments are possible).


Both versions of Best Matching Technician feature have certain requirements in order to yield results. The following conditions have to be fulfilled:


Since the standard Best Matching Technician as well as the one that consumes plugins rank the plannable technicians by the distance from the technician to the job it is crucial that both technicians and jobs have addresses with valid coordinates maintained. Without valid geocoding for each address, it is not possible to calculate the distance between the technician and the job.

Driving Distance

Best Matching Technician uses an SAP FSM service that considers global road networks to calculate the driving distance. Currently, Best Matching Technician yields results based on the assumption that technicians are driving to the location of the job and uses driving speeds recommended for each part of the road network for the driving time calculation (worldwide except for China due to legal compliance reasons). Therefore, in order for the technician to be able to perform the job, the driving time together with the planned duration of the job cannot exceed a technicians’ work day duration.

Constraints: Due Dates, Work Time Patterns, Fixed Slot Jobs

Several constraints define the behavior of Best Matching Technician feature.

Due Dates

Best Matching Technician can be used for jobs that are due in the future as well as jobs that have passed their due date. The version that supports plugins offers selective handling of due date:

  • should due date of the job lie in the future the jobs shall be scheduled prior to the due date
  • should due date of the job lie in the past or within a 72h period from scheduling (the moment when dispatcher triggers the Best Matching Technician feature) the deadline until which the job has to be scheduled can be defined by the customers themselves. The configurations are done in Company Settings and are affecting the entire company. Thus, if the value has been set Best Matching technician will take this value to determine the execution deadline. The deadline will be calculated from the moment of planning by adding the value in days on top. The company setting to be used is SAP.FSM.WFM.ExtendDueDateInDays. Default value is set to 3 days, so 72 hours from the moment of planning. Therefore, if the value has not been adjusted Best Matching Technician will attempt to schedule all overdue jobs and jobs that are due within the next 72 hours within 72 hours from the moment of planning.

Work Time Pattern and Assignment Generation

The availability of the technician is defined by their work time pattern only. That means, other released jobs on a technician’s schedule are not considered a hard constraint. Thus, the feature returns technicians that match the selection criteria for the job, but might be booked for other assignments. To exclude booked technicians from the list of matching technicians for the job, make sure to uncheck the box “Include Booked Technicians”.

Best Matching Technician always looks for the earliest available slot for the job. If needed, the logic of finding first best slot can be overwritten for certain jobs in a custom plugin. That would enable scheduling of jobs in a predefined slot (for example, in case the appointment was specifically aligned on with the customer and the timeslot cannot be randomized). The criteria for the jobs in question will be reflected in a custom plugin.

Other Constraints

In case of the default option, Best Match looks for a technician that possesses the mandatory skills required for the job and is in close proximity to the job. In case of the version supporting plugins, the requirements to be met are described in the plugins page. In the case of the Best Match with Plugins, the maximum amount of technicians considered for ranking is 100. This applies to the manual operation in the Planning and Dispatching aplication and also to the API use.