Artificial Intelligence for Crowd

Source: This article refers to Artificial Intelligence for Crowd

In a Nutshell

This page provides help and instructions on how to troubleshoot and configure the Autoscheduler / Artificial Intelligence (AI) part of the Crowd. Assuming the previous steps were completed successfully, it should be possible to see the crowd widget on Workforce Management app.

this page is a first version of the Autoscheduling documentation, a final version is planned and will be released in Q1 2018

AI settings

In the WFM screen, the Autoscheduler can be configured in the Settings -> AI settings option:

Configurable constraints

The Autoscheduler constraints are configurable from the WFM interface. The constraints have two types:

  • HARD The constraint is necessary for a solution. A solutions is found if and only if it does not break the constraint.
  • SOFT The autoscheduler will do a best effort to minimize the constraint, but solutions can be found, even if they break the constraint. The order of constraints is important. Constraints on top of the list will have more weight.
Constraint Type Description Default
TOTAL_WORK_TIME SOFT Total work time should be minimized. This is a direct function of the driving time. ENABLED
OPTIONAL_SKILLS SOFT the optional skills should match if possible DISABLED
WORK_FRAGMENTATION SOFT the work should be as less fragmented as possible. For example, when there are 3 jobs and 3 resources, one resource should do all the jobs, if possible DISABLED
MANDATORY_SKILL_WASTE SOFT Mandatory skill waste should be minimized DISABLED
LUNCH_BREAK HARD Mandatory lunch break. It accepts the start, end and duration, as parameters. For example, a 30 minute break from work has to be taken from 11 to 14:30 (in compliance with Swiss law). DISABLED

The configurations options MANDATORY_SKILLS and CAPACITY_WASTE are deprecated and will soon be removed as options.

Other constraints

The following constraints are built-in.

Constraint Type Data trigger Description
Blacklisted resources HARD The Job (CrowdAssignment DTO) has a non-empty array in the field “resourceBlacklist” For example, resource id = “R123” cannot be assigned to the job with resourceBlacklist = (“R123”, ““R456”). In the context of the Crowd, this happens after a technician rejects an activity, to prevent that she is offered the same activity again
Maximum travel HARD The Resource (Person DTO) has a non-zero value in the field “maxDistanceRadiusMeters” Self-descriptive constraint. For example, a resource with maxDistanceRadiusMeters = 50000 and Home location in (47.502, 7.619) cannot do a job in (47.375, 8.534 ), which is more than 50 KMs away. The distance is measured in Euclidean Distance, a straight line from Point A to B as if the ‘Crowd flies’. If either the home location or the distance radius is null, the constraint will not be taken into consideration
Reachability by driving HARD Both the job and the resource have coordinates (mandatory) For example, the resource at (52.1, 13.2) cannot drive to (47.1, 9.5) in less than 2 hours. The maximum driving time allowed between activities is 12 hours
Mandatory Skills HARD The job has at least one mandatory requirement For example, resource with skills = (“AmazonFire”, “iOS”) cannot do the job with mandatory requirements = (“AmazonFire” ,”Linux”), but resource with skills = (“AmazonFire”, “iOS”, “Linux”) can do it
Earliest plan SOFT With all the conditions being the same, the Autoscheduler will try to plan the activity as early as possible.  

Address of technicians and activities

The address of the technician is taken from the Person of type ‘EMPLOYEE’, which is synchronized with the UnifiedPerson.

The activity address is taken from the Equipment, Business Partner or Service Call (in this order).

Both addresses should be geocoded. When the address originates from the ERP it may take some time to geocode it in the cloud. Sometimes up to hours.

Activity duration

In the WFM, the service call and activity do not have a field for storing the duration explicitely. The duration is the calculated difference between end and start time. In the example on the right there is an activity with a duration of one hour. The duration will never change, even after several planning and re-planing events.

Troubleshooting and FAQ

Q: Can we plan for internal technicians only?

A: Yes, can be done in one of the following ways:

  1. Remove all the technicians from the service provider. This can be achieved by setting “plannable resource” to false in the Person.
  2. Create a skill that only the internal technicians have, and require it in the activity

Q: Crowd is not finding technicians, but I know there is a technician living nearby with all the skills.

A: A possible and common reason is the lack of address or it not being correctly saved due to the Person and UnifiedPerson syncronization bug.

Do the following:

  1. Go to person (or Equipment/Business partner of activity)
  2. Remove the address
  3. Create again, make sure the corrdinates appear

Q: Is it possible to have all new activities go directly to the queue?

A: Yes, please create the following Business Rule:

Note: this business rule does not update search, which impairs the visibility of the process. The activity will not appear in the crowd queue widget. But it will be crowded nevertheless.

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request



Article is closed for comments.