Tracking Deadlines and Service-Level Agreements for Work Items

A Service Level Agreement, or SLA, is an average response and resolution times that your support team delivers to your customers.

Providing support based on service levels ensures that you're delivering measured and predictable service. It also provides greater visibility when problems arise.

You can define SLA service targets in Targetprocess so that you and your agents can monitor your service level performance and meet your service level goals. To set up the holistic process that could support the agreed service level targets you build the solution connecting multiple parts of Targetprocess together. In this article we'll describe available features, their purposes, and compare their capabilities. We'll also provide recommendations and best practices on how to configure and use them.

Work Items

Requests

In Targetprocess, a Request is a key work item used for interaction with customers. All support requests, from all channels, become Targetprocess Requests. A Request captures your customer's initial request for support and all the conversations your agents have with the customer along the way to solving their support issue. Every Request has its own unique numeric ID assigned. Customers expect that the agreed service level targets are met per every Request.

User Stories and Bugs

Use User Stories and Bugs to track work activities. User Stories and Bugs do not have support for direct communication with external users. To track the status of User Stories and Bugs and interact with your customers attach Requests to work items using Relations.

Real-Time Monitoring

It is possible to set up calculations of real-time SLA metrics per every work item. When calculations are configured, calculated values are displayed in the detailed views of the entities. The calculated values can be added to cards on views as well.

The following metrics are supported for real-time monitoring:

  • Time spent since creation
  • Time spent till first submitted comment
  • Time spent since last submitted comment
  • Time spent since last process workflow state change

The results of measurement can use more and less precise units such as hours and days.

Non-working hours, weekends, holidays cannot be excluded from the calculations at the moment.

The custom calculations are configured with the help of Calculated Custom Fields and Custom Formula Metrics. In both cases the results of calculations are displayed in the Custom Fields panel in an entity detailed view.

Custom Fields and Metrics can be added by Administrators. Find administration guides here: How to set up Custom Fields?Configuring Metrics.

Use Calculated Custom Fields when the custom calculation has reference to a present moment such as DateTime.Now. Use Custom Formula Metrics in any other case.

Use built-in Targetprocess fields as data source. Here are the available fields:

CalculationUnitField Name

on Views

Field Name

in formulas and filters

Date when an entity was createdCreation Date / CreatedCreateDate
Date when an entity was moved to In Progress* stateStart Date / StartedStartDate
Date when an entity was moved to a final workflow stateCompletion Date / FinishedEndDate
Manually set Planned End Date / Due Date / DeadlinePlanned End / Planned Finish / Planned datesPlannedEndDate
Last date when a comment has been submitted to a ticketLast CommentedLastCommentDate
Last date when a ticket workflow state has been changedLast State ChangeLastStateChangeDate
Time spent from move to In Progress* state to a final workflow state / to current moment of timedaysCycle TimeCycleTime
Time spent from creation to move to a final workflow state / to current moment of timedaysLead TimeLeadTime

More information: Lead and Cycle Time.

Formulas for Calculated Custom Fields:

Calculated Custom FieldUnitFormula
Time spent since creationdays(DateTime.Now - CreateDate).TotalDays
Time spent since creationhours(DateTime.Now - CreateDate).TotalHours
Time spent since last submitted commentdays(DateTime.Now - LastCommentDate).TotalDays
Time spent since last submitted commenthours(DateTime.Now - LastCommentDate).TotalHours
Time spent since last process workflow state changedays(DateTime.Now - LastStateChangeDate).TotalDays
Time spent since last process workflow state changehours(DateTime.Now - LastStateChangeDate).TotalHours

Formulas for Metrics:

MetricCustom Field TypeUnitFormula
Difference between planned and actual end datesNumberdays(EndDate - PlannedEndDate).TotalDays
Time spent till first submitted commentNumberdays(Comments.MIN(CreateDate) - CreateDate).TotalDays
Time spent till first submitted commentNumberhours(Comments.MIN(CreateDate) - CreateDate).TotalHours
Time spent till move to In Progress* stateNumberdays(StartDate - CreateDate).TotalDays
Time spent till move to In Progress* stateNumberhours(StartDate - CreateDate).TotalHours
Custom Deadline DateDate**CreateDate.Value.AddDays(2)

