This release introduces Time Slots, a new feature which allows techs to be scheduled at different times. Up to now, a Job or Quote could only have one Scheduled Time and Estimated Duration, Time Slots changes this. Time Slots can be thought of as shifts, meaning dispatchers can now plan different phases of work for different days, or even several slots on the same day. The Scheduled Date and Time and Estimated Duration controls in the job page have been replaced with a Time Slots matrix.
Previous scheduling controls
New Time Slots matrix
When the dispatcher has set the value of the Estimated Effort/Duration, they can start to build out the Time Slots on the job. The Planned Effort field will be calculated in real time as time slots and techs are added.
By comparing this value with the Estimated Effort/Duration, the dispatcher can see how close they are getting to their target time. Using the Time Slots matrix, users can divide the job or field quote into as many time slots as desired. Then the appropriate techs can be allocated to each Time Slot.
For example, the job below has two time slots:
Monday 10am-12pm - 3 crew members
Tuesday 10am-6pm - 5 crew members
Time Slots examples
During job creation, new crew members are automatically added to the matrix in the order they are added to the Crew table. When a job is saved, they are rearranged in alphabetical order. Time slots do not have to have crew members allocated to them. Thus, even if the dispatcher doesn't know what crew will be available, they can still schedule all the phases of a job, leaving some or all of the time slots empty. However, once a tech is added to a crew, then they must be added to at least one time slot. A full list of the new rules is below.
Time Slot Rules and Behaviours
All jobs must have at least one time slot
When a job is created, it has one time slot by default. This cannot be removed.
Does a crew member have to be on a Time Slot?
Yes, all crew members must be on at least one time slot
If there are crew members without time slots, then a validation error will be triggered when saving the job.
What are the default values for Scheduled DateTime and Duration?
The duration for all time slots defaults to 0h 00m
When a job is created, the scheduled date and time of the first time slot defaults to ‘Now’
All subsequent time slots will pick up the Scheduled Date and Time of the last-added time slot. This because it is assumed the dispatcher will plan the job from earliest Time Slot to latest. Defaulting to the date and time of the last added slot means that the calendar and time pickers will keep closely in step with the plan.
What happens to Time Slots when I add crew members to the job?
If a job has one time slot, any crew members added to the job will automatically be added to that time slot
If a job has more than one time slot, any crew members added to it will not be added to any time slots
What order are crew members shown in the Time Slots matrix?
As techs are added to the Crew Table, they will also be added to the Time Slots matrix in insertion order
After saving, they will be reordered alphabetically
Features and Functionality
Splitting Time Slots
We have added a Split Time Slot control, an efficient shortcut for creating repeated time slots. For example, a job from Monday to Friday that needs 4 hours per day can be created in just a few clicks. Simply create a 20h time slot for 9am Tuesday and choose to split it into 4 hours per day. Five time slots are automatically created for Monday to Friday, starting at 9am daily.
Split Time Slot button
Results of splitting a 20h slot into 5x4h slots
Merging Time Slots
When creating complex jobs with many time slots, it's easy to accidentally create duplicates - e.g. two time slots for Wednesday from 8am to 12pm. If the user tries to save a job with duplicate time slots, a warning is displayed asking if the user wants to merge the duplicates. The effect of merging is that one time slot will be created, and the crew members from all duplicates will be added to it. No data will be lost.
If all the time slots in a job or field quote need to be completely rescheduled (say pushed back from this Monday to next), this action can be done from the Scheduler. At this time, the job page does not allow bulk rescheduling of time slots. In the Scheduler, users can select all time slots in the job and move them back or forward in time.
Previously the Estimated Duration field allowed the user to enter the planned duration for the entire job. However, now that each Time Slot has its own duration, that definition no longer applies. The field has been renamed Estimated Effort/Duration and is there to allow the user to enter the estimated man-hours, or effort, of the job. So if the dispatcher knows that the total estimated effort of the job is 40 hours, that value can be set before building the schedule of Time Slots to give a target to aim for in their plan. Entering a value for Estimated Effort/Duration is optional.
Estimated Effort/Duration input field
Planned Effort field
Scheduled Duration gives the length of time in hours or days that the job is expected to last. It is calculated by subtracting the earliest scheduled date/time from the latest scheduled finish time.
If the duration is less than 24 hours, the value is given in hours and minutes.
If the duration is greater than 24 hours, the value is given in days, hours and minutes.
Scheduled Duration field
When the Jobs List is set to certain time window, any job whose time slots fall within that window will be shown. Even if a job gets completed earlier than planned, it will still appear in the Jobs List if the view overlaps with the original time slots. For instance, take a job scheduled Monday thru Friday. If the job is completed on Wednesday, it will still show on Thursday and Friday's Job List as it originally had scheduled time on those days. This behaviour is to prevent a job disappearing from the list in the middle of its scheduled time. If users do not want such jobs to show in the jobs list, they should delete the time slots scheduled later than the completion date (Thursday and Friday in the above example).
There are some exciting new features in the scheduler. Firstly, time slots will be represented by separate blocks. A job with a slot on Monday, Tuesday and Wednesday respectively will have a block per slot on each of those days. This gives detailed visibility of techs' schedules.
Time Slots represented by individual blocks in the Scheduler
Secondly, dragging and dropping in the Scheduler has been expanded to give the user much more granular control as explained below.
Dragging individual blocks
Up to now, the drag and drop behaviour was different for Job Lead and Crew Member blocks. For example, the whole job could be rescheduled by dragging the Job Lead's block, while crew members could only be assigned and unassigned by dragging and dropping. This release makes each time slot block (time block) independent of the others when doing simple drag and drop operations. Now when a user drags a time block, only that block will move. This allows very granular control of techs' schedules. To manipulate groups of time blocks - old behaviour - we have added a multi-select menu.
Dragging multiple blocks
To carry out bulk operations like rescheduling the entire job, reassigning all of a tech's time blocks, etc., there is now a multi-select menu. This is accessed by right-clicking on any block in the job you want to modify. The menu gives three selection options:
Select entire job
Select entire time slot
Select all blocks for the active tech
Then, with the desired blocks selected, the user can reassign or reschedule as appropriate.
Scheduler Multi-Select Menu
Note on multi-select:
The menu options will select all applicable blocks, even if some blocks are hidden from view. Take a job with blocks on Monday and Tuesday, where the user is just viewing Monday, if the user selects the ‘Entire Job’ option, then all of Monday’s and Tuesday’s jobs will be selected, despite Tuesday’s jobs not being visible.
There is also new behaviour when changing the duration of time blocks. As above, dragging the end of a block will change the duration of that block only. The duration of any block can now be modified, unlike before where only the Job Lead's duration could be modified. Of course, it is also possible to modify the duration in bulk. This is done using the multi-select menu as described above.
To help users align time blocks in the scheduler, a block will tend to snap to the scheduled time of other blocks on the same job. This helps prevent superfluous time slots being created and improves usability.
Job Lead Confirmation Dialog
Another change from previous behaviour is that a Job Lead's blocks can be reassigned to other techs without automatically making the new tech the Job Lead. But when the Job Lead's last block is reassigned the user will be prompted to confirm if they want to make the new user the Job Lead. This is also the behaviour when all of a Job Lead's blocks are reassigned en masse. This allows a lot more flexibility when scheduling time slots.
Unassigned jobs are those that have no Job Lead, and in some cases no crew. With the release of Time Slots, this will not change. However, it is important to note that even if the majority of time slots on a job are unassigned, when there is a Job Lead on at least one time slot, then the job is no longer classed as Unassigned. This means that the job will not show in the Unassigned Jobs List in the Scheduler.
Dragging and Dropping unassigned jobs
If a job has multiple time slots, when it is dragged and dropped from the Unassigned Jobs List onto a tech's row in the Scheduler, that tech will be assigned to all of the job's time slots. Overlapping time slots will be stacked in the browser.
Smart Scheduling Time Slot Jobs
Jobs with time slots can be Smart Scheduled. As before, Smart Scheduling crew jobs is not supported, so the best results are when scheduling a job with a single time slot. If a job with multiple time slots is sent to the optimizer, all the time slots will be allocated to a single tech.
API and Mobiles
This phase of the Time Slots release only introduces the changes to the webapp Job Page and the Scheduler. FieldAware API and mobiles will not respect Time Slots until a later release, so until then there are some key points to understand.
How will the API behave after this release?
Creating a job
Users working with the current version of the API create a job by specifying a number of properties, including Scheduled DateTime and an Estimated Duration.
After Time Slots are released, an API call to create a job will result in the automatic creation of a job with a single Time Slot whose Scheduled DateTime and Duration will be those set in the API call. All the crew members specified in the API call will be allocated to that one Time Slot.
Viewing a job
When an API client requests to view a job with a single time slot, the Scheduled DateTime of the job will be that of the time slot. Similarly, the Estimated Duration of the job will be the Duration of the time slot. When the API requests to view a job with multiple time slots, the Scheduled DateTime of the job will be that of the earliest time slot. Similarly, the Estimated Duration of the job will be the Duration of that time slot.
Updating a job
When the API updates the Scheduled DateTime of a job, there is a time difference between the original Scheduled DateTime and the updated value. For a job with multiple time slots, all time slots on the job will be moved forward or back in time by that time difference. As explained above, when a job is being created, the API client can set the duration of the single time slot by specifying the Estimated Duration. When the job is created however, updating the Estimated Duration will not update the Duration of that time slot. Only the Estimated/Effort Duration field will be modified.
How will the mobiles behave after this release?
Creating a job
The current version of the mobile apps create a job by specifying a number of properties, including the Scheduled DateTime. The Estimated Duration cannot be set on mobile devices. When Time Slots are released, mobile job-creation will result in the automatic creation of a job with a single Time Slot whose Scheduled DateTime is that set by the device. As before, the Duration of that time slot will be zero.
Viewing a job
When the mobile displays a job with a single time slot, the Scheduled DateTime of the job will be that of the time slot. When the mobile displays a job with multiple time slots, the Scheduled DateTime of the job will be that of the earliest time slot. If mobile users are in a TrueCrew-enabled business, all crew members will see the same Scheduled DateTime, even if they are on different time slots. The result of this is that Time Slots will not be individually dispatched. That is to say the job will be dispatched once, based on the earliest date and time. This is a known issue and will be addressed by a future mobile release. Note: The Duration of time slots is irrelevant on mobiles, as job durations are not shown in the current mobile apps on any platform.
Updating a job and new Role and Right
When the mobile updates the Scheduled DateTime of a job, there is a time difference between the original Scheduled DateTime and the updated value. For a job with multiple time slots, all time slots on the job will be moved forward or back in time by that time difference. However this is a potentially harmful action if carried out by a mobile user, so a new Role and Right has been introduced to allow mobiles to update the Scheduled DateTime of a Job. This Role and Right only applies to 1.27 mobiles or higher. The checkbox is disabled (grayed-out) in the webapp until all mobiles have upgraded to 1.27.
Role and Right for editing Scheduled Date and Time on mobile
The permission is denied by default, meaning that once the mobiles upgrade to 1.27 they cannot update the Scheduled DateTime of a job. An admin has to explicitly grant the permission in the Roles and Rights table.
1: Crew Members’ individual blocks cannot be rescheduled (moved left and right)
It should be possible to reschedule any time block in the Scheduler (i.e. move left & right). A known issue with this release is that Crew Members’ time blocks cannot be rescheduled. However any block belonging to a Job Lead can be rescheduled as expected. We are currently working on a fix for this issue.
2: Crew Members’ individual blocks cannot have their duration changed
It should be possible to change the duration of any time block in the Scheduler (i.e. drag the end of the block left & right). A known issue with this release is that the duration cannot be changed for a Crew Member's time block. However for any block belonging to a Job Lead, the duration can be changed as expected. We are working on a fix for this issue.
3: Job Lead Replacement Confirmation Dialog not being shown when moving Job Lead’s last Block
When a Job Lead's last block is reassigned to another tech, the Scheduler should display a dialog asking the user if they wish to make the new tech the Job Lead. This dialog is not displaying correctly in the current release. We are working on this issue and expect to release a fix in an upcoming release.