Service Manager 101 – Focus on Incident Management

Excellent article on Incident Management for Service Manager!

http://blogs.technet.com/b/antoni/archive/2012/08/13/service-manager-101-part-1-incident-management.aspx

System Center 2012 – Service Manager 101: Focus on Incident Management

System Center 2012 – Service Manager (SCSM) includes Incident Management, Service Request fulfillment, Problem Management, Change Management, Release Management and Activity Management out of the box.  Most Customers like to start with Incident Management.  During my engagements out at customers (I am a Premier Field Engineer with Microsoft) I often hear of the need for a guide like this which pieces together all the initially required configuration.  Therefore I created this guide, and included many of the tips, best practices and additional guidance that I recommend to the customers I assist.  As time allows, I hope to produce similar guides like this for other areas of the product like Service Request Fulfillment. Any feedback, suggestions for new posts, or comments greatly appreciated.

TERMINOLOGY

In order to understand how to effectively configure Incident Management in Service Manager, there are some key terms that are helpful to understand, especially if you’re brand new to Service Manager.

An extensive official Microsoft Glossary is available here

Below are my personal definitions of some of the most significant terms for Service Manager, and in particular Incident Management:

Configuration item – An object such as a User or Computer, Service, Software Update, Printer etc. and other types of object.

Work Item – An item that is worked on such as an Incident, Service Request, Change Request, Problem or Activity.

Queue – This is one of the concepts that can be one of the most confusing in Service Manager, due to the differences with how Queues are implemented in other incident management systems.  In Service Manager, it is best to think of a queue as the criteria itself that defines a logical group of work items (such as incidents). An example of a queue in Service Manager would be ‘All priority 1 Incidents’.  This becomes important when working with the contents of a queue.  For instance, when creating a view in Service Manager, there is no option to select a specific queue to display the incidents that it refers to.  Instead you create a view and set the same criteria as you defined for the queue.   Although a queue cannot be picked and selected as the basis for a view, there are other reasons why it is important to define queues:

    • SLAs (Service Level Agreement
    • User Role
    • Escalation / transfer Purposes

NOTE: Do not confuse Queue with ‘Incident Tier Queue’ which is the name of the list used to define ‘Support Group’ values like tier 1, tier 2, tier3, helpdesk, infrastructure team etc.  There is more about this in the Support groups Section below.

Group – A group of Configuration Items such as a group of Computers / Users.  An example would be a group called ‘Production Exchange Server’s that contains the computer records of all the Production Exchange Servers

NOTE: A Group is a group of Configuration Items, A Queue is a group of Work Items

Support Group / Incident Tier Queue – This is a group of people that work on work items, for instance

    • Tier 1
    • Tier 2
    • Tier
    • Exchange group
    • App Group
    • SQL DBAs
    • Helpdesk
    • Field Technician
    • Infrastructure Team

Or you might have combinations of these such as:

    • Tier 1 Helpdesk
    • Tier 2 Helpdesk
    • Tier 1 Exchange
    • Tier 2 Exchange etc..

 

You can even create Parent and Child Subgroups such as:

Infrastructure

    • Infrastructure\Network
    • Infrastructure\Exchange
    • Infrastructure\Active Directory

OVERVIEW OF THIS GUIDE

Alright, so now you have the key terminology down, how do you get a working incident management system, configured to your organizations needs?

The rest of this blog post will walk you through 19 key areas to help get the incident  management system up and rolling.  I suggest each of these configuration sections are followed in the order that I lay them out below, as configuration and customizations carried out in preceding sections will be used in the following sections.

Here is an overview of the sections that follow:

1) Configure Connectors (Active Directory, System Center Configuration manger, System Center Operations Manager, System Center Orchestrator)
2) Create a Custom Management Pack
3) Review and Configure Incident Classifications
4) Configure Email channel Settings
5) Review and Configure Support Groups
6) Configure Impact and Urgency
7) Configure Incident Settings
8) Create (Incident) Templates
9) Create Queues
10) Create Views
11) Configure Notification Templates
12) Configure Subscriptions
13) Configure Workflows
14) Add Functionality to Notify on assignment/ re-assignment
15) Create Service Level Objectives (SLOs)
16) Create User roles
17) Configure Incident Creation from Email
18) Initial Configuration of Self-Service Portal (SSP)
19) Knowledge Base Integration

OPTIONAL 1) Create your own Incident Request Offering, allowing customization of the incident form on Self-Service Portal
OPTIONAL 2) Create Request Offering to allow users to raise incidents on behalf of other users
OPTIONAL 3) Enhance your Email notifications sent out by Service Manager

DETAILED GUIDE

TIP: Most of the time when you create customizations and configuration changes, you will be presented with a Summary page before you click Create.  If it is desired to document the configuration and customizations (which is often a good idea :-), the contents of these Summary pages can be copied and pasted.

1) Configure Connectors

(Active Directory, System Center Configuration manger, System Center Operations Manager, System Center Orchestrator)

Background: Configuring the Connectors is important because when you raise an incident, you want to be able to pick the affected user and affected / related configuration items from data that has been imported from the system.  Most people start with the AD connector to bring in basic information like User and Computer Data.  Configuration Manager gives some big added bonuses for Incident Management.  For instance, when you pick an affected CI (computer) all the hardware / software data will be present:

 

NOTE: In order for the software to appear, it is necessary to configure asset intelligence, as described here:

Another big advantage of connecting configuration manager is that when you raise an incident in the console and pick an affected user, it will show the possible configuration items that user is known to be a primary user of (which is also determined by configuration Manager based on logon frequency etc., and brought in via the Config Mgr connector)

Steps for setting up each of the connectors can be found here.

The requirement for accounts used for connectors can be found here

TIP It is Best Practice to specify a separate account for each connector.  Connectors each run under separate monitoringhost.exe processes in task manager, so specifying a different account per connector will assist in determining which process is running which connector.  This can be especially useful for troubleshooting purposes.

2) Create a Custom Management Pack (MP) and decide a naming convention

A custom management pack starts out as an empty bucket (xml file), within which much of your configuration and customization will be stored.  In most cases, one of the management packs supplied with the product will be suggested as the default container to store a configuration / customization in.  For instance, when you create an incident template, the default option for the MP to store it in is the Service manager Incident management Configuration Library:

It is best practice to store your configurations and customizations in a custom management pack (MP).  Here is why:

    • Helps distinguish your configuration and customization changes (such as your custom templates) from the ones included out of the box
    • Makes it easier to find you custom elements in dialogs, views etc. (using the ‘find’ / ‘look for’ functionality and the ability to sort using your convention).
    • Prevents extra dependencies being created on other management packs
    • Sometimes you may want to run manual SQL queries against the DB and it can be easier if you can narrow the query down using the managementpack ID, part of the MP name or part of the element (such as template) name.

TIP:  Consider grouping particular customizations into specific custom MPs.  For instance one of my blogs walks you through creating an incident on behalf of a user  and it may be preferable to define all the configuration for this in a specific MP.  This way it is easy to re-use the specific customization in other environments, or rip it out if you need to clean up or decide you no longer want this functionality.

TIP: Strongly consider using a naming convention also such as a short prefix.  For example I prefix all my customizations with Antoni. Whenever you create a notification template, call it something like Antoni Notification template for Notifying End User of resolution.   This is useful for distinguishing and makes it easier to find customizations as described above.

TIP: One more tip with naming and description – put as much information into the name as possible making it easy to figure out what a customization is for just by looking at the name, and use the description field.  For instance if you create a Review Activity template that has 2 reviewers in it called Antoni H and Emmett H, then a bad name would be ‘Review Template 1’ A good name would be:’Antoni review template containing approvers Antoni H and Emmett H – unanimous’.

3) Review and Configure Incident Classifications.

Think of Incident Classifications as your types of incidents.  A good way to start thinking about this is to think of incidents that are raised in your environment, how you would categorize some the most commonly raised incidents, and whether you need to sub-categorize for classification and reporting purposes.

This can becomes a trade-off between having very granular classifications for reporting / analyst purposes but then keeping it simple for End Users raising incidents from the Self-Service portal (as by default they will see the entire list of incident classifications when they go to raise an incident in the portal).

One great way of getting round this trade-off, is to create a new Incident Template, and then create a custom Request Offering based on it.  In the Request Offering you can then choose which fields the user will see on the incident form.  This allows you to hide the classification.  Additionally, you can set a default in the template.  And you may want to create and use a placeholder category  such as SET BY ANALYST).  Then for the end user incident entry, you could just offer a title (brief description), description (detailed) and opportunity to attach a file like shown below:

More detailed steps for doing this can be found in the optional 1 section, at the bottom of this post.

A number of Incident Classifications are provided out of the box, but these can be added to or reconfigured as needed in the Library>Lists>Incident Classification section of the console.

4) Configure Email channel Settings

