Document toolboxDocument toolbox

.Escalations / Notifications v2019.1

The Escalations/Notifications sub-section lets Administrators set protocols through which Users are notified about predefined Events. This functionality is very flexible and allows PCR-360 to monitor your operations, automate your Workflow, and notify appropriate people when Events occur (or are about to occur). Determine the needed Escalations and Notifications. Once you have determined the Escalations and Notifications that you want to create, notifications should be created first, then Escalations.

By establishing a system of Escalations and Notifications, Administrators can ensure, for instance, that all parties to a Workflow receive Notifications when that Workflow is approaching its due date. Or, if a Service Desk item has been left untouched for an extended period of time, supervisors can be notified so action can be taken to address it. There are dozens of actions (or inaction) in the application that can initialize an Escalation chain.

Escalations and Notifications are executed by Events generated by activity in Service Desk, Inventory, Billing, system internals, etc. Events are generated by various conditions of the data as it changes (or doesn't) over time. For example, if the system receives an email that is registered as an Inquiry, an Event is generated. When the Inquiry is opened by a User for review, that also generates an Event. If the Inquiry is converted to an Incident or Service Order or is Voided, all of those generate their own Event.

In this section, we explain Escalations (the process that is triggered by a defined Event) and build custom Notifications that alert Users that the Event has already completed or will complete soon.

Notifications

Since Notifications must be built before they can be used in Escalations, we'll cover them first.

When building an Escalation, you define certain actions for Escalation to follow including sending a message to relevant parties. This section covers how to define a specific Notification to send; the Notifications Grid (see image above) allows you to add, edit, and delete those Notifications that can be sent by an Escalation.

Adding a Notification

There are a number of standard Notifications that come pre-built in PCR-360. Sometimes, however, these can be insufficient for an organization's needs.

To add a new notification that can be sent by an Escalation, click located on the Grid Toolbar.

In the Notification form (see image above), you must define several required fields.

First, select an Event from a list of possible events. The selected 'Event' in this field corresponds directly to the Start Event of an Escalation. When a User selects the 'Start Event' for an Escalation, only Notifications whose 'Event' matches the 'Start Event' specified for the Escalation are available to set in Sequence actions (explained below).

Next, set a Title and Subject and choose contacts the Notification can be sent to via the To, Cc, and Bcc fields.

Finally, enter content into the text editor in the field labeled Body. This represents the content of the Notification itself.

Setting "Hash Variables"

Notifications are essentially email/system message templates. You can fill in the generic text that is used each time the Notification is sent out, but you can also set placeholders for actual data to be set into the message before it is sent.

In the Notification's fields, you can use various text strings surrounded by "##" to hold the place for a piece of data replaces it when the message is generated & sent out. We call these "Hash Variables". Based on the Event selected for the Notification, the list of Hash Variables you can use changes (located in the drop-down list below the Body area). Please don't use any ##...## text patterns not found on the list. For example, if you add "##THIS_IS_NOT_VALID##" to the message body, it is replaced with nothing when the Notification is populated with data.

Select a Hash Variable from the list, click . If you want to add formatting, selecting content around it and using the editor's toolbar.

You can also add certain Hash Variables to the header fields (To, Cc, and Bcc). Type "##" in one of the fields to see what Hash Variables are available for that field. Note: you must select the Notification's Event before this works. You can add Hash Variables to the Subject, but you'll have to type them in by hand. Examine the list of available Variables and type them into the Subject (don't forget "##" on each end!). This is remedied in a future update.

Lastly, in order to make the Notification available for Escalations, check the "For Escalation" checkbox. Notifications can be used for several purposes but must be specifically made available to Escalations when intended for that purpose. If you assign a Notification to an Escalation Sequence, come back to uncheck the For Escalation box, you receive a prompt warning you the Notification will be removed from any Escalation Sequences to which it was assigned. If you continue, the Sequences may fail as they no longer have access to the Notification. Make sure you reassign Escalation Sequences to different Notifications or remove the Sequence before performing this action.

Saving the New Notification

Once all required are filled and other fields are completed as desired, click . The new Notification appears as an item on the Grid and can be selected when you build an Escalation with a corresponding Start Event.

Editing Existing Notifications

You can edit existing Notifications by double-clicking on any item on the Notifications Grid or by selecting an item and clicking located immediately above the grid.

You can make desired changes to the Notification. The Event assigned to the Notification cannot be changed, as it must match the Start Event for any Escalations that use it. If you wish to use the same template content for a different Event, use the form's Options menu, and click Copy to New Form:

This sets up the same content for a new Notification where you can now change the Event. NOTE: You may need to clean up Hash Variables you used in the original Notification that are invalid for the new Event you select. Once all required fields have been satisfied, click at the bottom of the form.

You can delete existing Notifications by selecting the appropriate item on the Notifications grid and clicking located immediately above the grid. Once a Notification is deleted from the Grid, it can no longer be selected as a 'Notification' when adding an action to an Escalation Sequence.

Notifications Log

To see a comprehensive history of all the Notifications that have been sent throughout your organization, open the Notification Log Grid. You cannot add, edit, or delete items on this grid, but you can double-click any item in the grid to see the content of the actual message that was sent:

Escalations

Escalations are automated tasks that execute a series of predefined actions once the task is started. The Escalation is initialized by an Event generated from some data change in the system. Escalations are defined by:

  • Start Event (required) – Event that begins the Escalation's life cycle
  • Abort Events (optional) – Events which can interrupt the Escalation to prevent unnecessary actions from occurring
  • Sequences (required) – Actions the Escalation takes during its life cycle
  • Criteria (optional) – A means of narrowing down the conditions under which the Escalation begins

Adding an Escalation

Navigate to the Escalations Grid: Open the Admin navigation tab, click the Escalations/Notifications node, and then click Escalations.

To add a new Escalation, click the add button located on the Grid Toolbar.

In the Escalation form, you must complete the required fields. Enter an "Escalation Name" so that the new Escalation can easily be identified.

Select a "Start Event" from the list of events. The Start Event is the purpose for the Escalation and, when triggered, begins the Escalation's life cycle. For example, a User could select Service Desk Workflow Assigned as the Start Event. In this instance, the Escalation process would begin whenever an SD item's Workflow is assigned to one or more Workers. Notice that the list of possible events includes both System events – those delivered as part of PCR-360 as well as User-Defined Events which may be created by you (discussed below).

You can also select one or more Abort Events. When a specified Abort Event occurs – say, Service Desk Workflow Completed – the Escalation process ends, no further sequences processes, and no further notifications is sent. A little later, we'll discuss creating Escalation Sequence Events: custom Events generated by an Escalation that can be used to abort other Escalations.

Saving the New Escalation

Once all required fields in the Escalation data entry form have been satisfied, click the Save New button . The new Escalation appears as an item on the Escalations grid. If the Escalation is set to "Active", the Escalation commences whenever its Start Event occurs.

Editing Existing Escalation

You can edit existing Escalations by double-clicking on any item on the Escalations grid or by selecting an item and clicking the Save New button located immediately above the Grid.

In the Escalation data entry form, you can define the item's inputs by following the protocol established earlier in this section. You cannot change the Start Event for an existing Escalation. If you wish to define an Escalation identical or similar without reproducing all the steps to create it, use the form's Options menu to create a copy:

Admin users can delete existing escalations by selecting the appropriate item(s) on the Escalations grid and clicking the Delete Selected button located immediately above the Grid.

Building an Escalation Sequence

Next, you can add a Sequence of actions that occur once the Escalation process begins. In the image above, see the tab labeled Sequence. To add an action to the Sequence, click the Add button located on the Sequence grid toolbar.

In the form (see image above), you must complete the required fields.

The Sequence # determines the order in which each action is performed by the application. For example, if a User were to add three actions to the Sequence and each action had a Sequence # of '100', '200', and '300', the application would execute the '100' action before moving on to the '200', etc. The application lets you enter arbitrary numbers so you can come back to add Sequences in the middle without having to renumber all the existing ones after it. You may also duplicate the Sequence # if you wish to execute two actions simultaneously.

You can select a Type of action to define what action is taken for the Sequence:

  • Generate Incident: A new Incident is added to Service Desk with the supplied CSR, Trouble Code, and Details from this Sequence action.
  • Workgroup: Uses the Workgroup from the Service Desk Workflow entry that triggered the Escalation (below) to send Notifications to each person in the Workgroup's Sequence tab.
    ]
  • Notify: Sends a selected Notification to a specified list of recipients (Notify To).
    ]
    A couple of tips for using this Type:
    1. You may leave Notify To empty to use the Notification's predefined recipients.
    2. If you set a list of recipients here, they are used instead of those set on the Notification.
  • Esc. Sequence Event: Generate a custom Event that can abort other Escalations or send out Notifications for specific conditions.
  • Service Host SOAP Escalation: Allow the User to provide raw data structures for a request body to a specific external Host/Method, using the Options field.
  • Service Host REST Escalation: Allow the User to provide raw JSON data for the request body in the API Options field, to be sent to the external API.
    • POST (Create), PATCH (Change), PUT (Replace), and DELETE are the supported Request Types. By default, Request Type POST will be used.

