OPAR - OPM Package ARchive

Browseable collection of plugins for the popular ticket system software Znuny and ((OTRS)) Community Edition.


EscalationPlus

Version
1.3.6
Uploaded by/on
dietmarb on 30 Dec 2013
Framework
3.0.x, 3.1.x, 3.2.x, 3.3.x
Links
Download
Description
An extension to allow a) scaling of escalation times by rules based on ticket type, priority, and due date as well as b) have ticket states excluded from being counted towards solution time. Both parts can be enabled individually. NOTE: This package also installs a modified version of Time.pm into Custom/Kernel/System/ to fix bug#10128.

Rate/comment this package

NAME

EscalationPlus - ticket type and priority based escalation times, solution time pausing

SYNOPSIS

This OTRS package adds flexibility to the built-in escalation mechanism to make it potentially more useful for agents when having to decide which ticket to handle next. Escalation times for tickets can be scaled by rules that consider ticket type, priority, and optionally (ITSM) due date, resulting in a unified ranking by escalation time. For the administrator this feature can greatly reduce the number of SLAs that would be needed to achieve the same effect.

In addition, the package supports the "pausing" of solution time while a ticket is in certain states and generally exposes first response time and solution time (even when no SLA is in effect), providing easy access to valuable statistical data.

Both aspects can be enabled or disabled independently.

For OTRS versions that do not contain bugfix#10128, the package includes a modified version of Time.pm that fixes calculation errors which may become more visible when using a Due Date for escalation.

DESCRIPTION

One way of using OTRS is by putting the SLA (visible for the agent by way of escalation time) in focus. Agents can concentrate their efforts on the tickets which are closest to breach an SLA either by first response time, update time, or solution time. To use this approach with the way OTRS (3.3) currently works, tickets with various types (Incident, Service Request) must be cleanly separated either by queue or by separate SLAs which can quickly grow in number. Priority (if used) does not influence any of these times, and Due Date (if used) often gets overlooked by agents.

EscalationPlus attempts to simplify using such an approach by supporting Escalation Rules that match by ticket type and then scale the configured SLA times by a factor determined by the ticket's priority. If desired, a Due Date set for a ticket can be turned into an allowed solution time that ends at the latest possible working time before the due date and thus makes it take part in the built-in escalation mechanism (and less likely to be overlooked).

Pausing the counting of solution time during certain states has long been on the wish list for OTRS by many. EscalationPlus not only allows pausing by matching the ticket state against a regular expression, but also allows to distinguish between Solution Date/Time (when the ticket was considered "solved" by the agent) and Closed (when the ticket was fully closed by customer, agent, or auto-close timeout), again by matching the ticket state against a pattern. Such a two-step approach to closing is frequently used for (software) defect lifecycles and sometimes makes sense also in a service desk setting.

Being valuable data for statistical analysis, FirstResponseInMin and SolutionTimeInMin are always included in a CSV export (e.g. from Ticket Search) and not only when an escalation time is in effect.

POST-INSTALLATION TASKS AND CONFIGURATION

Feature Control

All configuration is through SysConfig, group EscalationPlus, sub-group Ticket::Core.

This package uses OTRS' capability to selectively override functions in Ticket.pm. The functions in question have been placed in two separate Perl modules corresponding to the different aspects and can be individually enabled (default) or disabled with the following settings:

  • Ticket::CustomModule###007-CustomTicketEscalation

  • Ticket::CustomModule###007-CustomSolutionTimePausing

Escalation Rules (Mandatory)

All configuration is through SysConfig, group EscalationPlus, sub-group Ticket::Core.

By default, a basic set of escalation rules for Incidents, ServiceRequests and "Catch-All" is active. Two more rules are provided as empty templates. Values are illustrative only and most likely need tweaking for your specific situation and needs.

Each rule consists of a nested Key/Value structure. Rules are evaluated in order, the first one where the ticket type matches is taken:

TicketType

A regular expression for matching the type of the ticket. If the type does not match, the rule is ignored and processing continues with the next one.

Priority