This Setting will designate the server and return address that Service Manager will use for outgoing emails.  For instance if you configure a subscription to send an email when an SLA is about to breach, or if you configure a workflow notification to send an email when a new incident is created for a given support group (such as an incoming helpdesk) this is the email server that will be used, and the email address that the email will come from.  The address used here does not require a mailbox, so something like helpdesk-DoNotReply@contoso.com is valid.

To configure these settings, navigate to Administration>Notifications>Channels, double click email notification channel and configure the Server name and return address.

In my environment, I also checked Windows Integrated, rather than anonymous as this was required for my Exchange configuration

More detail on which setting to use can be found in this blog post, but check with your Exchange Administrator if you are unsure which setting to use.

5) Review and Configure Support Groups  (a.k.a Incident Tier Queues)

Note, in the vast majority of places, you will see Support Groups called just that in the console, but the one place you will see them referenced with a different name is in the Library>Lists section where the list is titled ‘Incident Tier Queue’.

Support Groups (a.k.a Incident Tier Queues but will be referred to as Support Groups from here on in) are the groups of people / teams that work on Incidents.

NOTE: The ‘Service Request Support Group’ list is for Service Request work items, rather than incident work items and is completely independent to the ‘Incident Tier Queue’ (Incident Support Group) List.

Here are some implications of Support Group configuration

  • The ‘Support Group’ field can be (and is often) used to wholly or partly define Queues.  In a small environment (or as part of an initial configuration), it may make sense to create queues that mirror the Support Group List. For example:

Support Group

Queue

helpdesk

Incoming Queue

Tier 1 Group

Tier 1 Queue

Tier 2 Group

Tier 2 Queue

Tier 3 Group

Tier 3 Queue

Infrastructure Team

Infrastructure Team Queue

  • When a Queue is created, you can select the Support Group as matching criteria like this:

  • Support Groups can be used to define views – You may define your views based on the selected support group.  This way you build a view showing all incidents with a given incident support group specified.
  • A Support Group can be specified in a template – As described above, you may have an incident support group that always deals with a particular genre of incidents, for example printing incidents (e.g. Tier 1 or Tier 1 – Printing).  Therefore you can create a ‘printing Incident’ template, and specify the Support group that handles Printing Incidents in the template.  The template can then be applied manually or automatically to set the value of the support group. (see section 8 below for more on this)  As a result, the Incident now matches any queue / view criteria specifying the selected support group.
  • Each support Group could have an associated distribution group that can be used in subscriptions – Once support groups are defined as needed, subscriptions could be created so that when a support group is set to Tier 1 Printing for example, an email is sent to the ‘Tier 1 Printing’ Distribution group.  More on setting a subscription like this up can be found in section 12 below)

If you wish to follow along with the exercises in the following sections, create 2 additional support Groups using the following steps:

5a) navigate to Library>Lists>Incident Tier Queue

5b) Click Add Item.

5c) Scroll down and find the newly added ‘List Value’.

5d) Click ‘List Value’ to highlight it

5e) In the name box, highlight the words ‘List value’ there and overwrite it with the Support Group name such as Helpdesk or Infrastructure Team.

NOTE: You will also come across the “escalated’ checkbox in the incident form.  This can sometimes be useful to include as criteria for SLAs, Queues, workflows and Subscriptions.  When you use the ‘Escalate or Transfer’ task on the right-hand side, the option is available to set this field to true:

6) Configure Impact and Urgency

In Service Manager, the Impact and Urgency fields are defined as follows, out of the box:

Urgency:

    • Low
    • Medium
    • High

Impact:

    • Low
    • Medium
    • High

These can be changed / added to or reduced as necessary.  The priority field is calculated automatically based on the combination of these fields as described in the next Section.

If you wish to change these values (not required for any of the exercises in this guide) use the following steps:

6a) navigate to Library>Lists>Urgency or Library>Lists>impact

6b) Click Add Item.

6c) Scroll down and find the newly added ‘List Value’.

6d) Click ‘List Value’ to highlight it

6e) In the name box, highlight the words ‘List value’ there, and overwrite them with the Urgency or Impact value you wish to use such as ‘Minimal’ or ‘Mission Critical’.

7) Configure Incident Settings

In Administration>Settings>Incident Settings, the following settings can be configured:

General Page

Default Support Group: This is the default support Group that will be set for the incident if one is not specified either manually or via a template.

Parent Incident Page

Allows you to control the behavior of parent>child incidents.  The level of control offered here (child incidents – Parent incidents) is more granular than that offered with incidents linked to problems.

NOTE: When a problem is resolved, the option is available to resolve any incidents associated with the problem.

Priority Calculation Page

This is where you determine the priority that will be set, based on the impact and urgency set.  If you customized the Impact and Urgency Lists as described in the previous Section, you will see your new values displayed here.

Note mine are set as shown here, but by default the grid is blank to allow you to set this up as required.

Resolution time page

This can be mostly disregarded as this was what we used in Service Manager 2010 prior to the new 2012 Service Manager SLA functionality being introduced.  This is why there is a checkbox to disable this functionality which will prevent the resolution time showing in an incident banner.

If you plan to use the new 2012 functionality, I recommend checking the ‘Do not use and show legacy Target Resolution time on Incident Form banner’ box to disable this ‘legacy’ option

Operations Manager Web console Page

This is important when you integrate Operations Manager with Service manager and have incidents raised from alerts.  This will enable the following tasks to navigate to the appropriate alert or place in health explorer that shows the problem from the Operations Manager perspective:

NOTE: You will only see these tasks when you click on an incident in that was raised by the operations manager connector

Incoming Email Page

This allows you to enable incoming emails to be converted into incidents.  This is achieved by creating an IIS SMTP virtual server, and then in exchange by creating a rule that forwards all emails sent to a given address (like helpdesk@contoso.com) to the IIS virtual server.  Service Manager watches the SMTP virtual server and converts emails found in the drop mail box location into incidents. Steps for setting this up can be found here:

Note for more Advanced Email Integration, the Exchange Connector is available:

Please note that the Exchange Connector is currently not supported by Microsoft.

8) Create (Incident) Templates

Templates are a great feature of Service Manager and help save time, whilst providing consistency where appropriate, between your work items. If you click Create Incident, it will open up a brand new Incident form like this:

If this seems like an overwhelming number of fields to fill out, or this becomes repetitive for commonly occurring types of incident, this is where templates help, in pre-filling a number of these fields out for you, consistently and automatically.  For instance from the above screenshot, if I click Apply Template on the right-hand side and choose the ‘Antoni Printing Incident Template’, it will fill out the fields for me as shown below:

TIP: Another consideration for your templates is using prompts in your template as shown above in the description field.

Once you have templates defined there are some cool things you can do with them:

  • For an existing Incident, Apply a template using the ‘Apply template’ task as described above
  • Create a brand new incident from a template using the ‘Create Incident from Template’ task.
  • Apply templates automatically in workflows.  For example a workflow could watch for incidents raised from the portal with the ‘Printer Problems’ incident classification and then automatically apply a template like the ‘Antoni Printing Incident Template’ example described above.
  • Create a brand new incident from a template using the ‘Create Incident from Template’ activity in System Center 2012 – Orchestrator.
  • Many customers have also found this link of interest before which allows quick-step incident creation from templates  

A good incident template to start with is a ‘default’ Incident template for your organization.  If an incident comes in via email or portal, you may want a configuration like this:

  • Priority – Low,
  • Urgency – Low,
  • Support Group = Help Desk
  • Incident Classification = ‘Set by Analyst’

The template would look like this:

In section 13 (Creating workflows) below, you will use a workflow to automatically apply this template for incidents coming in via email or the portal.

9) Create Queues

Your Queues will be needed for the following

  • SLAs – These are applied to Queues
  • User Roles – For security and Views, User Roles can be scoped down to certain queues so that certain users (belonging to a user role) only see the work items that match the queue criteria.  

In addition to specifying more obvious criteria for queues such as ‘Incident Classification’ (like Printing Problems) or ‘Support Group’ (such as Tier 1), you may like to combine these or create additional queues, such as the following examples:

  • Priority 1 Incidents – This will come into play in SLOs if say you created an SLO for the time it takes to resolve a Priority 1 incident.
  • Priority 1 Incidents to be assigned.
  • Priority 1 Incidents Assigned to Helpdesk.

Queues are created in the Library> Queues node.

The work Item type can be any of the work items such as incident, change request, activity etc..

But in this case we will use Incident

BUT WAIT!!! There is something that may be not completely obvious here, which is that you may want to use the Incident (Advanced) class.  This is true for example if you want to create an ‘unassigned’ queue (which is how many people typically think of a ‘queue’ in incident management systems).

Using Incident (Advanced) gives access to relationships, such that when you get to the criteria, you can drill down into classes related to the incident (such as Assigned to User) and then set the queue up with criteria like Assigned to User Username is empty.  Here is an example of this:

NOTE: The little arrow to the left hand side of Incident is only visible when you choose a combination class like Incident (advanced).  You will not see that if you just choose Incident.

