With default settings you can report incident with the self-service portal in Service Manager. But the form is generic, and often you want to customize it. For example if someone reports a issue with e-mail you might want them to submit some e-mail specific details like Outlook version and location. I was looking into this last week and want to share with you some ideas. We can publish incident templates in the self-service portal the same way we can do with service request. They are both published as request offerings. When we configure a request offering we setup a number of user inputs. We can do this with a incident template too, but there are not many suitable fields on a incident to store custom data, like Outlook version. Instead we can create activities on a incident template and on each of them store data, but out of the box we have only the manual activity to use, and lets say we want to store five custom fields, we don’t want to use five manual activities in the incident template. Instead we can create a new activity class, that includes for example five generic fields. To do that we need to start in the Service Manager Authoring Tool
- Start Service Manager Authoring Tool
- Create a new Management Pack, for example ContosoManualActivity
- Right-click Classes and select Create Other Class
- Base Class, select Manual Activity as base class
- Create Class, input Contoso.Manual.Activity as internal name
- Delete the default property named something like Property_XX
- Click Create property, input internal name, for example text01
- Click Create property, input internal name, for example text02
- Click Create property, input internal name, for example text03
- Click Create property, input internal name, for example text04
- Click Create property, input internal name, for example text05
- Save the management pack
- Seal the management pack, more info how to seal a management pack and generate a key file here
- Start the Service Manager Console, import the seal management pack (mp file)
- Restart the Service Manager console to reload class structure
- In the Service Manager console navigate to Library/Templates
- Click Create Template in the Tasks pane
- Create Template, input a name, for example Contoso – Template – Manual Activity. Select the Contoso.Manual.Activity class (under basic classes). Create a new management pack named for example Contoso Activity where you store the template
- Manual Activity Template, input a title, for example Contoso – Manual Activity. Click OK
- Click Create Template again
- Create Template, input a name, for example Contoso – Template – Mail Incident. Select Incident as class and select the same management pack as before
- Incident Template, configure classification category, source, impact, urgency
- Click on the Activities tab
- Click Add…
- Select a class, select Contoso.Manual.Activity and click OK
- Select Template, select Contoso – Template – Manual Activity
- Click OK
- Click OK to close the Incident Template form
- Time to publish this as a Request Offering. Navigate to Library/Service Catalog/Request Offerings, click Create Request Offering from the Tasks Pane
- Create Request Offering, General,
- input title Exchange Issue
- Template name, Contoso – Template – Mail Incident
- Create Request Offering, User Prompt. Note that we use only strings here. You could configure your management pack properties to be true/false or any other data type. You can then also use the same data type in Service Manager user input, for example let the user select Outlook and Windows version from a drop down menu.
- Create Request Offering, Map Prompts,
- Create Request Offering, Publish. Change Offering Status to Published. Finish the wizard
- Create a new Service Offering, named for example Incident, and include the request offering you just created. Don´t forget to change the service offering status to Published.
- Browse to the self-service portal now
If the user then submits the incident you can see all the custom data under the activities tab. As we added the text fields to the new activity class. That is not optimal to have it there, as it will require some extra clicks to show it.
You can of course solve this with Orchestrator 🙂 I have create a simple runbook that picks up the incident and merge the User Input data with the Description field. The User Input field is a default field on a incident that contains all the data we added to the custom text fields on the activity. You could trigger this runbook automatically when a new incident of this type is created. One thing to think about is that you want to merge the User Input data with the already existing Description field, make sure not to overwrite it. As you can see in the last image we also get the XML code from User Input. I did not create a runbook to clean that, but you could of course do that with a runbook too, to only keep the user input text.
The result, you can use custom input fields, different for different type of incident, to let user report incident with the self-service portal.
As usual thanks to Patrik for Service Manager authoring support
Please note that this is provided “as is” with no warranties at all.