A set of Key/Value pairs, with the key being a regular expression for matching the ticket priority and the value being a floating number with which all existing escalation times are multiplied. If none of the keys matches the ticket's priority, the default multiplier of 1.0 is used.

DueDateOverridesSolutionTime

A flag (0|1) that enables use of a Due Date for controlling the solution time. If set to 1, any Due Date causes the solution time being calculated to extend to the latest possible working time (determined by the calendar in effect) before the actual Due Date.

Update of Escalation Index (Mandatory)

For performance reasons, OTRS (re-)calculates escalation times on certain events only. With EscalationPlus, escalation times have a new dependency on ticket type and ticket priority as well as due date. Events which are raised upon a change of any of these values need to be declared as additional triggers for this calculation.

In SysConfig, config group Ticket, subgroup Core::Ticket, navigate to the setting Ticket::EventModulePost###900-EscalationIndex and add the following to the list of events.

NOTE: When copying from the PDF, make sure that the vertical bars are entered as such.

OTRS 3.2+:

|TicketTypeUpdate|TicketPriorityUpdate|TicketDynamicFieldUpdate_ITSMDueDate

OTRS 3.0/3.1:

|TicketTypeUpdate|TicketPriorityUpdate|TicketFreeTimeUpdate

Finally, to update the escalation times of all tickets to reflect the new settings, run

   $OTRS_HOME/bin/otrs.RebuildEscalationIndex.pl

Always Show "Escalation Time" Column in Ticket Overview

To enable agents to select tickets to work on by escalation time (i.e. the date/time when a ticket is considered being escalated), this value needs to be prominently visible before escalation is actually happening.

For OTRS versions starting with 3.3 columns are configurable by the user; for earlier OTRS versions, Escalation Time is not shown by default in ticket overview ("Small"), but can be made generally visible with just a tiny modification:

/opt/otrs/Kernel/Output/HTML/TicketOverviewSmall.pm (OTRS 3.0):

 292         # show escalation
 293         $Param{Escalation} = 1;     # <------- add this line
 294         if ( $Param{Escalation} ) {
 295             push @Col, 'EscalationTime';
 296         }

A more elaborate solution would allow subsequent configuration through SysConfig, Ticket::Frontend::Overview###Small with a new key Escalation and value 0|1

 293         $Param{Escalation} E<verbar>E<verbar>= $Param{Config}->{Escalation};

Additional Ticket States

To fully benefit from solution time pausing, it is useful to define a new pending state, e.g. pending customer. This state could be used while a ticket is waiting for customer input, with a reminder for the agent when the customer does not respond in time. See the OTRS Admin Manual on instructions how to define additional states.

AVAILABILITY AND DEPENDENCIES

This package is available through OPAR.

It has been tested under OTRS 3.0 and 3.3, although it can safely be assumed that it also works for any version in between (there have been almost no changes to the sections of code which are enhanced/replaced).

Until the fix for incorrect time calculations (http://bugs.otrs.org/show_bug.cgi?id=10128) is incorporated in the official OTRS release, this package also distributes a patched version of the module Time.pm and installs it as $OTRS_HOME/Custom/Kernel/System/Time.pm. A server restart may be required to have this module recognized.

TERMS AND CONDITIONS

This software comes with ABSOLUTELY NO WARRANTY and WITHOUT ANY SUPPORT.

Due to the mechanisms involved in building this solution, most part of the Software had to be taken literally from OTRS (Copyright therefore remaining with OTRS AG), with only small modifications by the author.

AUTHOR

dietmar.berg@thalesgroup.com

EscalationPlus has been inspired by the author's own professional needs as well as ideas published on IdeaScale, in particular

  • https://otrsteam.ideascale.com/a/ideas/search?query=PRIORITY-BASED-ESCALATION-TIMES

  • https://otrsteam.ideascale.com/a/ideas/search?query=ALLOW-SLA-PRIORITY-ASSOCIATION

  • https://otrsteam.ideascale.com/a/ideas/search?query=LINK-SLAS-TO-TICKET-PRIORITY

  • https://otrsteam.ideascale.com/a/ideas/search?query=PAUSED-SLA-COUNTING

Comments