Exactly the same principle applies to when you create your views, in that may need to use the ‘Incident (advanced)’ class, for instance if you want to create a view showing only unassigned incidents, which will be discussed in the next section.  Before creating everything you do with the advanced class though, please be aware it takes longer for the views to load, as described here

For now we will create 3 Queues:

  • All incidents (will be used in the SLA section later on).
  • All Infrastructure Team incidents (will be used in the views and User roles sections).  
  • All priority 1 incidents (will also be used in the SLA section later on)  

Create the “All Incidents’ Queue:

9a) Navigate to Library>Queues

9b) On the right hand side in the task pane click Create Queue

9c) give the Queue a name.  I will use ‘Antoni – All Incidents’

9d) In the Work Item type, click browse and select Incident

9e) change the MP to one of your custom MPs (I will use my Antoni Custom MP) and click Next

9f) In the Criteria page, leave the default of nothing selected and click Next

9g) click Create and then close.

To create the “All Infrastructure Team Incidents” Queue

9a) Navigate to Library>Queues

9b) On the right hand side in the task pane click Create Queue

9c) give the Queue a name.  I will use ‘Antoni – All Infrastructure Team Incidents’

9d) In the Work Item type, click the ‘…’ button and select Incident, then click OK

9e) change the MP to one of your custom MPs (I will use my Antoni Custom MP) and click Next

9f) In the Criteria page, in the Available properties box, start typing Support Group, check the Support Group box, click Add.

9g) leave the default of Equals selected and then in the red box select Infrastructure Team from the dropdown.

9h) click next, then Create, and then close.


To create the “All Priority 1 Incidents” Queue

9a) Navigate to Library>Queues

9b) On the right hand side in the task pane click Create Queue

9c) give the Queue a name.  I will use ‘Antoni – All Priority 1 Incidents’

9d) In the Work Item type, click the ‘…’ button and select Incident, then click OK

9e) change the MP to one of your custom MPs (I will use my Antoni Custom MP) and click Next

9f) In the Criteria page, in the Available properties box, start typing Priority, check the Priority box, click Add.

9g) change the ‘less than’ to Equals and then in the red box type 1.  It should look like this:

9h) click next, then Create, and then close.

10) Create Views

A number of useful views are provided out of the box in the work Items>Incident Management area of the console.  If you have completed some of the customization described above (like creating queues, support groups etc.), then you are likely to want to create some of your own views.

Many times you will want to use relationships to determine the contents of a view.  For example, to show all unassigned incidents, you could set up a view using the ‘Incident (Advanced); class and then specify Assigned to User, username ‘is empty’.

However although this will achieve your objective, views based on the Incident (Advanced) class may be slow to load.  This is where the ‘Incident (typical)’ type projection can help as it loads a lot less related items that the Incident ‘advanced’ class.

The one consideration of using this class is that because it is in an unsealed Management Pack (the MP), you cannot reference it in another Unsealed MP (such as your own Custom MP that you may be storing all or some of your customizations in.  Therefore the way round this is to re-create the type projections in your Unsealed custom MP where you will be storing the views or queues that use these type projections.  More detail and the sample code required to do this is available here. This requires some custom xml editing, but you will likely find the performance improvements makes the time investment worthwhile (and your analysts using these views a lot happier 🙂

Initially you may like to start out using the Incident (Advanced) class, but just be aware of this performance consideration.

11) Configure Notification Templates

There is a strong likelihood that you will want users to be notified in situations such as the following:

  • Notify a helpdesk or support group that handles incoming incidents when a new incident is created
  • Notify an end-user that their incident has been resolved.  

Before Creating these subscriptions, it is a good idea to create notification templates. The notification template will determine what is in the subject and body of an email sent by a Service Manager Subscription.

So for instance, in your email sent to the helpdesk, you would need it to say something like Dear helpdesk, a new incident has been created for the helpdesk with the following details.  And then there may be a table showing appropriate fields like this:

00008

For the email sent to an end user confirming resolution you would want something like, Dear [end-user first name] your incident has been resolved.  And then maybe a table containing different fields.

So this means that you need a different notification template for each of these scenarios.

NOTE: Notification Templates are stored under Administration>Notifications>Templates, NOT under Library>templates with the ‘work items’ templates

TIP: Have a basic Notification Template just with the word ‘test’ in the subject line or body and use this when you initially create a subscription / or workflow that sends a notification. This will allow you to test the workflow / subscription functionality, ruling out any potential problems with the template.  This is especially helpful when you start adding variables to templates and are unsure if the variables are not appearing correctly or something else with the template is preventing the notification from being sent.

TIP: If you use HTML, don’t forgot to check the ‘Send as HTML’ check box

TIP: If you’re not proficient in HTML, you can let Microsoft Word do a lot of the work for you by creating a word doc with a table for example, and then save the document as a web page. Once you have the HTML, you can paste it into the notification template, stripping out anything not needed and replacing the placeholders you created with the actual variables, using the insert button.  This is described more in the Optional 3 section of this blog post.

TIP: Create Generic Notification Templates where possible.  For example instead of creating a notification template that says ‘A new incident has been placed in the tier 1 Queue’, create one that says ‘New Incident in Queue’.  This way notification templates can be more likely reused in multiple subscriptions / workflows.

Steps to Create a Test Notification Template

11a) Go to Administration>Notifications>Templates.

11b) On the right-hand side click ‘Create Email template’

11c) Give the template a name.  I will call mine ‘Antoni Test – Test in Subject and Body – Incident’

11d) Under Targeted Class, click Browse and Choose Incident

11e) Change the MP to a Custom MP.  I will use Antoni Custom MP

11f) In the template design type the word ‘test’ in the Message Subject and also in the message body

11g) Click Next and then in the Summary page, click Create.

Steps to Create a Notification template for Incident in Q

11a) Go to Administration>Notifications>Templates.

TIP: You can either create a new template from scratch, or there is an option on the right to Duplicate so you can use one of the out of the box templates as a starting point.  In this exercise, we will duplicate and re-use the out of the box ‘Assigned To User Notification template’ This will give you the Incident ID, TargetResolutionTime, Priority, AffectedUser and Incident Classification as freebies 🙂

11b) Click on the ‘Assigned to User Notification Template and then on the right hand side, click Duplicate:

11c) Change the dropdown to select one of your custom MPs (I chose Antoni Custom MP)

11d) the template will be duplicated and saved as ‘Assigned To User Notification Template – Copy’ in the selected MP (It may take a moment for it to show up in the templates view, so refresh if needed.

11e) Double-click the ‘Assigned to User Notification Template – Copy’ and rename it.  I renamed mine to ‘Antoni – Incident in Queue (Support Group)’

NOTE: The Targeted Class is Incident which is what we want in this case.

11f) In the message Subject, change Incident assigned to ‘Incident in Queue’

11g) Take out the first two lines (from Dear to FirstName$) as we intend this notification template will go to a Distribution Group Email Address, rather than an individual

11h) Change ‘The following incident has been assigned to you:’ to ‘Incident placed in Queue’.

11i) Optionally, take out the Target Resolution Time string (from Target Resolution Time: $Context/Property[Type=’CoreIncident!System.WorkItem.Incident’]/TargetResolutionTime$) because chances are you won’t use this functionality and will use the new SLA functionality instead as explained in Section 15 SLOs.

11j) Also, Optionally, change the Urgency from Medium to Low or High.  It should look something like this

11k) Click Ok to save, and then Close once complete.

NOTE: If you include any HTML in the template, be sure to click the Send as HTML checkbox.  In this case we are not using any HTML so we will leave it unchecked.  Please see Optional 3 section of this blog post for details on creating more sophisticated notification templates with HTML.

12) Configure Subscriptions

In Service Manager, there are 3 places you can configure Subscriptions

      • Administration>Subscriptions>Recipient
      • Administration>Workflows> Select People To notify
      • Administration>Subscriptions>Related Recipient

A good rule of thumb to go by is that if you wish to use a hardcoded DL / individual email address then you will configure this under Administration>Subscriptions. .

If you need service manager to dynamically figure out and notify a stakeholder such as Affected User and / or Assigned to User, then you will probably want to use a workflow.  When created in the Console, workflows can be created for the following classes:

  • Release Record
  • Desired Configuration Management  
  • Service Request 
  • Incident 
  • Change Request 
  • Activity  

The Related recipient is an interesting one where occasionally you will find a scenario this is appropriate to use. One such example is SLAs when you wish to notify an assigned to user that an SLA is about to breach (enters the warning status).  SLAs need to be created using the ‘Service Level Instance Time Information’ class which is why you cannot configure this in the workflows section of the UI (because workflows can only be created for the bullet list of classes shown above).  Also in the case of SLAs, chances are you will want to notify a stakeholder (like the Assigned To User) that an SLA is about to breach in addition or instead of a hard-coded individual or team DL. Therefore within the subscription, you will specify ‘Related recipients’ rather than ‘Recipient’ This is an example of where the ‘related recipients functionality can be used effectively.

