Custom Interactive Filter for "between "dates
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-31-2025 07:11 AM
Hi All,
I'm working on Custom Interactive Filter ,
I am looking to add date range filter on my dashboard , it should let me pick specific FROM & To date and based on the date selection the reports data should be changed.
Based on the date selection my reports should be able to reflect the data.
I have referred old post of interactive filter : https://www.servicenow.com/community/platform-analytics-forum/date-range-filter-in-a-dashboard/m-p/1...
https://www.servicenow.com/community/platform-analytics-forum/how-to-create-a-date-range-interactive...
But didn't get from anywhere
Please suggest anyone find the solution.
Thanks,
Fareeza
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-31-2025 08:04 AM
Hi @FareezaThasneem .
Please use Dynamic Content block (Table - content_block_programmatic) using jelly script to create a custom date range filter, below is the code which i have used for one of the scenario..
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<style>
.btn.active {
box-shadow: inset 0 3px 5px rgb(0 0 0 / 50%);
!important;
}
.btn.cs-btn {
width: 55px;
}
</style>
<script>
var my_dashboardMessageHandler = new DashboardMessageHandler("onboarding_date_filter");
function applyFilter() {
var valueStart = document.getElementById("onboardingDateRangeStart").value;
var valueEnd = document.getElementById("onboardingDateRangeEnd").value;
var filter_message = {};
filter_message.id = "onboarding_date_filter";
filter_message.table = "table_name";
if (!valueStart)
filter_message.filter = "";
else if (!valueEnd)
filter_message.filter = "";
else
filter_message.filter = "onboarding_dateBETWEENjavascript:gs.dateGenerate('" + valueStart + "','00:00:00')@javascript:gs.dateGenerate('" + valueEnd + "','23:59:59')";
SNC.canvas.interactiveFilters.setDefaultValue({
id: filter_message.id,
filters: [filter_message]
}, false);
my_dashboardMessageHandler.publishFilter(filter_message.table, filter_message.filter);
}
document.addEventListener('DOMContentLoaded', function () {
var startDate = document.getElementById("onboardingDateRangeStart");
var endDate = document.getElementById("onboardingDateRangeEnd");
startDate.addEventListener('focus', function () {
startDate.showPicker();
});
endDate.addEventListener('focus', function () {
endDate.showPicker();
});
});
</script>
<span style="display:flex;">
<label style="width: 8%; margin-top: 12px; padding:10px;">From Date</label>
<input id="onboardingDateRangeStart" type="date" class="form-control" value="" onchange="applyFilter();" style="margin-top: 15px; width: 15%;"/>
<label style="width: 8%; margin-top: 12px; padding:10px; margin-left: 30px;">To Date</label>
<input id="onboardingDateRangeEnd" type="date" class="form-control" value="" onchange="applyFilter();" style="margin-top: 15px; width: 15%;"/>
</span>
</j:jelly>
Kaushal Kumar Jha - ServiceNow Consultant - Lets connect on Linkedin: https://www.linkedin.com/in/kaushalkrjha/
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-01-2025 12:03 AM
Thanks for sharing @kaushal_snow , its working.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-01-2025 07:29 AM
Glad it works @FareezaThasneem ...
Kaushal Kumar Jha - ServiceNow Consultant - Lets connect on Linkedin: https://www.linkedin.com/in/kaushalkrjha/
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-31-2025 08:44 AM
Check if below helps,
Thanks,
Bhuvan