Wednesday, December 19, 2012

SCSM: Call escalation with a little Orchestrator magic

systemcenter_2_2d9647a3

We were recently approached to provide a call logging and management solution to a business division that has absolutely nothing to do with IT. Of course, we decided that ServiceManager is the best fit – even though we are still busy defining other processed before we get to incident management.

The requirement was simple: provide a single web-based form to facilitate call logging with a couple of drop down lists and free text fields that can be given to users in the business. When a user logs a call using this interface, the user and the business unit should receive an email notification. When the call is closed, the user should receive a notification, and they should be able to send an email back asking for the call to be reopened if it wasn’t resolved to their satisfaction. Way easy, right?

We added a new Service Catalogue item for this business division, and mapped out the form fields. We created a new Incident template, with fields like assignee and support group pre-populated.  I had previously extended the incident class to cater for a Functional Area field, which we are also pre-populating with this template. This makes creating specific workflows for notifications really easy, and we set up some workflows to cater for the incident logged and changed notifications.

While one can happily use the Exchange connector for processing the emails to reopen the incident on user request, I wanted a little more flexibility in the process, so I decided to employ Orchestrator instead.

The runbook looks like this:

image

I prefer running these activities on a schedule, so the first step is simply telling it to repeat the process every 5 minutes.  (You can happily use the monitor mailbox activity instead)

We then look for the email in the mailbox, matching specific criteria, such as does the subject line include the incident reference number.

The next step is a little powershell script to simply pull out the incident reference number from the subject line, using some dodgy regex I slapped together. It looks something like this:

$input = '{Subject from Find Mail}]
$regex = 'IR(.……..)'
$matchResults = ([regex]$regex).match($input)
$ref = $matchResults.groups[1].value

I am sure you can come up with better regex, but this works like a dream for me.

From there, it is fairly straight forward. Find the incident and update it, and then move the mail to a folder for Processed emails.

Then, create another workflow in ServiceManager to notify the user that the call has been reopened, and Bob’s your uncle.

No comments:

Related Posts with Thumbnails