One consideration of the Related recipients functionality is that the same template has to be used for the whole subscription, whereas in a workflow, you can specify one notification template for the affect User, a different notification template for the assigned to user etc. Not that bigger deal though as you can just create multiple subscriptions if necessary.

So here is an example for using each of these subscription methods:

    • Administration>Subscriptions>Recipient – Example: Notify a Support Group DL that an incident is in the queue
    • Administration>Workflows> Select People To notify – Example, when an incident is Assigned, Notify Created by User their incident was raised with an end user acknowledgement template and Notify the analyst it is assigned to, using the assigned to analyst template
    • Administration>Subscriptions>Related Recipient – Example: Notify Assigned To User that SLA has gone to warning status

Here is the detail on how to create each of these subscriptions:

Notify a Support Group DL that an Incident is in the queue

(Administration>Subscriptions>Recipient )

Note: it is required to have the channel set up prior to doing this which was configured in Section 4) Also, You will use the template that we created in the previous section or the one created in the Optional 3 section.

Note: The ‘When an object is updated’ criteria below will not catch brand new incidents, which is why we create this subscription twice – one for brand new incidents set to the ‘helpdesk’; support group during creation.  And then a second time using the ‘when an object of the selected class is updated; option which catches existing incidents, or new incidents that are created and have an incident template applied which sets the support group.

Note that you have to associate a user / distribution group with the subscription, so ensure that the email address you will want to use for this notification is associated with a user / distribution group in AD, and that the AD connector has ran since the user / group was created in Service Manager and had the email address associated.  You can search for it in the Configuration Items>users view which shows both users and groups.

12a) Navigate to Administration>Notifications>Subscriptions

12b) Click ‘Create Subscription’ and click Next in the Before You Begin’ page, click Next

12c) In the General Page give the Subscription a descriptive name and optionally a subscription.  I will call mine ‘Antoni – Notify HelpDesk of New Call in Q – Incident Created – Support Group = Helpdesk – HelpDesk DL’

TIP: In order to be as descriptive as possible with the name, you could put a placeholder in there, go through the rest of the create subscription wizard, and then come back to the General page and specify the name, once you know your criteria, template, and recipient which are good things to highlight in the name

12d) Configure the settings in the General Page as follows:

12e) Leave the default option selection in the dropdown of ‘When an object of the selected class is created’

NOTE: You will create a second subscription (using the  When an object of the Selected class is updated option) to catch existing incidents that get places in the helpdesk Queue either manually or via workflows applying a template that does this.

12f) Change the Targeted Class to Incident

12g) Change the Management Pack to one of your Custom MPs.  I will use Antoni Custom MP.

TIP: Always check the MP listed before clicking Next.  If a custom MP is listed prior to choosing the Incident class, the target MP to save it in will change to ‘Service Manager Incident Management Configuration Library, so after selecting the class, be sure to select the appropriate custom MP

12h) In the Group / Queue selection click Next as we are narrowing down in the next ‘Additional Criteria’ page rather than this page.  If you leave the default of no queues selected, then the subscription will apply to all Incidents (or instances of the class that you select)

12i) In the Available Properties <search> box start typing support group and then select it, click Add.
Ensure the Operator dropdown says ‘Equals’, and then in the value box, type Helpdesk (or the Support Group that you are creating the Subscription for)
   

12j) Choose a template such as the ‘Antoni – Incident in Queue (Support Group)’ template created in the previous exercise and click Next

12k) In the Recipient Dialog, either add a Distribution Group that corresponds to the people who work the selected Queue or, add the individual users.  Verify that the correct email Address appears.  If you do not see the user or distribution group that you know is associated with the email address you want to use, and you know this exists in AD / Exchange, then you may need to exit and synchronize the AD connector and then start creating the subscription again.

12l) In related Recipients click next.

TIP: You may like to add a related recipient here such as the assigned to user or affected user to acknowledge that the incident was placed in the Q.  Remember however that if you do this, the same ‘Antoni – Incident in Queue (support group)’’ is the template that will be used to send all emails that are part of this particular subscription.  For sending different templates to different users consider creating additional subscriptions or creating subscriptions in workflows as explained next.

12m) In Summary click Create, and once created, click Close

We will now repeat these steps with a couple of alterations, to create a subscription that fires when an existing (already created) incident is updated to the appropriate Queue.

12a) Navigate to Administration>Notifications>Subscriptions

12b) Click ‘Create Subscription’ and click Next in the Before You Begin’ page, click Next

12c) In the General Page give the Subscription a descriptive name and optionally a subscription.  I will call mine ‘Antoni – Notify HelpDesk of New Call in Q – Incident Updated – Support Group Changed to Helpdesk – HelpDesk DL’

TIP: In order to be as descriptive as possible with the name, you could put a placeholder in there, go through the rest of the create subscription wizard, and then come back to the General page and specify the name, once you know your criteria, template, and recipient which are good things to highlight in the name

12d) Configure the settings in the General Page as follows:

    • Change the dropdown of ‘When an object of the selected class is created’ to ‘When an object of the Selected class is updated’
    • Change the Targeted Class to Incident
    • Change the Management Pack to one of your Custom MPs.  I will use Antoni Custom MP.

TIP: Always check the MP listed before clicking Next.  If a custom MP is listed prior to choosing the Incident class, the target MP to save it in will change to ‘Service Manager Incident Management Configuration Library, so after selecting the class, be sure to select the appropriate custom MP

12e) In the Group / Queue selection click Next as we are narrowing down in the next ‘Additional Criteria’ [page rather than this page.  If you leave the default of no queues selected, then the subscription will apply to all Incidents (or instances of the class that you select

12f) within the ‘Changed from’ tab,  In the Available Properties <search> box start typing support group and then select it, click Add.
Change the Equals dropdown to ‘Does not Equal’ and then in the value box, type Helpdesk (or the Support Group that you are creating the Subscription for).

12g) Click the ‘Changed To’ tab and  In the Available Properties <search> box start typing support group and then select it, click Add.
leave the default of Equals in the dropdown to and then in the value box, type Helpdesk (or the Support Group that you are creating the Subscription for).  Then Click next
   

NOTE: You will notice how after selecting the ‘when an object of the selected class is updated’ option in the first page, we have change from and changed to criteria, rather than just the ‘criteria’ tab

12h) Choose a template such as the ‘Antoni – Incident in Queue (Support Group)’ template created in the previous exercise and click Next

12i) In the Recipient Dialog, either add a Distribution Group that corresponds to the people who work the selected Queue or, add the individual users.  Verify that the correct email Address appears.  If you do not see the user or distribution group that you know is associated with the email address you want to use, and you know this exists in Ad / Exchange, then you may need to exit and synchronize the AD connector and then start creating the subscription again.

12j) In related Recipients click next.

TIP: You may like to add a related recipient here such as the assigned to user or affected user to acknowledge that the incident was placed in the Q.  Remember however that if you do this, the same ‘Antoni – Incident n Queue (support group)’ is the template that will be used to send all emails that are part of this particular subscription.  For sending different templates to different users consider creating additional subscriptions or creating subscriptions in workflows as explained next.

12k) In Summary click Create, and once created, click Close

When an incident is Created by an Analyst in the console, Notify Created by User their incident was raised with an end user acknowledgement template and Notify the analyst it is assigned to, using the assigned to analyst template

(Administration>Workflows> Select People To notify)

12a) Go to Administration>Workflows>Configuration

12b) Double click ‘Incident Event Workflow configuration

12c) In the ‘Configure Workflows’ dialog, click Add and click next in the ‘Before You begin’ dialog

12d) As with everything created, be as descriptive as possible for the name and description.  If needed put a placeholder in and come back and modify it / add to it after you’ve gone through the other pages of the wizard, before you finalize and create it. I will call mine Antoni – Incident Created – Notify Created By and Affected User

In the check for events dropdown, leave ‘when an object is created’.

NOTE: There is no class selection here because you are already in the workflows section purely for Incident related workflows.

12e) Change the MP to a custom MP.  I chose Antoni Custom MP, Leave the ‘Enabled’ checkbox as True, and click Next

12f) In the Available Properties <search> box start typing source and then select it, click Add.
leave the default of Equals in the dropdown to and then in the value box, select Console. Then Click next

NOTE: In the Specify Event Criteria, you could leave this blank so it catches every incident created.  In this scenario, I will change the ‘Source’ to Console, because this workflow is to cover the scenario where an end user calls the helpdesk, and an analyst raises the ticket, specifying the end user and the assigned to user. 

NOTE: more likely they will assign to a support Group rather than an individual, leaving the ‘assigned to user’ blank and allowing someone from the Support group to see it in the Queue and assign it to themself.  This is ok as the workflow will work either way at least notifying the end user, and additionally notifying the assigned to user if one is specified.

12g) In Select Incident Template, leave the default of ‘Do not apply a template’.  and Click Next

NOTE: We will use this feature in the next section, but for now just be aware that this is if you want to apply an incident template – it is nothing to do with the notification templates which will be selected din the next dialog.

