<h2>Custom interactive filters</h2><br/><div style="overflow-x:auto"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta content="text/html; charset=UTF-8" /><meta name="copyright" content="(C) Copyright 2026" /><meta name="DC.rights.owner" content="(C) Copyright 2026" /><meta name="generator" content="DITA-OT" /><meta name="DC.type" content="concept" /><meta name="DC.title" content="Custom interactive filters" /><meta name="abstract" content="As an administrator, you can create scripted interactive filter widgets to provide advanced filtering options on dashboard reports." /><meta name="description" content="As an administrator, you can create scripted interactive filter widgets to provide advanced filtering options on dashboard reports." /><meta name="DC.subject" content="Interactive filters, custom filter" /><meta name="keywords" content="Interactive filters, custom filter" /><meta name="DC.relation" scheme="URI" content="../../../use/dashboards/concept/c_HomepagePublishers.html" /><meta name="DC.relation" scheme="URI" content="../../../use/performance-analytics/concept/c_performanceAnalyticsAndReporting.html" /><meta name="DC.relation" scheme="URI" content="../../../use/reporting/concept/classic-vis-overview.html" /><meta name="DC.relation" scheme="URI" content="../../../use/dashboards/reference/r_CustomPublisherExample.html" /><meta name="DC.relation" scheme="URI" content="../../../use/dashboards/concept/c_DebugPublisher.html" /><meta name="DC.relation" scheme="URI" content="../../../use/dashboards/reference/custom-if-limitations.html" /><meta name="DC.relation" scheme="URI" content="../../../app-store/dev_portal/API_reference/DashboardMessageHandler/concept/c_DashboardMessageHandler.html" /><meta name="DC.relation" scheme="URI" content="../../../use/dashboards/concept/dynamic-js-filters.html" /><meta name="DC.contributor" content="joe.silber" /><meta name="DC.contributor" content="courtney.bradwell" /><meta name="DC.date.created" content="2023-08-03" /><meta name="DC.date.modified" content="2024-10-22" /><meta name="DC.format" content="XHTML" /><meta name="DC.identifier" content="c_CustomPublishers" /><link rel="stylesheet" type="text/css" href="../../../CSS/commonltr.css" /><title>Custom interactive filters</title></head><body id="c_CustomPublishers"> <div class="breadcrumb"><a class="link" href="https://docs.servicenow.com/bundle/xanadu-now-intelligence/page/use/performance-analytics/concept/c_performanceAnalyticsAndReporting.html" title="Optimize processes and increase productivity with the Platform Analytics applications. These applications include Reporting, Performance Analytics, User Experience Analytics, and Process Mining. Present data through either the Core UI or the Platform Analytics experience.">Platform Analytics</a> > <a class="link" href="https://docs.servicenow.com/bundle/xanadu-now-intelligence/page/use/reporting/concept/classic-vis-overview.html" title="Present analytics on Core UI dashboards through reports and Performance Analytics widgets. Explore Performance Analytics indicators on the Analytics Hub.">Reporting, dashboards, and Performance Analytics in the Core UI</a> > </div> <h1 class="title topictitle1" id="ariaid-title1">Custom interactive filters</h1> <div class="body conbody"><p class="shortdesc">As an administrator, you can create scripted interactive filter widgets to provide advanced filtering options on dashboard reports.</p> <p class="p">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.</p> <p class="p">Custom filters are scripted <span class="ph uicontrol">System UI</span> <span class="ph uicontrol">Widgets</span> that use the <span class="keyword apiname">DashboardMessageHandler</span> JavaScript class to define and publish report filters.</p> <p class="p">Role required: <span class="ph">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 <span class="ph">Platform Analytics</span> experience.</span></p> <div class="note" id="c_CustomPublishers__note_sbg_bmk_kgb"><span class="notetitle">Note:</span> 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 <a class="xref" href="https://docs.servicenow.com/bundle/xanadu-now-intelligence/page/use/dashboards/reference/custom-if-limitations.html" title="Custom interactive filters are a fallback for use when standard interactive filters do not provide certain functionality.">Custom interactive filter limitations</a>.<p class="p">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 <a class="xref" href="https://www.servicenow.com/docs/access?context=access-control-rules&version=xanadu&pubname=xanadu-platform-security&ft:locale=en-US" target="_blank" rel="noopener noreferrer">Access control list rules</a>.</p> </div> <p class="p">The code that publishes the filter must call the <span class="keyword apiname">SNC.canvas.interactiveFilters.setDefaultValue()</span> method and it must call the <span class="keyword apiname">dashboardMessageHandler.publishFilter()</span> method to publish the filter.</p> <p class="p">Define the appearance of the widget, such as available buttons, using Jelly.</p> <p class="p">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 <a class="xref" href="https://docs.servicenow.com/bundle/xanadu-now-intelligence/page/app-store/dev_portal/API_reference/DashboardMessageHandler/concept/c_DashboardMessageHandler.html" title="Provides methods to define custom filtering logic for interactive filters.">DashboardMessageHandler</a>.</p> </div> <div class="related-links"> <ul class="ullinks"><li class="link ulchildlink"><strong><a href="https://docs.servicenow.com/bundle/xanadu-now-intelligence/page/use/dashboards/reference/r_CustomPublisherExample.html">Custom interactive filter examples</a></strong><br /> As an administrator, you can create custom interactive filter widgets to provide advanced filtering options on dashboards.</li><li class="link ulchildlink"><strong><a href="https://docs.servicenow.com/bundle/xanadu-now-intelligence/page/use/dashboards/concept/c_DebugPublisher.html">Use the Debug filter</a></strong><br /> The debug interactive filter helps you create custom filters. This filter displays a JSON array representation of all active filters on a dashboard.</li><li class="link ulchildlink"><strong><a href="https://docs.servicenow.com/bundle/xanadu-now-intelligence/page/use/dashboards/reference/custom-if-limitations.html">Custom interactive filter limitations</a></strong><br /> Custom interactive filters are a fallback for use when standard interactive filters do not provide certain functionality.</li><li class="link ulchildlink"><strong><a href="https://docs.servicenow.com/bundle/xanadu-now-intelligence/page/app-store/dev_portal/API_reference/DashboardMessageHandler/concept/c_DashboardMessageHandler.html">DashboardMessageHandler</a></strong><br /> Provides methods to define custom filtering logic for interactive filters.</li><li class="link ulchildlink"><strong><a href="https://docs.servicenow.com/bundle/xanadu-now-intelligence/page/use/dashboards/concept/dynamic-js-filters.html">Dynamic JavaScript filters</a></strong><br /> Create dynamic conditions in JavaScript that you can configure as part of a report visualization's criteria instead of specified values.</li></ul> <div class="familylinks"> <div class="parentlink"><strong>Parent Topic:</strong> <a class="link" href="https://docs.servicenow.com/bundle/xanadu-now-intelligence/page/use/dashboards/concept/c_HomepagePublishers.html" title="Interactive Filters allow you to filter all reports on a dashboard dynamically, without modifying the original reports.">Interactive Filters</a></div> </div> </div></body></html></div>