ServiceNow

The ServiceNow integration is now available for beta testing.

The ServiceNow integration supports two main features:

1) You can send notifications via Klaxon when you raise a major incident in ServiceNow; or when you change an incident priority level. These notifications are placed in a queue in Klaxon, for administrators to check and release.

2) When a recipient clicks an action response button in a Klaxon notification, such as 'I'm affected', a child incident can be created in ServiceNow. By default this only happens for the 'I'm affected' action response, however this can be customised.

This guide outlines how the integration can be installed and configured. Please refer to the user-guide for details about how to use the ServiceNow integration.

Importing and previewing the Klaxon update set into ServiceNow

The integration can be added to your instance of ServiceNow by applying the Klaxon update set.

Please contact your account manager for the update set installation files.

On the filter navigator type upload.do and press enter.

Choose Klaxon Integration.xml and click upload.

Navigate to Retrieved update set by typing sys_remote_update_set.list in the filter navigator and pressing enter.

OR

Open the uploaded update set by selecting it from the list of Retrieved Update Sets.

Click the Preview Update set button.

You should see the popup as shown below, click the close button.

There are 13 objects in this update set.  Once previewed you should see the Commit button become available.

If there are any conflicts between the 13 objects you are uploading, and objects that already exist in your environment that have been changed more recently, these will be flagged as errors which will need to be addressed by either keeping your version of the object or keeping the import set  version.  For a fresh install you should not experience any errors.

Once imported you will need to add the role klaxon_admin to your users if you want them to be able to see the menu items, but these will also be available to admins by default.

On the Klaxon properties page you’ll see the properties you can modify which should be the only changes you’ll need to maintain when moving this update through development / test and onto your production instances.

Setting up the configuration for Klaxon Integration

Typing klaxon in the Filter Navigator will bring you the Klaxon Properties page.

On this page you’ll see two properties:

1) The first is used to specify the klaxon URL which may contain your organisation's name.  e.g.

https://organisationname.klaxon.io

2) The second property contains the Klaxon Authentication token, which you can copy from Klaxon - Configuration->ServiceNow

Clicking Save will save these properties to ServiceNow, they can be found under System Properties by typing sys_properties.list in the filter navigator and pressing enter.

Changing the trigger conditions

To modify the trigger conditions for the business rule, i.e. When incident  details are sent to Klaxon, navigate to Business Rules on the filter navigator.

Open one of the business rule for Klaxon, such as Klaxon MI Raised.

It is possible to change the conditions above to trigger the raised REST call under whatever conditions you require.  As shown in the example above, the trigger conditions show that

Priority field needs to CHANGE TO 1 – Critical, or 2 – High  

AND

Priority needs to be changing from 3- Moderate, 4 – Low or 5 Planning.

What we are saying here is, do not trigger this is the priority changes from a P2 to a P1 as we are classing P2 and P1 as Major Incidents.

Click Save or Update to store your changes and make sure your business rule is Active.

You may want to use the Insert and Stay facility on the menu to save a copy of your business rule, if you would like to trigger the same REST call using multiple separate conditions.

Optional - Integrating with the ServiceNow Major Incident Module

It may be that you are using the Major incident module within ServiceNow.  Your trigger conditions may need to change. In which case you may consider something like the following for the raised Business Rule.

Modify the fields sent to Klaxon

Navigate to script includes:

And select the script include called klaxon.

You will see the functions specified in the script include which are called from the various business rules.

The section as follows builds up the REST message to be sent to Klaxon.  Whilst in communication with Klaxon it may be required to add or remove fields from this list depending on the sorts of information you want to make available in the notifications.

       var bd = {};

       bd.rootIncidentId = current.number.toString();

       bd.sys_id = current.sys_id.toString();

       bd.title = current.short_description.toString();

       bd.description = current.description.toString();

       bd.createdByUserEmail = current.caller_id.email.toString();

       bd.location = current.location.name.toString();

       bd.config_item = current.cmdb_ci.name.toString();

       bd.service = current.business_service.name.toString();

       bd.startTime = current.opened_at.toString();

       //bd.estimatedEndTime = current.due_date.toString();

       bd.state = current.state.toString();

       bd.work_notes = current.work_notes.getJournalEntry(1);

       bd.comments = current.comments.getJournalEntry(1);

       bd.notification_action = notification_action;

       if (notification_action == 'close') {

           bd.resolved_at = current.resolved_at;

           bd.close_code = current.close_code;

           bd.close_notes = current.close_notes;

       }

The current object relates to the table item that the business rule is executing against. In this case the incident table, and will contain all the fields available to the incident table that the user can see.

current.number is the incident number, e.g. INCxxxxxxxx

current.sys_id is the unique ID used by servicenow (and klaxon) to identify the incident record.

In situations where we are passing reference fields (i.e. foreign keys to other tables, dot walking is used to navigate to fields on the referenced table.

current.location in this example contains a sys_id of a row in the cmn_location table. To determine the actual name of the location we need to use current.location.name.

The toString() method is used to ensure we are not passing back any complete objects by mistake.

You can also see the IF statement in this block. These fields are only passed to Klaxon if the incident triggering the business rule is moving to a resolved or closed state.

       if (notification_action == 'close') {

           bd.resolved_at = current.resolved_at;

           bd.close_code = current.close_code;

           bd.close_notes = current.close_notes;

       }

This can be seen in the example Klaxon MI Closed, by the additional parameter when making the call to the script include.

x=new klaxon().miRaised(current,previous,"closed");

Still need help?

Let us know how we can help.

Contact Support