12h) In Select People to notify page, Click the ‘enable Notification’ checkbox

12i) In User, Select Affected User.  In Message template select ‘End User Notification template’ or a different template of your choice. then click Add

12j) Change the Affected User dropdown value to Assigned To User.  Change Message Template from ‘End User Notification Template’ to ’Assigned to User Notification template’ or a different template of your choice, then click Add.

It should look something like this:

12k) then Click Next, Create and Close.

Notify Assigned To User that SLA has gone to warning status

(Administration>Subscriptions>Related Recipient)

This is explained in Section 15 (SLAs).  It basically involves creating a subscription that uses the Service Level Time Instance Class being updated, and the status field of that class changing from does not equals warning, to does equals warning.  More details can be found in Section 15.

13) Configure Workflows (auto assign default incoming template)

Workflows can be designed in the Service Manager Console to do one (or both) of two actions:

  • Send Notifications – For instance you might have a workflow that fires when a new incident is created, and notifies the ‘Created by User’, ‘Assigned to User’ and ‘Affected user’ each using a different notification template.  An example of this functionality was outlined in the previous section
  • Apply templates – for instance you might have a workflow that looks for incidents raised via the portal that have the word ‘printer’ in the title or description of the incident, and if found, the workflow will automatically assign the ‘Printing Issue’ incident template.  This template could set important fields like the support group, priority and incident classification, which would set the incident up to match queue / view criteria.

This exercise is an example of creating a workflow that will do both of these things:

Workflow Scenario:

For Incidents that are raised from the portal that have the word print or printer in the title, the ‘Antoni Printing Issue Incident’ Template will be automatically applied.  And in addition to this, the affected user will be notified using a template created for this purpose.

Start by creating both the incident template and notification template if you don’t already have one you wish to use for this:

Printing Incident Template (Use section 8 if you need help) with the following or similar configuration:

  • Name = Antoni Printing Issue Incident Template
  • Support Group = Helpdesk
  • Incident Classification = Printing Problems
  • Urgency = Low
  • Impact = Low

Printing Incident Notification template (Use Section 11 if you need help) with the following or similar Configuration.  I duplicated the existing ‘end User Notification template’ into my Antoni Custom MP and then specified the following:

  • Name = Antoni Printing Incident – End User
  • Subject – Changed ‘An incident has been opened for you’. to ‘A printing incident has been opened for you’.
  • Body – left as the default that was duplicated from the End User Notification template.

Create the workflow using the following steps:

13a) Go to Administration>Workflows>Configuration

13b) Double click ‘Incident Event Workflow configuration’

13c) In the ‘Configure Workflows’ dialog, click Add and click next in the ‘Before You begin’ dialog

13d) As with everything created, be as descriptive as possible for the name and description.  If needed put a placeholder in and come back and modify it / add to it after you’ve gone through the other pages of the wizard, before you finalize and create it.

I will call mine ‘Antoni – Printing Incident Created in Email or Portal – Apply Printing Incident template – Notify End User’

13e) In the check for events dropdown, leave ‘when an object is created’.

NOTE: There is no class selection here because you are already in the workflows section purely for Incident related workflows.

13f) Change the MP to a custom MP.  I chose Antoni Custom MP, Leave Enabled as True and Click Next

13g) In the Specify Event Criteria, configure this as shown below and click Next:

 

This narrows down this workflow to run, only if the user enters the words ‘print’ or ‘printer’ into the title /description fields on the portal, or if the user creates an incident via email with ‘print’ or ‘printer’ in the subject. The assumption here is that if an analyst is conducting telephone support and created a Printing incident in the Service Manager console, then they would apply the printing template manually, which is why we exclude incidents created in the console.

13h) In the Select Incident Template dialog, click ‘Apply the following template’ and choose the printing incident template you created for this exercise, and click next.

NOTE: After selecting the template, the dialog gives you a preview of the fields that the template will populate:

 

13i) In the Select People to notify click the “enable Notification’ checkbox.

13j) Choose the Affected User and the Notification template created for this exercise.  Then Click Add

13k) Click next, create and Close.

14) Notify on assignment / re-assignment

A key part of functionality I find most customers want is the ability to notify an ‘Assigned to User’ when an incident is assigned or re-assigned to them. I find the best way of doing this is using the xml which I shamelessly stole from my colleague Ketan’s blog post here.  I have copied the xml you will need for this below too.  

On his blogpost, he explains the xml really well and how it functions.  You can simply take this block of xml and save it as ServiceManager.IncidentAssignmentChanges.Notification.xml

NOTE: The ID Specified in the xml for the MP must match the filename of the MP

Once you have the xml file you can import it into Service Manager under Administration>Management Packs.

Before importing this xml, The one thing you definitely might like to consider changing is specifying your own notification template (otherwise the default ‘Assigned to user Notification template’ is used)  

You can replace the Template GUID with your own template GUID, if you have one created by replacing this GUID in the xml (in between the Item Tags).

            <WorkflowArrayParameter Name=”NotificationTemplates” Type=”guid”>

                    <Item>50dc32c2-6517-e9ea-dd99-0455383cab17</Item>

                  </WorkflowArrayParameter>

Here is a query you can use (run against the ServiceManager DB in SQL Management Studio) to find the GUID for your template (replace ‘ant’ with something that identifies the notification template you’re after:

select
ObjectTemplateId, LTValue from ObjectTemplate ot
Inner join LocalizedText LT on LT.MPElementId = ot.ObjectTemplateId
where
ObjectTemplateTypeId=’0814D9A7-8332-A5DF-2EC8-34D07F3D40DB’
and
ltvalue like ‘%ant%’


Here is the xml which you will need to save as ServiceManager.IncidentAssignmentChanges.Notification.xml and then import as a Management Pack into Service Manager:

<ManagementPack ContentReadable=”true” SchemaVersion=”1.1″ OriginalSchemaVersion=”1.1″ xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”> <Manifest> <Identity> <ID>ServiceManager.IncidentAssignmentChanges.Notification</ID> <Version>7.0.5244.0</Version> </Identity> <Name>Incident Assignment Changes Notification Workflow</Name> <References> <Reference Alias=”WorkItem”> <ID>System.WorkItem.Library</ID> <Version>7.0.5244.0</Version> <PublicKeyToken>31bf3856ad364e35</PublicKeyToken> </Reference> <Reference Alias=”Incident”> <ID>ServiceManager.IncidentManagement.Library</ID> <Version>7.0.5244.0</Version> <PublicKeyToken>31bf3856ad364e35</PublicKeyToken> </Reference> <Reference Alias=”CoreIncident”> <ID>System.WorkItem.Incident.Library</ID> <Version>7.0.5244.0</Version> <PublicKeyToken>31bf3856ad364e35</PublicKeyToken> </Reference> <Reference Alias=”SystemCenter”> <ID>Microsoft.SystemCenter.Library</ID> <Version>7.0.5244.0</Version> <PublicKeyToken>31bf3856ad364e35</PublicKeyToken> </Reference> <Reference Alias=”SystemCenter1″> <ID>Microsoft.SystemCenter.Subscriptions</ID> <Version>7.0.5244.0</Version> <PublicKeyToken>31bf3856ad364e35</PublicKeyToken> </Reference> <Reference Alias=”Administration”> <ID>Microsoft.EnterpriseManagement.ServiceManager.UI.Administration</ID> <Version>7.0.5244.0</Version> <PublicKeyToken>31bf3856ad364e35</PublicKeyToken> </Reference> <Reference Alias=”System”> <ID>System.Library</ID> <Version>7.0.5244.0</Version> <PublicKeyToken>31bf3856ad364e35</PublicKeyToken> </Reference> </References> </Manifest> <Categories> <Category ID=”IncidentConfigurationMPSolutionCategory” Value=”Incident!Microsoft.EnterpriseManagement.ServiceManager.ManagementPack.Solution.IncidentManagement”> <ManagementPackName>ServiceManager.IncidentAssignmentChanges.Notification</ManagementPackName> <ManagementPackVersion>7.0.5244.0</ManagementPackVersion> </Category> <Category ID=”Category.IncidentAssignmentChanges” Target=”IncidentAssignmentChanges” Value=”Administration!Microsoft.EnterpriseManagement.ServiceManager.Rules.WorkflowSubscriptions” /> </Categories> <Monitoring> <Rules> <Rule ID=”IncidentAssignmentChanges” Enabled=”true” Target=”SystemCenter!Microsoft.SystemCenter.SubscriptionWorkflowTarget” ConfirmDelivery=”false” Remotable=”true” Priority=”Normal” DiscardLevel=”100″> <Category>Discovery</Category> <DataSources> <DataSource ID=”DS” TypeID=”SystemCenter1!Microsoft.SystemCenter.CmdbInstanceSubscription.DataSourceModule”> <Subscription> <RelationshipSubscription RelType=”$MPElement[Name=’WorkItem!System.WorkItemAssignedToUser’]$” SourceType=”$MPElement[Name=’CoreIncident!System.WorkItem.Incident’]$” TargetType=”$MPElement[Name=’System!System.Domain.User’]$”> <AddRelationship> </AddRelationship> </RelationshipSubscription> <PollingIntervalInSeconds>10</PollingIntervalInSeconds> <BatchSize>100</BatchSize> </Subscription> </DataSource> </DataSources> <WriteActions> <WriteAction ID=”WA” TypeID=”SystemCenter1!Microsoft.EnterpriseManagement.SystemCenter.Subscription.WindowsWorkflowTaskWriteAction”> <Subscription> <EnableBatchProcessing>true</EnableBatchProcessing> <WindowsWorkflowConfiguration> <AssemblyName>Microsoft.EnterpriseManagement.ServiceManager.Incident.Workflows</AssemblyName> <WorkflowTypeName>Microsoft.EnterpriseManagement.ServiceManager.Incident.Workflows.AutomaticIncidentChangeWorkflow</WorkflowTypeName> <WorkflowParameters> <WorkflowArrayParameter Name=”InstanceIds” Type=”guid”> <Item>$Data/BaseManagedEntityId$</Item> </WorkflowArrayParameter> <WorkflowParameter Name=”NotificationRulesEnabled” Type=”boolean”>True</WorkflowParameter> <WorkflowArrayParameter Name=”NotificationTemplates” Type=”guid”> <Item>50dc32c2-6517-e9ea-dd99-0455383cab17</Item> </WorkflowArrayParameter> <WorkflowArrayParameter Name=”UserAliasOrRelationships” Type=”string”> <Item>15e577a3-6bf9-6713-4eac-ba5a5b7c4722</Item> </WorkflowArrayParameter> </WorkflowParameters> <RetryExceptions /> <RetryDelaySeconds>60</RetryDelaySeconds> <MaximumRunningTimeSeconds>1500</MaximumRunningTimeSeconds> </WindowsWorkflowConfiguration> </Subscription> </WriteAction> </WriteActions> </Rule> </Rules> </Monitoring> <LanguagePacks> <LanguagePack ID=”ENU” IsDefault=”true”> <DisplayStrings> <DisplayString ElementID=”ServiceManager.IncidentAssignmentChanges.Notification”> <Name>Service Manager Incident Assignment Changes Notification Workflow</Name> <Description>Service Manager Incident Assignement Changes Workflow</Description> </DisplayString> <DisplayString ElementID=”IncidentAssignmentChanges”> <Name>Incident Assignement Notification</Name> </DisplayString> </DisplayStrings> </LanguagePack> </LanguagePacks></ManagementPack> 

The same blog link has some other information and link to other blog posts that explain similar or extended functionality such as notifying an affected user / primary owner following assignment / re-assignment.  The above xml code only takes care of the assigned to user, which is the main one most customers need.

15) Create Service Level Objectives