CreateDate.Value.AddHours(48)

Custom Deadline TimeStringCreateDate.Value.AddHours(48).GetDateTimeFormats('t')[3].ToString

* In Progress is the first state after Planned state when a Planned state is defined. Or, it is a next state after initial one otherwise.

** Day, month, and year of a date are displayed in Date custom fields. Precise time is truncated and not displayed.

Using conditional operators, multiple formulas may be combined into single advanced one.

Check for SLA violation can be performed right in the formula:

Custom Formula Metric:
IIF((Comments.MIN(CreateDate) - CreateDate).TotalHours >= 4, False, True)
IIF(CustomValues.Number("SLA Hours") >= 4, False, True)

In the example below, we'll calculate time spent since last submitted comment (if there is at least one comment submitted) or time spent since creation (if there are no comments yet).

Calculated Custom Field:
IIF(Comments.Count > 0, (DateTime.Now - LastCommentDate).TotalHours, (DateTime.Now - CreateDate).TotalHours)

With advanced formulas it is possible to add or subtract few days, counting only business days. Say, the entities are created on business days only, and the SLA resolution time is 2 days. Then, for Monday, Tuesday, and Wednesday the deadline is set 2 days later on the same week, while for Thursday and Friday it must skip a weekend and come 4 days later on the next week.

Get what day of the week a date is:

Custom Formula Metric:
CreateDate.Value.DayOfWeek.ToString()
CustomValues.Date("SLA Date").Value.DayOfWeek.ToString()

Add custom number of days depending on day of week:

Custom Formula Metric:
IIF(CreateDate.Value.DayOfWeek.ToString() == "Thursday" || CreateDate.Value.DayOfWeek.ToString() == "Friday", CreateDate.Value.AddDays(4), CreateDate.Value.AddDays(2))

A webhook may be configured to automatically set Planned End Date field for a work item as soon as it is created or enters some particular workflow state. Examples: Modify Planned Dates

Display Values on Views

The calculated values can be added to cards on views within Customize Cards feature.

Proactive Warnings

You should be proactive when it comes to SLAs rather than reactive. Being proactive means creation of alerts to the Support team. For example, the alert is created one hour before the SLA is breached, so the team knows that the clock is ticking but they still have time to meet the target. Highlighting tickets that fail to meet service level targets helps promptly identify and address problems.

In Targetprocess alerts are created with the help of color highlighting. Requests displayed in queue change their colors on the fly. For example, regular tickets are displayed as white. They become amber one hour before the SLA is breached. And they become red immediately after the SLA is expired.

Sending notification emails and creating sound alarms for alerts and reminders is not supported at the moment.

Use the following two features for proactive warnings:

  • Visual Encoding
  • Custom Mashup Extension

Visual Encoding

Visual Encoding highlights cards based on conditional rules. Set the rules based on built-in fields or based on custom calculations.

Visual Encoding rules are configured by view owners. Use syntax of Advanced Filters.

Visual Encoding based on built-in fields

Last State Change Date

In the example below, a SLA value is calculated per each request within built-in field named LastStateChangeDate. Say the SLA limit is 7 days. We'd like to highlight cards to ember one day prior to SLA target limit. And highlight red the cards that violate the limit. Use the following Visual Encoding rules for this purpose:

ColorVisual Encoding Filter
Red?LastStateChangeDate <= Today - 7(days)
Amber?LastStateChangeDate > Today - 7(days) and LastStateChangeDate <= Today - 6(days)

Planned End Date

In the example below, a due date is set per each work item within built-in field named PlannedEndDate. We'd like to highlight cards to ember one day prior to due date. And highlight red the cards that violate the deadline. Use the following Visual Encoding rules for this purpose:

