Technicians may be auto-assigned Workflow in Service Desk and Service Desk Actions. The application assigns a Worker and a scheduled date to each Workflow, the Order and Actions are processed separately from each other.

Scheduling Requirements

Service Desk Order or Action "Due Date" field. This field is set one the Manage Service Order or Action forms. 

The Workflow 'Estimated Time' field. This field is set on the 'Manage Service Desk Workflow' form.

Worker Assignment

The Auto Schedule process assigns a Worker to a Workflow based on several factors. To start auto-scheduling the Workflows click on the Auto Schedule button on the Workflow tab of Service Desk Order / Actions.

First, the Auto Schedule process gets all of the Workers in the Workgroup assigned to the Workflow. If the Workflow has a Location it will be limited to only the Workers by that Location. Next, the process organizes the Workers based on their workload for the day that the scheduling is set for. If there are multiple Workers with the "least amount" (a group of Workers with no workload for example) of workload, those Workers will be selected at random.

The process will then check the list of Workers and for an available for the time slot. Availability is determined by looking at the Worker's existing Workflow, Schedule, and Time Entries . The Worker can only be scheduled if there are no conflicting Workflows or Time Entry items and if the time to be scheduled is within the Worker's schedule.

If the Worker is available the Workflow will then be scheduled for that Worker. If the Worker is not available the process will continue to go through the possible list of Workers until all the Workflows are assigned.

Date Assignment

The Workflow's scheduled date and scheduled end date are set based on the End Date of the Order/Action and the Cushion set by the SLA . Depending on the TECH_SCHEDULING_MODE  constant will determine whether we are scheduling backwards or forwards in time.

FORWARDS If we are scheduling forwards in time the process establishes the first possible scheduling window by starting at the current date and adding the cushion amount (this would be the scheduled end date). For the "scheduled end date" it adds the calculated "scheduled date" by the estimated time to complete the Workflow. If a Worker is available to work within this time-frame it will schedule the workflow. If no workers are available it will reset the scheduled date to the date/time of the end of the last conflict and try again (going forwards in time). If it runs out of time (by going past the due date on the order/action) it can't schedule the Workflow.

BACKWARDS If we are scheduling backwards in time the process establishes the first possible scheduling window by looking at the end date of the order/action minus the cushion amount from SD_WORKFLOW_DEFAULT_CUSHION (this would be the scheduled end date). For the scheduled date it subtracts the calculated scheduled end date by the estimated time to complete the Workflow. If a worker is available to work within this time-frame it will schedule the Workflow. If no Workers are available it will reset the scheduled date to the date/time of the start of the last conflict and try again (going backwards in time). If it runs out of time (by going before the current date/time) it can't schedule the Workflow.

Related Fields and Constants