SLOs consist of 4 components:

    • Calendar
    • Metric
    • Queue
    • Thresholds (warning and Breach)

The calendar defines the time that the SLO clock is ticking. For instance, you create a calendar of 9-5 Monday – Friday and your SLO Breach threshold is an hour. If you create an incident at 6am in the morning, it will not breach until 10am, as the SLO clock only starts ticking at 9am.

The metric defines the duration that is being measured.  for instance the duration between Created Time and Resolved time.  Or another example would be Created Time to First Assigned Time.

The Queue defines the work items (incidents in this case) that the SLO applies to.

So for instance lets say the following is defined:

  • Calendar = 8am – 6pm Mon-Fri
  • Metric = Created Time to resolved Time
  • Queue = All Printing Incidents assigned to Tier 2 – helpdesk  
  • Warning Threshold = 30 minutes
  • Breach Threshold = 1 hour

This is the resultant behavior:

SLO Scenario 1: A printing incident assigned to Tier 2 – helpdesk support Group is created at 6am in the morning and is resolved at 8.10 am in the morning.  In this case neither the warning or Breach thresholds are exceeded, because the SLO clock was not ticking until 8am.  So the incident only took 10 minutes of SLO time to get resolved.

SLO Scenario 2: A printing Incident assigned to tier 2 helpdesk Support group is created at 8am in the morning and is resolved at 11am in he morning.  At 8.30 (warning threshold – 30 minutes before the target) the incident is in an SLO warning state.  At 9am, it enters the SLO Breached state.

In this exercise, we will create the following 2 SLO objectives:

  • All Incidents should be Resolved within 5 days, warn after 4 days (1 Day prior to SLA Breached) using the 9-5mon-fri calendar
  • All Priority 1 Incidents Should be resolved within 4 hours, warn after 3 hours (1 hour prior to SLA breached) using the 9-5mon-fri calendar.

Start by creating your calendar. (Note multiple calendars can be created if desired)

15a) Click on Administration>Service Level Management>Calendar

15b) On the right hand side in the tasks pane, click ‘Create Calendar

15c) Check the boxes for the days you want to apply and then enter the Start and End times in the boxes.  If you enter a 24-hour time like 09:00 and hit tab, this will resolve to 09:00:00AM (17:00 for 5pm).

15d) Optionally add holidays. Click OK when you’re done.

NOTE: The Related SLOs will be populated automatically later when you associate the calendar with the SLO.

It should look something like this when you’re done:

TIP: you can pull holidays form outlook – take a look here for more:

Next, Configure the metrics you want:

NOTE: out the box you get two: One for Service Request Completion time, One for Incident Resolution time.

In this example, we will use the built-in Incident Resolution time metric, but optionally, you can create additional metrics using these steps:

  • Click on Service Level management>Metric
  • On the right hand side in the task pane, click Create Metric
  • Give the Metric a name such as Antoni – Incident Created to Incident First Assigned.    
  • Next to class, hit Browse and choose Incident    
  • In Start Date dropdown choose Created Date (although think of this as date and time)     
  • In end Date choose First Assigned Date (also think of this as date and time) then Click OK.     

Finally create your Service Level Objectives which brings the calendar, metric and queue together setting the SLO Warning and Breach thresholds.  I will define 2 SLOs in this exercise

  • SLO 1: All Incidents should be Resolved within 5 days, warn after 4 days using the 9-5mon-fri calendar
  • SLO 2: All Priority 1 Incidents Should be resolved within 4 hours, warn after 3 hours using the 9-5mon-fri calendar.

SLO 1: All Incidents should be Resolved within 5 days, warn after 4 days using the 9-5mon-fri calendar

To define SLO 1 for all incidents:

15a) Click Administration>Service Level Management>Service Level Objectives

15b) on the right hand side, click Create Service Level Objective, and click next in the Before you begin dialog

15c) Give the SLO a name (good to include a reference to the Queue, metric, calendar and thresholds so again you may want to come back and set this after you have gone through the rest of the wizard.  I will call mine ‘Antoni SLO – MF9-5cal – All Incidents – Resolution time – b5days w4days’.  Believe me you will be pleased later on for being as descriptive as possible with your names 🙂

15d) In Class click Browse and choose Incident

15e) Change the Management Pack to one of your custom MPs – I will use Antoni Custom MP.

15f) Leave the Enabled checkbox selected and click next

15g) choose the All Incidents Queue (Antoni – All Incidents in my case) and click Next

NOTE: Unlike some of the other Queue selection dialogs where not selecting a Q causes all instances of the class to apply, it is mandatory to pick a queue in this wizard which is why the Queues section of this guide had you create the All Incidents Queue.

15h) In Service Level Criteria, choose the Calendar, metric, Target and Warning thresholds.  Mine looks like this:

NOTE: the warning threshold can sometimes get confusing.  using the above example, I want the SLA to be breached after 5 business days but go into a warning after 4 days. So do I put 4 days (96 hours) or 1 day in here.  The answer is 1 day as the warning threshold is the amount of time prior to an SLA Breach you want the incident to enter a ‘SLA Warning’ status for the purposes of emailing the assigned to user, or showing in a warning view etc.

15i) Click Next, Create and close

SLO 2: All Priority 1 Incidents Should be resolved within 4 hours, warn after 3 hours using the 9-5mon-fri calendar.

This SLO is set up using the same steps, as SLO 1, except for the Queue, I will choose my Antoni – All Priority 1 Incidents Queue and I will set 4 hours as my SLO Breach threshold, and 1 hour as my SLO Warning threshold.

16) Create User roles

If you’re still with me, you have a pretty good well customized incident system set up so far! Let’s keep going!

User Roles control what a user sees in the console.  This is important both for security and ease of use.

You can either use the User Roles that are supplied out of the box, or create customized version of these.  The ones out of the box cannot be customized other than adding associated individuals or groups to reach user role.

When Creating custom roles, this adds flexibility in being able to control access to the following elements:

  • Queues – for narrowing down work items that a user can see
  • Configuration Items – for narrowing down access to items such as computer and user CI records (requires creation of groups)    
  • Catalog Item Groups – for narrowing down access to request and service offering in the portal (see my other blog posts on incident request offerings for more on this)    
  • Tasks – for narrowing down the ability to use the tasks on the right-hand side     
  • Views – for narrowing down the views that a user will see in the console    
  • Form Templates – For narrowing down the form templates that can be applied to a work item     
  • Classes (Author User Role only) – For narrowing down the classes that elements such as templates can be authored for.