Sequence Events are best used with Criteria (discussed below ) so they are only generated when very specific data conditions are met. With these narrowed conditions, you gain more control over aborting certain Escalations or whether to send particular Notifications.

Time to Wait defines how long the Sequence action waits from the point it is initialized before it executes. For example:

  1. 10:00 : Escalation begins, Sequence 100 has TTW of "5m"
  2. 10:05 : Sequence 100 executes. Escalation increments to Sequence 200 with TTW "15m"
  3. 10:20 : Sequence 200 executes. Escalation increments to 300 with TTW "1h"
  4. 11:20 : Sequence 300 executes. Escalation completes.

You can monitor Escalation activity on the Escalation Log Grid (located in the same menu as the Escalation management Grid).

If you define Type as either "Notify" or "Workgroup", you are prompted to select a Notification that is sent. Select a Notification from the list of existing notifications by clicking on the Search Icon in the appropriate field. Available Notifications must match the Escalation's Start Event you specified.

  • For "Workgroup" Type, the selected Notification is sent to all members of the Workgroup on the originating object (Service Desk, Inventory, etc.).
  • For "Notify" Type, you must specify who should receive the Notification.

If you define the Type as "Generate Incident", Service Rep and Problem Description fields become available. A good example of a "Generate Incident" notification would be when maintenance for a piece of inventory is due, you can create an Incident Report so that there is a Notification and Workflow item created to ensure maintenance is started for that item.

