For many organizations, ServiceNow homepages (and their evolved counterpart, dashboards) offer indispensable insights into platform data and operational health. In fact, ServiceNow’s reporting and Performance Analytics (PA) tools are among its greatest strengths. That said, some advanced reporting and PA tools are often under-utilized, likely due to a lack of familiarity. One of those tools, which will be the topic of today’s article, is interactive filtering.
First, it is worth noting that even though Interactive Filters are considered part of ServiceNow’s reporting suite and not Performance Analytics, you will be unable to create your own Interactive Filters from scratch without a Performance Analytics premium license. However, without that license, you will still have access to some select, pre-built filters designed to work with the incident table. Likewise, if you’d like to experiment with this functionality, you can make it available to yourself within a personal ServiceNow developer instance by activating the “Performance Analytics – Premium” plugin. Additionally, this article will assume some familiarity with the ServiceNow platform, ServiceNow reporting, and basic dashboard configuration (adding / removing widgets, etc.)
On that note, I’d like to proceed by emphasizing the utility that interactive filters provide: They allow end users to filter report widgets, regardless of type, according to data values stored within records on the given table. For example, if you have a dashboard with a widget that displays a list of open incidents, you can create interactive filters that will allow you to dynamically filter that widget, and any others on that same tab that have been configured to follow the filter (like, for example, a pie chart or simple count report).
As implied above, report widgets need to be set to “follow” interactive filters, and interactive filters will only apply to report widgets on the same tab. In order to set a widget to “follow” the interactive filters on the page, from within configuration mode, highlight the heading bar of a widget you’d like to configure, and access the “Edit Widget” gear icon.
This will cause the “Edit Widget” menu to appear. From within this menu, the “Follow interactive filter” checkbox should be checked or unchecked, depending on your intention. Optionally, you can check the “Show when following filter” checkbox to add visual feedback to indicate when filters have been applied to reports on the page.
If you need to add an interactive filter to the page in the first place, access the “Add Widgets” menu, as if adding any other widget, and click on “Interactive Filters” in the dropdown menu. Then, choose the filter type associated with the interactive filter you want to add, then select the appropriate filter widget to add it to the page.
To create a new interactive filter, type “interactive filters” into the navigator and select the module that appears under the Reports application menu (in the Administration grouping). This will present you with a list of existing filters. Click “New” near the top to begin creating one. You’ll be presented with a series of fields. I’ll walk through the set up for a basic filter: Filtering ITSM tasks by the “Assigned to” field.
Fields I do not mention will be left as-is.
Filter based on – This is where you determine the mechanism by which the filtering options are presented. In our case, we want to filter according to a record stored within ServiceNow, so we will select “Reference.”
Name – The name for our filter. I’ll choose “Assigned to”
Lookup name – A user-facing name to aid with searching. I’ll use “ITSM Tasks – Assigned to”
Apply to all tables in hierarchy – I will be leaving this unchecked, but I want to point out that, if I check this, and select “Task” as my reference table, I can easily configure this filter to apply to all tables that extend from the “Task” table. However, for this example, I want to restrict my filter to just Incident, Problem, and Change tasks.
UI control type – This further refines how the UI of the filter is configured. I will choose “Select Single Input,” but if I choose “Select Multiple Input,” for example, I would be able to show the combined list of tickets assigned to multiple different users.
Reference table – This is the table we will use as our filter values. We want the User [sys_user] table. I will refine this by adding a filter to the reference table to only show active users.
We can now save our interactive filter record. This will make the “Interactive Filter References” related list appear. Creating records in this table is how we define how the values selected from our reference table will be used to filter records.
I will want to create 3 Interactive Filter Reference records, one for each of Incident, Problem, and Change, choosing “Assigned to” as our Reference field each time. This indicates to the system that, when a filter value is chosen (a user), it should filter the associated report widgets on the page to only show records where the selected user appears in the “Assigned to” field. Our interactive filter will only apply to report widgets configured for the Incident, Problem, or Change tables. So, if we add a report widget for the “Change Task” or “Request” tables, this filter will not apply to them, even if “Follow interactive filter” is checked on the widget settings. We can, however, add additional tables to be affected if we define additional Interactive Filter References. (Note: You can not choose List type fields as Reference fields in Interactive Filter References. You can only filter on list fields with custom interactive filters, which will not be explained today.)
Now, if a dashboard is created with widgets related to incidents, problems, and/or changes, and this new interactive filters widget is also added, we can filter these reports according to the “Assigned to” field.
This covers the basics of ServiceNow Interactive Filters. A topic for further exploration is custom interactive filters. These are custom filters, designed with JellyScript, that allow more complex filtering via scripting. Look for more information on that in a future article!