TIP: The access is a combination of all of these which is particularly important for Queues and Views.  for instance if you create a User Role called ‘Infrastructure Team Incident Resolver, you may give access to the ‘All Incidents’ view that is supplied out of the box, and also narrow down the queues to just the ‘All Infrastructure Team Incidents’ Queue.  When a user is associated with the ‘Infrastructure Team Incident Resolver’ User Role, and they look look at the ‘All incidents’ view in the console, they will actually only see Incidents that have ‘Infrastructure Team’ set as the support group (those that match the criteria specified for the ‘All Infrastructure Team Incidents’ Queue.)

Let’s create this example User Role:

16a) Click on Administration>Security>User Roles

16b) Click the “Create User Role’ task from the tasks pane on the right hand side and choose incident resolver in the flash out menu

16c) Enter a name such as Antoni Incident Resolver – Infrastructure Team and click Next

16d) In the Management Packs Page click Select All and then next

NOTE: as this page controls what you see in the following pages for selection, and I want to see everything available.

TIP: If you’re doing a Incident Resolver User Role like this, you might choose to select all your custom MPs and all the internal MPs that have ‘ incident’ in the title as this will make it easier when you’re selecting views etc. in the following pages.

16e) In the Queues, click the ‘Provide access to only the selected Queues’ radio button and select the Queues (remember Queues are groups of work items) that you want to allow access too.  In this case we will just choose Antoni – All Infrastructure team Incidents.

NOTE: This is relying on a person or workflow appropriately setting the support group to ‘infrastructure Team’ such that a member of the Infrastructure team will be able to see these incidents.

16f) Click Next in the Configuration item Groups page.  To date, I personally have not seen anyone narrow down access to configuration groups, at least not in the initial configuration

16g) click next in the ‘Catalog Item Groups’.  This is to allow access to certain request offerings and service offerings which again is something usually not required at these early stages of configuration.

16h) In Tasks, you can narrow down the tasks that users have access to.  In this example I will leave all tasks selected and click next

16i) In Views, choose the views that you would like to give access to, and click Next.

TIP: Combining Queues and Views as discussed earlier can help prevent the need to create custom views as you are customizing the built-in Views in effect, by narrowing down the Queues in the User roles.

TIP: One thing I will often do in the ‘Views’ page (in particular when I’m creating an Incident Resolver use role) is sort by the ‘Management Packs’ column and scroll down to the ‘Service Manager Incident Management Configuration Library’ Views as these are the views I will often want to include in my incident resolver view.  A good starting point would be:

      • All Incidents
      • My Incidents
      • All Open Unassigned Incidents
      • Incident with SLA Warning
      • Incident with SLA Breach

TIP: Don’t forget your Configuration Item views which can be found under the ‘Service Manager Configuration management Configuration Library’ and ‘Service Manager Configuration management Library’ Management packs.

You may want to give access to All Windows Computers, Users etc..

16j) In the form Templates page, either narrow down access to certain forms, or leave the default of ‘All forms can be accessed’  I will leave the default in this case.

16k) In Users, click Add and select the AD Users or Groups that you want to associate with the Custom User Role.  I will select a custom AD group I created for this purpose called Incident Resolvers. 

16l) Click Next, then Create and then Close.

NOTE: User Roles are cumulative so as you get added to additional user roles (either individually or via associated AD group membership), the user will receive cumulative permissions.

TIP: You can find a matrix of permissions associated with each user role here

TIP: You can launch a second console simultaneously as a test user associated with a user ole, to test the effects of creating a user role.  Shift and right-click over the Service Manager console will give you the options to launch as a different user.

17) Incident from Email

This is the email functionality that is offered out of the box and allows a user to send an email to a given email address.  Exchange will forward emails sent to this address to an SMTP server that Service Manager is watching.  For all emails that Service Manager finds in the drop box, it will convert these into incidents using the subject as the title, and the body as the message.

Details on how to set this up can be found here. (Note steps are written for Exchange 2010 but the steps are mostly the same for 2012 with some slight terminology changes)

For more enhanced email functionality, consider the Exchange connector which you can find details of here:

Please be aware that the Exchange Connector is currently not supported by Microsoft.

18) Incident Portal Configuration (change perms in SharePoint and SCSM if required)

The Self-service portal is designed with end users in mind as a place where they can go ands raise new incidents / service requests, check knowledge articles / announcements, and check the status of their current incidents and service requests.

It is not designed as a place for analysts and technicians to update work items.

In addition to this, any users that have review activities assigned to them (reviewers) can go in and approve or reject from the portal, and activity implementers can also mark activates assigned to them as completed.

The My in ‘my requests’ refers to the user being set as the ‘Affected User’ – not the Created by or assigned to user.  So even if an incident is Assigned to you (you are the Assigned to user) you would only see the incident in the portal if you were also designated as the ‘Affected User’

When updating incidents, Analysts or technicians make updates in the ‘Action Log’ area of the incident.  If they mark a comment as Private, this prevents it from being displayed in the self-service portal to the end user (affected user) checking status and progress on their incident.

This assumes that you set up the self-service portal in SharePoint already and can access the site.

The URL should be something like:

http://[SharePointServer]:[PortNumber]/SMPortal/

The NT AUTHORITY\Authenticated Users Group is in the ‘End User’ User Role which grants end users access to the portal from the Service Manager perspective, so the only permissions that need to be allocated are through SharePoint which can be done in the following way:

a) In the upper left area of the web page, click Site Actions, and then click Site Permissions.

b) On the SharePoint ribbon, click Grant Permissions.

c) In the Grant Permissions box, in the Users/Groups box, type the Active Directory name for the users or user groups to whom you want to grant access.

d) In the Grant Permissions area, click Read – Can view pages and list items and download documents, and then click OK.

e) Close the browser.
Reference:
http://technet.microsoft.com/en-us/library/hh495661.aspx

19) Knowledge Base Integration

You may also want to create Knowledge Articles and associate these to some of your templates or request Offerings.

The key thing to note is that an article has to be set to Published, in order for a Knowledge Article to appear out in the portal:

20) Announcements

You will see in the console (Administration) an Announcements node.

This was included with the intention of being able to publish announcements on the Self Service portal home page.

This functionality currently requires additional customization outside of the Service Manager console and details on how to achieve this with Orchestrator can be found here.

NOW WHAT?!

So that’s the end of all the initial configuration I suggest.  The nice thing is that if you have gone through all this is that many of the same principles, tips and processes of customizing used here apply to other areas of Service Manager

The same concepts discussed above like templates, workflows, notification templates, work items, config items etc. can all be configured in a similar fashion for other classes such as Service requests, just by substituting the incident class for the service request class.

OPTIONAL 1) Create your own Incident Request Offering allowing customization of incident form

(e.g. remove classification, impact and urgency fields so these are only set by an analyst / technician rather than the end user)

a) Firstly, create an incident template that sets all the required default values.  I created one like this:

b) Create a Service Offering that you want the Request Offering to be classified under.  In my case I will use the a Service Offering called Incidents which comes under my Helpdesk Catalog.

(Details of how to of this can be found in steps 1-3 on this post: http://blogs.technet.com/b/antoni/archive/2012/06/06/how-to-raise-an-incident-on-behalf-of-a-different-user.aspx )

c) Create a request Offering using the following steps:

d) Navigate to Library>Service Catalog>Request Offerings>All Request Offerings and in the tasks pane, click Create Request Offering

e) Click Next in the ‘Before you Begin Page

f) In General, give the Request Offering a name (I called mine Incident (Basic)’) and then select your custom incident template that has the default set.  In my case I will choose the ‘Antoni basic Incident’ template

NOTE If you just click the main ‘Select Template’ button only SR Templates will be shown.  to show Incident templates you need to click the arrow to the right of the button and select Incident.

g) Configure prompts for the fields you would like the user to enter (in my case title, description and file attachment).  In my case note that I made the File Attachment input optional.

h) Click Next and In the configure prompts page, click on each prompt and configure and desired input mask / character limit etc., then click Next:

i) In the map prompts page you will map the user input to fields in the incident.  We will map the brief description to the ‘Title’ field of the incident and the Details description to the descripting field of the incident.  Ensure Incident is selected and click the dropdown next to Title, choose your first prompt.  click the dropdown in the prompt output in the Description row,, and choose the second prompt.  It should look like this:

j) Click Next in the Map Prompts Page and then next in the Knowledge Articles page

TIP: If you add Knowledge articles here, they will display in the portal before the user creates an incident using this request offering

j) In the Publish page, change the Offering Status to Published and then click next.  Then click Create, and then Close.

NOTE: You need to ensure the Service Offering and Request Offering both appear in this ‘Published’ status in order to see this on the portal.  A published service offering will only show up, once a request offering has been created as part of the service offering.