Escalation Sequence Events

If you set Type to "Esc. Sequence Event", you are required to give the custom event a name. Only letters, numbers, and spaces are allowed here. The purpose of a Sequence Event is to make a custom Event that other Escalations can use as one of their Abort Events. Sequence Events can be tricky to understand, but they add even more power to the automation of your Escalation actions. This feature needs a little more detail to explain, but it helps to understand Criteria first.

Escalation Criteria

In addition to specifying a series of actions for an Escalation, you may want to restrict the conditions under which those actions are executed. Criteria act as a filter (think of the Grid's Search and Filter mechanisms) that prevent an Escalation from beginning unless the data provided matches its conditions.

On the Escalation form, click the Criteria tab, and click the Add button . On the Criteria form, you can set a single condition using a piece of Data (that is provided to the Event info) to match against, a Comparison operator, and the Value the data must match to pass and begin the Escalation. Based on the Data field, the Value may be an arbitrary text value, a Picker item, an option from a drop-down, etc.

If you add multiple Criteria rows, they are treated with an "AND" connection, meaning all the Criteria must match against the Start Event's data for the Escalation to begin. Be careful how you construct your Criteria so that you don't end up matching nothing and the Escalation never starts.

NOTE: If an Escalation is already in progress and you add/change/delete Criteria, the changes do not affect the progression of the current instance of the Escalation. Criteria are only tested for starting the Escalation.

Escalation Sequence Events

Sequence Events are most useful when coupled with Criteria (below) so that the custom event is generated when specific conditions for the event's Escalation are met.

There are currently two ways to utilize a Sequence Event once you've created it:

Set it as the Event that generates Notifications. Just as some System Events can automatically generate Notifications (alerting a Worker they have been assigned to a Service Order, sending an Administrator notice when a Purchase Order is approved, etc.), Sequence Events can do the same, utilizing the power of Criteria to generate the Notification to specific conditions. For instance, Jeff requested he not be sent Workflow Assignment emails because he has the Service Desk's "Assigned Workflow" Grid open with an auto-refresh Perspective so he can see new assignments as they come in. Set them as Abort Events on other Escalations. Using System Events to abort an Escalation aborts that Escalation regardless of the situation – which is often desirable. However, using Criteria gives you control over the conditions under which the Sequence Event is generated so the targeted Escalation only aborts under the defined Criteria. In this use-case, the chain of events looks like this:

  • System Event A starts Escalation A that has 3 Sequences.
    • One of the Abort Events for Escalation A is Abort Esc A (defined in Escalation B)
    • Sequence 100 executes, and Sequence 200 is now waiting for its Time To Wait. You'll see Escalation A in the Escalation Log with a Status of 'In Progress'.
  • System Event B is generated and triggered
    • Escalation B is watching for System Event B and, based on the Criteria defined for the Escalation, starts its Sequences
      • Its first Sequence is the Event Abort Esc A with TTW of 0m – it executes immediately.
        • The Sequence Event is triggered: the system looks for any Escalations that should abort because of this custom event. It finds Escalation A is currently running ('In Progress') and waiting to execute Sequence 200.
        • The system marks Escalation A as 'ABORTED', and the Sequence Event completes.
      • Escalation B has no other Sequences, so it is marked COMPLETE.
    • Escalation A Sequence 200 reaches its TTW and attempts to execute
      • The system first checks the status of its Escalation (A) and sees it has been aborted.
        • Sequence 200 is canceled
        • The system does not increment the Sequence for Escalation A. It is finished with Status "Aborted" in the Escalation Log.

Escalation Sequence Events Example

  • A customer emails the Service Desk, and the Inquiry is converted to an Order. The initial Workflow is assigned to Mary.
    • The assignment begins an Escalation ('Workflow Assignment – Action Required') that sends Mary an email.
    • A second Sequence waits 30 minutes before sending a message to her Workgroup Manager.
      • The Escalation already has "Service Desk Item Viewed" selected as an Abort Event. Once anyone opens the Incident, the Escalation stops, and her manager does not get an email.
  • Ten minutes after the Workflow was assigned, the Requester emails again: Please cancel the original request.
    • The CSR opens the Service Desk item and changes its status to "Void".
    • The actual results:
      1. Mary's manager doesn't get an email because the CSR opened the Incident, not Mary.
      2. The Escalation that would send an email to her Manager should be aborted.
      3. Mary should be notified of the voided item (but only when it's been VOIDED, not just that its status changed).

We have a problem here. Anyone who opens the Incident cancels the Escalation. Even if it's just the CSR making minor edits, Mary's manager won't get an email if she lets it go too long. But we don't want to remove the Abort Event altogether. We want the 'Viewed' event to abort this Escalation for a specific person'viewing the Incident, Mary. We also want to abort it if the CSR goes in and Voids the Incident, but only for that Status change.

How to accomplish these? Sequence Events. We can set up other Escalations with Criteria to generate an event when the SD Status changes specifically to 'Void' or when the person viewing the Incident is specifically Mary. We'll need two other Escalations for this because the conditions we need to meet are exclusive from each other.

  1. Add a new Escalation:
    • Name it "Abort for SD Status Void".
    • Select the ServiceDesk Item Status Changed for the Start Event.
  2. Add a new Sequence:
    • Select a Type of "Esc. Sequence Event".
    • Name the event "SD Item Voided".
    • Set the Time-To-Wait to 0m. This causes it to trigger as quickly as possible.
  3. Save & Close the form.
  4. This Escalation generates the Custom Event any time a Service Desk Item's Status changes. At this point, you are close, but not quite what you want. On the Criteria tab, add a new Criteria:
    • Give it a Description like "SD Status is Void".
    • From the Data list, select "SD_STATUS". Use the Equals Comparison option.
    • When the SD Status Value list updates, select "Void".
    • Save the Criteria.
  5. Save and Close this Escalation.

Now, any time a Service Desk Item's Status is changed specifically to 'Void', this Escalation begins. Its only Sequence generates the custom "SD Item Voided" event. Now, let's make sure the manager's email is only sent if Mary doesn't view the Incident she's assigned.

  1. Click  to start another new Escalation:
    • Name it "Abort for Assigned Worker Viewed".
    • Select "Service Desk Item Viewed" as the Start Event.
  2. Add a Sequence:
    • Name it "Worker Viewed SD Item".
    • Select Type Esc. Sequence Event.
    • Name it "Assigned Worker Viewed SD Item".
    • Set Time To Wait to 0m to make it trigger as soon as possible.
  3. Save and Close the Sequence form.
  4. Click the Criteria tab the click the add button  to start a new Criteria:
    • Give it a Description like "Viewed By Assigned Worker".
    • From the Data list, select the "global" variable "EVENT_CONTACT" – this is the person who initiated the event. In the case of this Escalation, it is the person who viewed the SD Item.
    • Select 'Equals' from the Comparison list.
    • To make this custom Event more reusable, we use another Hash Variable for the comparison value rather than specifically picking Mary. Type "##" in the value input and choose "##SDWF_WORKER##". This represents the "Service Desk Workflow Worker" Contact which we want to match the person who viewed the SD Item (EVENT_CONTACT).
  5. Save and Close the Criteria.
  6. Save and Close the Escalation.

Now, we need to use these specialized Sequence Events:

  1. Open the Escalation you'll want to abort using the custom event. In our example, "Workflow Assignment – Action Required".
  2. On the Abort Events list, scroll to the bottom. You'll see a group called "Esc. Sequence Events" with the new custom events listed. Check them and uncheck the generic "Service Desk Item Viewed" event because we require more specific conditions to abort this Escalation. Save and Close the Escalation.

There are now two custom events that can cancel this Escalation: one is a System Event, and the other is custom-generated from an Escalation using Criteria.

Exchanging Data With External Data Stores (REST)

Service Host REST Escalations are Specialized Escalation Sequences that can be used to interface with outside data sources. Read more here: Exchanging Data With External Data Stores.

Setting Up Escalations To Utilize The Service Host
Service Host REST Escalation Setup

This is a sample Escalation that will use the Service Host set up previously. It will execute using the "New Estimate Created" Event. We'll add a single Sequence and a single Criteria that must match for the Escalation to execute at all.

  1. Go to Admin > Escalations / Notifications > Escalations
  2. Open a new Escalation. You are now required to select a Start Event before adding Sequences. This is to help the Sequence form know what data variables it can use. Select "New Estimate Created" as the Start Event.
  3. Open a new Sequence on the Sequence tab. Set the Sequence # "10", and Time To Wait "0m".
  4. Select "Service Host REST Escalation" from the Type list.
  5. When the form updates, choose the Service Host you want to use ("Sample REST Host" in the example above).
  6. Set the "Host API Path". This will be the part of the URL that differs from one command to another.
    1. If the API uses a query string (as described above), do not include it in the Host API Path.
    2. If there is no additional path to the API URL, enter "/" as the API Path value.
  7. Set the "Request Type" to match the type of request you are going to make.
    • POST (Create)
    • PATCH (Change)
    • PUT (Replace)
    • DELETE
  8. In the "API Options" use the JSON editor to define the request to be sent to the API. This is a map of field names the API expects with values from PCR-360.
    Compare this sample to the "Add Order" command from our Service Host example:

    Users can also use items from the "Available Template Data" list to append variable placeholders to the Value you'll send. These variables (formatted as ##VARIABLE_NAME##) will be replaced with the actual value from the Event when the Sequence is executed. The selected item from the list will always be inserted at the current cursor position in the editor, but you can cut/paste them to other positions in the text as needed.
  9. UDFs are also supported in the Event Variables you can add to the API Value. When selecting one, there will be a variable name like ##UDF_12345## instead of the label. This ensures the unique UDF ID is used for looking up the correct value to replace the variable with. Should we use a label, and the label changes or contains errant characters, the variable substitution would fail.
  10. Save the Sequence and close the Sequence form. To use this Escalation to perform other tasks, including other Calls to the same or other APIs, set up separate Sequences for those actions.
  11. Click the Criteria tab and open a new Criteria. This operates the same as previous versions. However, you'll notice we've added UDFs that apply to the data object the Start Event is generated from into the list of data Criteria you can check before the Escalation begins its work. There are also additional Comparison types to choose from for better refinement of acceptable data conditions.
  12. Save a Criteria if desired.
  13. Finally, save the new Escalation.

With this sample, when a new Estimate is created in Service Desk, this Escalation will check any Criteria you set in place. If ALL of the criteria pass, the Sequence(s) will execute, sending data to the API you set up in Service Hosts.

Service Host REST Escalation Setup


This is a sample Escalation that will use the Service Host set up previously. It will execute using the "New Service Request Created" Event. We'll add a single Sequence and a single Criteria that must match for the Escalation to execute at all.


  1. Go to Admin > Escalations / Notifications > Escalations
  2. Open a new Escalation. You are now required to select a Start Event before adding Sequences. This is to help the Sequence form know what data variables it can use. Select "New Service Request Created" as the Start Event.
  3. Open a new Sequence on the Sequence tab. Set the Sequence # "10", and Time To Wait "0m".
  4. Select "Service Host SOAP Escalation" from the Type list.
  5. When the form updates, choose the Service Host you want to use ("Sample REST Host" in the example above).
  6. Set the "Target Host". This will define the Service Host that is going to be interacting with this Escalation.
  7. Set the "Target Method". This will define what endpoint the Escalation is going to be sent to.  The expected fields to be sent will be automatically populated.
  8. Fill in the "API Options" to be sent to the endpoint.
  9. Save the Sequence and close the Sequence form. To use this Escalation to perform other tasks, including other Calls to the same or other endpoints, set up separate Sequences for those actions.
  10. Click the Criteria tab and open a new Criteria. This operates the same as previous versions. However, you'll notice we've added UDFs that apply to the data object the Start Event is generated from into the list of data Criteria you can check before the Escalation begins its work. There are also additional Comparison types to choose from for better refinement of acceptable data conditions.
  11. Save a Criteria if desired.
  12. Finally, save the new Escalation.

With this sample, when a new Service Request is created in Service Desk, this Escalation will check any Criteria you set in place. If ALL of the criteria pass, the Sequence(s) will execute, sending data to the endpoint you set up in Service Hosts.

Viewing Results

Go to Admin > Escalations / Notifications > Logs > Esc. Sequence Log

A User can review the results of all Escalation Sequences here. Double-click a Log item to open it, the result data is laid out as a JSON object with various information about the Sequence execution. For an API Sequence, "curlResponse", "curlInfo", and "curlError" message keys are present. These can help identify problems in the setup of the Service Host or Escalations, or indicate successful execution of sending data to the API. Currently, no processing is done to the response data sent back from the API. It is simply logged here for reference. This may be enhanced in later versions.

Escalations Log

To see a comprehensive history of all the Escalations that have been triggered throughout your organization, open the Escalations Log Grid. A User cannot add, edit, or delete items on this Grid, but it serves as a handy tool for querying and reporting on all escalations.


Help Desk Portal - Email: help@pcr.com - Phone: 616.259.9242