ColorVisual Encoding Filter
Red?PlannedEndDate < Today
Amber?PlannedEndDate > Today-1(days) and PlannedEndDate < Today+1(days)

Visual Encoding based on custom calculations

Set up the custom field with result of calculation of selected SLA metric. Then compare the custom field value with selected goals in the conditional rules. Assign colors to each goal.

Custom Fields are configured by Administrators.

In the example below, a SLA value is calculated per each request within custom field named SLA Hours. Say the SLA limit is 24 hours. We'd like to highlight cards to ember one hour prior to SLA target limit. And highlight red the cards that violate the limit. Use the following Visual Encoding rules for this purpose:

ColorVisual Encoding Filter
Red?SLAHours >= 24
Amber?SLAHours >= 23 and SLAHours < 24

In Visual Encoding filters, names of custom fields are specified without spaces and quotes. Learn more about filters: Advanced Filters overview.

Visual Encoding rules based on Calculated Custom Fields may significantly slowdown performance of your system. Use Requests Classes Of Services mashup as a replacement whenever possible.

Custom Mashup Extensions

Requests Classes Of Services

Requests Classes Of Services mashup (custom add-on) calculates SLA values and highlights cards in views based on agreed service level targets. It doesn't require to set up any Calculated Custom Fields and Visual Encoding rules. All the calculations are performed in the custom front-end code.

The performance of the code is optimized. Whole your system works faster - compared with using Calculated Custom Fields and Visual Encoding.

2018-02-26_1728

In this particular case requests that are marked as yellow have not been replied for more than 20 hours, so we’d better hurry up. Red means it’s been there for more than 24 hours and needs to be replied asap. The green one was added less than an hour ago, so there is a chance to create a wow-effect and reply to the customer right-away.

Mashups are installed and configured by Administrators.

More information: Requests Classes Of Services.

Reporting

Reports help to analyze results of your support process retrospectively. You can view how well you are meeting your SLA policies.

Basic SLA policies measure initial reaction time for newly created requests. Advanced SLA policies may also limit cycle time / total processing time for requests. When a workflow is set up for Requests then some workflow states such as "Open", "Reopen", "In Progress" may be selected as target for measurements, while other ones such as "On Hold", "Pending", "Details Requested" may be considered as non-valuable.

The following calculated values and targets are supported for historical reporting:

  • Difference between planned and actual end dates
  • Time spent till first submitted comment
  • Total processing time
  • Total processing time in selected workflow states

These metrics can be calculated and displayed per each work item. It is possible to calculate averages with daily / weekly / monthly distribution. It is also possible to see results distributed per project, and per request category.

The reports can be built and browsed in Targetprocess. Manually export a report into a tabular or graphical file in order to use it in an external tool.

Tabular Reports in Targetprocess do not support Calculated Custom Fields. Export Views to CSV file or build Visual Reports to get values from Calculated Custom Fields in tabular format. Custom Formula Metrics do not have this limitation.

Difference between planned and actual end dates

The values are provided by Custom Formula Metric. They are calculated and set to the corresponding custom field for each work item. The report uses values of built-in fields as the data source.

Time spent till first submitted comment

The values are provided by Custom Formula Metric. They are calculated and set to the corresponding custom field for each request. The report uses requests and custom field values as the data source.

Total processing time

The values are calculated and set to the built-in field Cycle Time for each request. The report uses requests and field values as the data source.

Total processing time in selected workflow states

The reports of this kind use requests and historical data of state transitions as the data source.

More information: Processing Time and Cycle Time Reports.

Reporting on recurrent events

Some events when response is avaited by a customer may occur multiple times for the same Request. Examples of such events are:

  • Customer's comment submitted
  • Request's state changed from "Pending" to "Reopen"

Strict SLA policies measure reaction time for each occurence of any of these events. Breaches of such SLAs are not recorded by Targetprocess.

See Also

Still have a question?

We're here to help! Just contact our friendly support team

Find out more about our APIs, Plugins, Mashups and custom extensions. Join our community of passionate users and even discuss directly with our developers.