Service level management
Summary
The service level management functionary provides the ability to track the business duration within or without a specific schedule that a record may take between various conditions. The SLA definitions that are used to define the parameters of this feature can be run in a defined timezone and can then be started, stopped, paused or cancelled based on a condition. In doing so and depending on the status of a SLA, it can then update records, trigger notifications or otherwise based on its status.
SLA definition configuration
SLA definitions for a given Table can set up in a variety of different ways. It should be noted that more than one SLA can be run against a record at once. SLA definitions can be created and configured, minus the scripting fields, by the appropriate application administrators depending on the Tables application that the SLA definition is a part of. An example of this is an ITSM administrator can create and update SLA definitions for the Incident Table.
Field | Type | Example | Notes / Description |
---|---|---|---|
Name | String | P3 Incident resolve | The name of a SLA definition used to identify a SLA definition. |
Table | Table | Incident | The Table that the SLA definition will run its conditions off. Note that the Table will need to have the appropriate triggers to have a SLA start, which by default are any entities extended from work or interaction. |
Primary | Boolean | True | When a SLA is flagged as a primary SLA, it will be used to populate the SLA status of an associated record where the field exists. |
Type | Choice
| Resolve SLA | This field is used simply for reporting purposes to assist in filters or otherwise. |
Active | Boolean | True | This will determine if a SLA definition can be run and can generate a SLA record. |
Duration | Duration | 16h | The business duration (within the schedule) of time this SLA will run. It expects the duration with a number and then period of time (in lowercase) to designate the duration. d: day (24 hours), h: hour, m: minute and s: second. E.g. 4d 3m is the same as 4 days 3 minutes. Note: a 28 hour business duration (say 3.5 business days) will appear as 1d 4h. |
Time zone | Choice
| (GMT +10:00) Canberra, Melbourne, Sydney | This is the timezone when a SLA will run (when a schedule has been selected). |
Schedule | Reference [Schedule Table] | Weekdays 9 to 5 - with Australian public holidays | The schedule of the SLA, which is the source of what hours are considered a business day, public holidays, etc. Note: an empty schedule means the SLA will run 24x7. To configure a Schedule, please go to Schedule |
Threshold | Reference [SLA threshold Table] | Standard | This is a reference to a threshold table that determines at what percentage of an SLA's duration will change its progress level to warning. |
Start time field | Field | Created On | Allows the SLA to pull its start date/time from a field. If not specified, the SLA will calculate from the time it is triggered. |
Start condition | Condition builder | Priority is P3 | Medium | This is the condition when a SLA will start. It should be noted that the start condition needs to be true until the SLA is stopped. If it does not meet and the stop condition is not met, it will cancel the SLA. In situations where both the start condition and start condition script have been filled, both conditions will need to have been met. |
Start condition script | Script | This is the condition when a SLA will start. It should be noted that the start condition needs to be true until the SLA is stopped. If the condition is scripted it requires an answer variable to be true or false. Within the script you have access to the current record it is executing on via "current". In situations where both the start condition and start condition script have been filled, both conditions will need to have been met. | |
Pause condition | Condition builder | Current status is Incident - Resolved OR Current status is Incident - Awaiting external party OR Current status is Incident - Awaiting client action | This is the condition when a SLA will pause. In situations where both the pause condition and pause condition script have been filled, both conditions will need to have been met. |
Pause condition script | Script | The condition that is required to pause a SLA. If the condition is scripted it requires an answer variable to be true or false. Within the script you have access to the current record it is executing on via "current". This is the condition when a SLA will pause. In situations where both the pause condition and pause condition script have been filled, both conditions will need to have been met. | |
Stop condition | Condition builder | Current status is Incident - Closed | This is the condition when a SLA will stop. In situations where both the stop condition and stop condition script have been filled, both conditions will need to have been met. Once an SLA has stopped, it will not restart. If the start condition is met again, it will make a new SLA record |
Stop condition script | Script | The condition that is required to stop a SLA. If the condition is scripted it requires an answer variable to be true or false. Within the script you have access to the current record it is executing on via "current". In situations where both the stop condition and stop condition script have been filled, both conditions will need to have been met. Once an SLA has stopped, it will not restart. If the start condition is met again, it will make a new SLA record | |
Cancel condition | Condition builder | This is the condition when a SLA will cancel. In situations where both the cancel condition and cancel condition script have been filled, both conditions will need to have been met. | |
Cancel condition script | Script | The condition that is required to cancel a SLA. If the condition is scripted it requires an answer variable to be true or false. Within the script you have access to the current record it is executing on via "current". In situations where both the cancel condition and cancel condition script have been filled, both conditions will need to have been met. | |
Copy pause duration on cancellation | Boolean | If true, will copy the Pause duration from a cancelled SLA in the same SLA group. If 'Cancelation group' is set, the cancelled SLA must have the same value present for its 'Cancellation Group' value. If 'Cancellation Group' is not set, then the cancelled SLA must be of the same 'Type'. | |
Cancellation group | String | priority | See 'Copy pause duration on cancellation' |
SLA thresholds
These allow you to provide different levels when a SLA is considered at the warning stage. This allows you to have a different threshold level for different SLA definitions, depending when a SLA is considered at a warning stage or not. In doing so, this will allow you to trigger the appropriate notifications or otherwise based on the progress level changing. These allow you to change the percentage of the various levels, to ensure that the progress level changes when you require. It is recommended that only the warning percentage is updated to accomodate this.
As standard, the levels are as follows:
At the generation of an SLA, the progress level is considered "normal".
At 50 percent of the target duration, the progress level will change to "warning".
At 100 percent of the target duration, the progress level will change to "breached".
SLA Records
not modifiable directly, all updated via scripts, etc etc,
Field | Type | Example | Notes / Description |
---|---|---|---|
SLA definition | Reference [SLA definition Table] | P3 Incident resolve | This is the SLA definition that generated this SLA was generated from. |
Parent | Generic reference | INC0003498 | This is the record that an SLA is for and conditions are running against. |
State | Choice
| Completed | The current state of the SLA. The state will change as the conditions on the related SLA definitions are met or unmet. |
Target duration | Duration | 16h | The amount of business time that this SLA will run until it is considered breached. |
Progress level | Choice
| Normal | Depending on the threshold entries associated to the SLA definition, will determine what percentage it is until it reaches a certain progress levels. |
SLA met | Boolean | True | Determines whether the SLA went into a state of completed, prior to running over its target duration. |
Achievement percentage | Decimal | 7.0 | The percentage of the amount of business time has passed from the started at to the due at field. This is only calculated at the time an SLA is stopped. |
Active | Boolean | False | This determines whether or not an SLA is still running. As a general rule, completed and cancelled SLAs are not active, whilst running and paused SLAs are considered active. |
Business duration | Duration | 1 hour, 3 minutes and 37 seconds | The business duration that has occurred, within the bounds of the associated schedule. This is only calculated at the time an SLA is stopped. |
Elapsed duration | Duration | 1 hour, 3 minutes and 37 seconds | The elapsed duration that has occurred, which excludes the schedule. This is only calculated at the time an SLA is stopped. |
Stopped at | Date time | Wed, Aug 28, 2019 03:35:43 PM | This is the date and time when an SLA has stopped. This is when it would have hit the status of completed or cancelled. |
Due at | Date time | Fri, Aug 30, 2019 02:32:03 PM | The date and time that if the SLA is not completed, cancelled or paused the SLA will considered breached, unless the duration is changed in the meantime. |
Started at | Date time | Wed, Aug 28, 2019 02:32:03 PM | This is the date and time when a SLA has started. |
Paused at | Date time | Wed, Aug 28, 2019 03:35:40 PM | This is the date and time when a SLA has last paused. In situations where a SLA has paused multiple times, it will only track the last time it paused. |
Pause business duration | Duration | 3 seconds | The business duration that has occurred, within the bounds of the associated schedule where as a SLA has paused. |
Pause elapsed duration | Duration | 3 seconds | The elapsed duration that has occurred, which excludes the schedule where as a SLA has paused. |
Schedule | Reference [Schedule Table] | Weekdays 9 to 5 - with Australian public holidays | The schedule of the SLA, which is the source of what hours are considered a business day, public holidays, etc. Note: an empty schedule means the SLA will run 24x7. Refer here for Schedule configuration. |
Time zone | Choice
| (GMT +10:00) Canberra, Melbourne, Sydney | This is the timezone when a SLA will run (when a schedule has been selected). |
How they work
When a record has been updated, there are numerous things that are done in in sequence when there are active SLA definitions against a record. It is done in this order, to ensure that the status correctly reflects what the SLA definition has set. The process that occurs when a record has saved (and the appropriate trigger is in place) are:
It queries the list of active SLA definitions against the record's Table.
It queries the active SLA records against the record that was updated.
For every SLA definition it will then:
Determine if the parent record has met the cancel condition and / or cancel condition script for any of them. If it does, it will cancel the active SLA record.
Determine if the parent record has met the start condition and / or start condition script for any of them. If it does, it will generate the appropriate SLA record.
Determine if there are any SLA's that are currently paused, the assuming they no longer meet the pause condition, unpause them.
Determine if there are any SLA's that have met the stop condition and assuming any meet the stop condition, it will stop the appropriate SLA's.
Determine if there are any active SLA's that no longer meet the start condition (but are not already inactive) and cancel them.
Determine if any meet the pause condition that are currently running. If there is, it will pause them.
Then for the SLA definition that is flagged as the primary SLA (when it gets to that SLA definition or / and if it exists), it will update the appropriate SLA Status field on the parent record.
Please keep in mind that when viewing an SLA record's, the information on timings such as Due at and Started at, just like any other Date/Time field on the platform, will be displayed in your user's timezone. For example, if:
The current time is 9:30AM GMT+10 AND
A ticket is created AND
The ticket resulted in an SLA to start AND
That SLA is defined on a GMT+10 timezone to run for 12 hours with daily start time of 9AM and finish time of 5PM AND
Your user account is on a GMT+8 timezone
When viewed in the SLA's local time, i.e. GMT+10 timezone, the above should result in the SLA starting at 9:30AM and due at 1:30PM the following day.
However, when your user account (in GMT+8 timezone, 2 hours earlier than GMT+10) views the ticket's SLA, it will show that it started at 7:30AM and is due at 11:30AM the following day.
Servicely Documentation