Dave Slusher

3 minute read

Guided Tours is a ServiceNow feature that doesn’t get quite its due as the powerhouse it is. It is really a great way to increase user satisfaction and remove that bit of frustration when rolling out new functionality in your instance. Inside the Developer Program itself, when we rolled out a feature for Meetup reimbursements we added a Guided Tour to explain all the steps. In New York, there are a few key enhancements to make this great feature even better.

Guided Tours for Service Portal

As of the New York release, Guided Tours can be created for Service Portal and Custom UI Pages. If you have a fresh instance provisioned on New York, everything will just work. If you have an instance that was upgraded from a previous version, you will need to set these properties to True:

  • com.snc.guided_tours.sp.enable
  • com.snc.guided_tours.custom_ui.enable

Once those properties are enabled, tours can be created for Service Portal and Custom UI Pages.

Here is an example of creating a tour for one of my personal SP pages.

First I create the tour, choosing “Service Portal” as the type.

Create the Tour for Service Portal

Once that is created, tours can be created by the familiar methods. First create an introduction.

Create the Tour Introduction

After that, add tour callouts to any of the elements on any of the Service Portal widgets on the page. The purplish highlighting shows which element is the current target for dropping the callout.

Place the Callout on the Widget

When all of the callouts of a tour have been placed, it will have a familiar look to it for those experienced with tours. The elements and the order are listed on the Service Portal page. In this case, they span various widgets across the single page.

Finished Tour

Guided Tour API

As of New York there is an API for starting Guided Tours.

This allows for conditionally starting tours in a more robust fashion. Previously, the only trigger was whether the tour had been seen and dismissed. Now, for example, a tour could be displayed for any user who has not yet created a record of a certain type. Anything that can be done in script or queried via GlideRecord can be the start criteria. The call to the startTour() function can be passed an optional callback function. If that callback returns true the tour launches, if not it does not.

The startTour() function also accepts a step number, so it is possible programmatically to start a tour at a specific step. This may make sense when the callback logic suggests a user needs to see a specific step (like, not having an approved record or something like that.)

Analogously to the startTour() function, there is an endTour() function. Coupled with the startTour() at a specific step, this can allow for showing a subset of a tour when the condition suggest that a user needs a refresher on a specific feature of the tour.

There is also now an events API that allows for attaching event listeners to various tour events :

  • stepStarted
  • tourStarted
  • tourEnded
  • tourCompleted
  • tourFailed
  • tourAbandoned
  • tourDismissed

Guided Tours is a cool feature that reduces the friction of rolling out features and customizations. With these new target types and APIs, the power of tours has increased significantly. If not currently using tours, it is worth a look to see what value it can provide to your organization.