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.
Definitions of Time Constraints
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.
Types of Time Constraint
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.
Salesforce Object Manager: Job > Related Details > Job Time Constraints
Note: If you create time constraint via the Skedulo web app, the type will be set as SLA.
Optimize Using 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 am to 5:00 pm on that day.
- If the time constraint starts after Feb 1st at 9:00 am and ends four days later on Feb 5th at 5:00 pm, job allocations can be suggested any time between within this five day period.
Applied Time Constraints
Time Constraints in Job Details View
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.
Figure 1. Viewing a time constraint applied to a job. Note these fields are editable.
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.
Note: Both "Optimize" (VRP) and "Suggest" honor this hard constraint.
Figure 2. A job in job details view, with time constraints set. Note there is a start time conflict indicated by a red line with arrows in the swimlane.
Figure 3. A job with time constraints, ready to be scheduled in job details view. Note the swimlane scheduling restriction indicators.
Note: The small checkbox "Apply constraint" beneath the time constraint details is set to "on" when the time constraint is created in Skedulo. This setting is linked to the Salesforce JTC details flag named "Required," i.e., Apply constraint = Required. If the "Required" flag is not set the time constraint will be ignored by the "Optimize" and "Suggest" auto-schedulers.
Figure 4. A job time constraint in Salesforce CRM with the required flag turned off.
Time Constraints in the Scheduling Console
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).
Figure 5. A job in the scheduling console, with time constraints, highlighted.