When you first create a job in the Skedulo web app, you can apply time constraints to it–so they become tied to that job. They indicate to the scheduler that the job must (or should if possible) be scheduled within the dates and times set.
In its rawest form, a time constraint is just metadata in a record, connected to a job that specifies either a single time, or multiple times in which a job can, and should be (preferably) scheduled. It always contains three fields: start before, start after, and end before. You could use any, or all three fields to create a time constraint.
An SLA is different. It's a very rigorous form of time constraint. In business terms, and from a terminology point of view, it is as the acronym suggests–a service level agreement. It usually references a starting time for the job and has a specific interval in which it must be completed, i.e., from the time you hear about the job, it needs to be scheduled within one, five, or ten hours to fulfill your contractual obligations, and meet your customers' expectations.
A timeslot is a variation of a time constraint. It has nothing to do with an SLA, or your ability to respond to a customer. It is more about constraining the time in which an appointment can be scheduled based on a booking window or time slot, e.g., a booking grid with several windows of time, showing you can book an appointment many times over within a specific window. Unlike an SLA, it has a certain elasticity to it, i.e., a one-hour assignment can be completed at any point within any four-hour block of time, it doesn't have to be completed at a specified time.
In Skedulo, there are two types of job time constraints:
SLA–this is a hard constraint, i.e., it must be done on this date/time. It is detailed and not flexible. The "Vehicle Route Planning (VRP)" and "Suggest" features must meet these criteria.
Timeslot–this is a soft constraint, i.e., it would be nice to meet these criteria. It has some flexibility–a time window of sorts.
To see which type is applied, open the job in Salesforce, click on the "Related" details tab. Scroll down to locate "Job Time Constraints."
When a time constraint (SLA) is configured, the intelligent scheduling engine will respect both the dates and times that are set. For example:
If the time constraint starts after Feb 1st at 9:00 am and ends on Feb 1st at 5:00 pm, job allocations can be suggested any time between 9:00 a.m. and 5:00 p.m. on that day.
If the time constraint starts after Feb 1st at 9:00 a.m. and ends four days later on Feb 5th at 5:00 p.m., job allocations can be suggested any time between within this five day period.
During the process of creating a job (via the "Create Job" page), there is an option that can be used to apply a time constraint. When this option is enabled (checked), the following fields are exposed:
By, After or Between.
Once the fields have been completed, the configuration must be saved.
Once time constraints have been specified and saved, they can be viewed under the time constraints tab in the job's details. If required, they can be changed or deleted here as well.
In the swimlanes, the time constraint is represented in the following way:
Diagonal hashed lines represent blocks of resource availability that should not be used to schedule the constrained job.
Start after time is a single thin black vertical line.
Start before is a single thin black line with arrows indicating the job should start before the line. Note: When a start time conflicts with a constraint, this line will turn red (see Figure 1).
End before time is a single black vertical line.
Once the job has been placed in the swimlane it can be manipulated by the scheduler.
Both "Optimize" (VRP) and "Suggest" honor this hard constraint.
If the option "Must start..." is used, an SLA is applied to the time constraint under-the-hood in Skedulo. This setting is linked to the Salesforce JTC details flag named "Required," i.e., Must start constraint = Required. If the "Required" flag is not set (i.e., Should start... is used) the time constraint will be ignored by the "Optimize" and "Suggest" auto-schedulers.
To identify whether a job has a time constraint applied, in the scheduling console, look at the job cards in the job list panel. If a job card has underlined times, hover over them using your mouse to see the SLA details (this tooltip appears once the job is scheduled with a start time and date).