---
sourceDocument: Xanadu Platform Analytics
sourceDocumentLink: https://www.servicenow.com/docs/r/xanadu/now-intelligence

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu Platform Analytics

ft:clusterId :

    - par

bundleId :

    - par

workflow :

    - Platform


---

# Custom interactive filters

# Custom interactive filters {#ariaid-title1}

* Release version: Xanadu
* 
* Updated October 22, 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute to read

As an administrator, you can create scripted interactive filter widgets to provide
advanced filtering options on dashboard reports.

With a custom interactive filter, you can control aspects of the filter interface and filtering
logic. Create filters that fit your specific needs. Custom interactive filters include filters
that perform multiple, common filtering operations with a single click.

Custom filters are scripted System UI
Widgets that use the DashboardMessageHandler JavaScript
class to define and publish report filters.

Role required: hp_publisher_admin and report_admin. The hp_publisher_admin role exists only for managing interactive filters in Core UI. By default, it contains the role analytics_filter_admin for managing Core UI filters that are migrated to Platform Analytics experience.  
Note:  
The exposed API for custom interactive filters is limited and does not provide parity with standard interactive filters. Before implementing any custom interactive filters, review the [Custom interactive filter limitations](https://www.servicenow.com/docs/hs~Xu9d5AK4rrDbwhLtAQw "Custom interactive filters are a fallback for use when standard interactive filters do not provide certain functionality.").

Access control lists on the Table API may restrict the records shown
when a dashboard is filtered. To alleviate this problem, add users or roles to the Table API
access control list. For more information, see [Access control list
rules](https://www.servicenow.com/docs/access?context=access-control-rules&version=xanadu&pubname=xanadu-platform-security&ft:locale=en-US).

The code that publishes the filter must call the
SNC.canvas.interactiveFilters.setDefaultValue() method and it must call the
dashboardMessageHandler.publishFilter() method to publish the filter.

Define the appearance of the widget, such as available buttons, using Jelly.

You can add multiple custom interactive filters to the same dashboard. The filters must have
unique IDs in the filter object and unique IDs for the [DashboardMessageHandler](https://www.servicenow.com/docs/2D3JvuJj0xwM6RPe7Zas5A#c_DashboardMessageHandler "Provides methods to define custom filtering logic for interactive filters.").
* **[Custom interactive filter examples](https://www.servicenow.com/docs/wG~niKbZl_~mrJwY0m7k5g#r_CustomPublisherExample)**   
  As an administrator, you can create custom interactive filter widgets to provide advanced filtering options on dashboards.
* **[Use the Debug filter](https://www.servicenow.com/docs/3dNgJ2UPlgV93S_RbMak0g)**   
  The debug interactive filter helps you create custom filters. This filter displays a JSON array representation of all active filters on a dashboard.
* **[Custom interactive filter limitations](https://www.servicenow.com/docs/hs~Xu9d5AK4rrDbwhLtAQw)**   
  Custom interactive filters are a fallback for use when standard interactive filters do not provide certain functionality.
* **[DashboardMessageHandler](https://www.servicenow.com/docs/2D3JvuJj0xwM6RPe7Zas5A#c_DashboardMessageHandler)**   
  Provides methods to define custom filtering logic for interactive filters.
* **[Dynamic JavaScript filters](https://www.servicenow.com/docs/bWv~JtMmT3a3OPVw6BuYgg#dynamic-js-filters)**   
  Create dynamic conditions in JavaScript that you can configure as part of a report visualization's criteria instead of specified values.