k) navigate to Service catalog,>All Service Offerings. Double click the Service offering that you want to add the request offering too (I will use incidents)

l) click the Request Offering page, and then click the Add button.  Add the Request Offering (Incident (Basic)) in my case, click add then ok.  then Click OK in the Edit Service Offering Dialog

OPTIONAL 2 ) Create Request Offering to allow users to raise incidents on behalf of other user

Steps on how to do this can be found here – http://blogs.technet.com/b/antoni/archive/2012/06/06/how-to-raise-an-incident-on-behalf-of-a-different-user.aspx

OPTIONAL 3) Enhance your Email notifications sent out by Service Manager

a) Start in Microsoft Word and create the Table that you would like to appear

I will normally use one of these:

TIP: You could use different color for different templates.  For instance you might have a notification template notifying helpdesk of priority 1 incidents that has a red table and then a notification template notifying helpdesk of priority 2 incidents that has a different coloured table.

b) Set up the table with the labels and where the actual values will appear put a placeholder like this:

 

This will come into play later when you’re filtering through the HTML to figure out where you want to place the variable, and will make this a lot easier 🙂 C)

c) And then here is the magic part.  Click File, Save As and save the doc as a webpage.

d) Open up in Notepad and there is all your html. 

e) Search for <table class= and copy from <table to </table>

f) In service Manager, navigate to Administration>Notifications>Templates and Either Create a new template, or duplicate an existing one.  In this case I will duplicate the ‘Assigned to User Notification Template’

NOTE: Be sure to pick the Assigned To User Notification template from the Service Manager INCIDENT Management MP and not the Service Manager SERVICE MP.  Otherwise your template will be associated with the Service Request class rather than the incident class.

g) Pick a Custom MP to duplicate into (I chose Antoni Custom MP)

h) The template will be created as Assigned To User Notification Template – Copy so double-click it and rename it.

I called mine Antoni VN – Incident in Queue (Support Group) where VN stands for Visually Nice 🙂 (hey, I’m writing this on a Friday 🙂

i) Click on the template Design Page or scroll down to it (it al takes you to the same place 🙂 and then paste in the table you copied into the template.  I pasted mine right at the bottom.

j) Scroll down to the first placeholder:

k) Delete the placeholder you inserted and Replace it with the variable(s) that t you want to insert.  Do this by clicking the Insert button, typing in the variable you want in the available properties box, select the field, and the click the Add button

In my case, I will add the ID and Title so it looks like this when I’m done:

l) Repeat this for the other placeholders that you included, replacing the placeholder with the variable using the Insert button.

NOTE: for the affected User and other relationships you can scroll down on the left hand side underneath incident:

m) if desired, add text above and below the table and also configure your subject as you would like it to be appear.

I ended up with the following

Message Subject:

Incident in Queue: $Context/Property[Type=’CustomSystem_WorkItem_Library!System.WorkItem’]/Id$ – $Context/Property[Type=’CustomSystem_WorkItem_Library!System.WorkItem’]/Title$

Message Body:

 

<p><b><span style=’font-size:14.0pt;line-height:115%;
font-family:”Verdana”,”sans-serif”‘>INCIDENT IN QUEUE:</span></b></p>

< table border=1 cellspacing=0 cellpadding=0
style=’border-collapse:collapse;border:none’>
< tr>
<td width=233 valign=top style=’width:175.1pt;border:solid #7BA0CD 1.0pt;
background:#D3DFEE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>Incident
ID and Title</span></b></p>
</td>
<td width=405 valign=top style=’width:303.7pt;border:solid #7BA0CD 1.0pt;
border-left:none;background:#D3DFEE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>$Context/Property[Type=’CustomSystem_WorkItem_Library!System.WorkItem’]/Id$ – $Context/Property[Type=’CustomSystem_WorkItem_Library!System.WorkItem’]/Title$</span></b></p>
</td>
< /tr>
< tr>
<td width=233 valign=top style=’width:175.1pt;border:solid #7BA0CD 1.0pt;
border-top:none;background:#A7BFDE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>Priority</span></b></p>
</td>
<td width=405 valign=top style=’width:303.7pt;border-top:none;border-left:
none;border-bottom:solid #7BA0CD 1.0pt;border-right:solid #7BA0CD 1.0pt;
background:#A7BFDE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>$Context/Property[Type=’CustomSystem_WorkItem_Library!System.WorkItem.TroubleTicket’]/Priority$</span></b></p>
</td>
< /tr>
< tr>
<td width=233 valign=top style=’width:175.1pt;border:solid #7BA0CD 1.0pt;
border-top:none;background:#D3DFEE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>Affected
User</span></b></p>
</td>
<td width=405 valign=top style=’width:303.7pt;border-top:none;border-left:
none;border-bottom:solid #7BA0CD 1.0pt;border-right:solid #7BA0CD 1.0pt;
background:#D3DFEE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>$Context/Path[Relationship=’CustomSystem_WorkItem_Library!System.WorkItemAffectedUser’ TypeConstraint=’CustomSystem_Library!System.User’]$?$DisplayName$?</span></b></p>
</td>
< /tr>
< tr>
<td width=233 valign=top style=’width:175.1pt;border:solid #7BA0CD 1.0pt;
border-top:none;background:#A7BFDE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>Classification
Category</span></b></p>
</td>
<td width=405 valign=top style=’width:303.7pt;border-top:none;border-left:
none;border-bottom:solid #7BA0CD 1.0pt;border-right:solid #7BA0CD 1.0pt;
background:#A7BFDE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>$Context/Property[Type=’CustomSystem_WorkItem_Incident_Library!System.WorkItem.Incident’]/Classification$</span></b></p>
</td>
< /tr>
< tr style=’height:3.0pt’>
<td width=233 valign=top style=’width:175.1pt;border:solid #7BA0CD 1.0pt;
border-top:none;background:#D3DFEE;padding:5.75pt 5.75pt 5.75pt 5.75pt;
height:3.0pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>Support
Group</span></b></p>
</td>
<td width=405 valign=top style=’width:303.7pt;border-top:none;border-left:
none;border-bottom:solid #7BA0CD 1.0pt;border-right:solid #7BA0CD 1.0pt;
background:#D3DFEE;padding:5.75pt 5.75pt 5.75pt 5.75pt;height:3.0pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>$Context/Property[Type=’CustomSystem_WorkItem_Incident_Library!System.WorkItem.Incident’]/TierQueue$</span></b></p>
</td>
< /tr>
< tr>
<td width=233 valign=top style=’width:175.1pt;border:solid #7BA0CD 1.0pt;
border-top:none;background:#A7BFDE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>Source</span></b></p>
</td>
<td width=405 valign=top style=’width:303.7pt;border-top:none;border-left:
none;border-bottom:solid #7BA0CD 1.0pt;border-right:solid #7BA0CD 1.0pt;
background:#A7BFDE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>$Context/Property[Type=’CustomSystem_WorkItem_Incident_Library!System.WorkItem.Incident’]/Source$</span></b></p>
</td>
< /tr>
< tr>
<td width=233 valign=top style=’width:175.1pt;border:solid #7BA0CD 1.0pt;
border-top:none;background:#D3DFEE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>Created
Date</span></b></p>
</td>
<td width=405 valign=top style=’width:303.7pt;border-top:none;border-left:
none;border-bottom:solid #7BA0CD 1.0pt;border-right:solid #7BA0CD 1.0pt;
background:#D3DFEE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>$Context/Property[Type=’CustomSystem_WorkItem_Library!System.WorkItem’]/CreatedDate$</span></b></p>
</td>
< /tr>
< tr>
<td width=233 valign=top style=’width:175.1pt;border:solid #7BA0CD 1.0pt;
border-top:none;background:#A7BFDE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>Status</span></b></p>
</td>
<td width=405 valign=top style=’width:303.7pt;border-top:none;border-left:
none;border-bottom:solid #7BA0CD 1.0pt;border-right:solid #7BA0CD 1.0pt;
background:#A7BFDE;padding:5.75pt 5.75pt 5.75pt 5.75pt’>
<p style=’margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal’><b><span style=’font-size:12.0pt;font-family:’Verdana’,’sans-serif”>$Context/Property[Type=’CustomSystem_WorkItem_Incident_Library!System.WorkItem.Incident’]/Status$</span></b></p>
</td>
< /tr>
< /table>

< p><span style=’font-family:’Verdana’,’sans-serif”>&nbsp;</span></p>
< p><span style=’font-family:’Verdana’,’sans-serif”>This is an automated
email from System Center 2012 – Service Manager</span></p>

 

NOTE: BE SURE TO CLICK THE SEND AS HTML box 🙂

n) Click OK

o) If you followed section 12, you can navigate to Channels>Subscriptions.  Double click the Subscription created which notifies the support group of a new call in their Q, Click on the template page and then select the notifiation template that we just created, then click OK.

p) Create a new incident and specify the support group

 

This is how the result looks: