Search Scripted Post-processors form

reference australia Updated Oct 20, 2026 2 min read search-script-postprocess-form-ais.md
Raw file servicenow.com

The Search Scripted Post-processors form enables you to create a search scripted post-processor in the search application configuration for an AI Search application.

For details on creating or editing search scripted post-processors, see Using search scripted post-processors in AI Search application configurations.

Field

Description

Active

Option to activate the search script post-processor.

Name

Name for the search script post-processor.

Application

Application scope for the search script post-processor. This field is automatically set.

Type

Type of record the search script post-processor operates on. Valid values:

  • Genius Result: Script operates on a Genius Result answer record.
  • Search Result: Script operates on a search result record.

Post processing script

Server-side script function that takes a record object as its parameter. When the search scripted post-processor is linked to a search application configuration, search results reflect changes made to the record object in this script function. As an example, this post-processing script function operates on search results from the kb_knowledge table, transforming sys_updated_on date field values into a human-readable format:

JavaScript
function process(record) {
    var transformableTables = ['kb_knowledge'];    var transformableDateFields = ['sys_updated_on'];
    var table = record.getTable();
    // Terminate early if possible, to avoid unnecessary overhead    if (transformableTables.indexOf(table) === -1)        return;
    function transformToHumanFriendlyDate(rawDate) {        // Time gaps in ms        var MINUTE_GAP = 60000;        var HOUR_GAP = 3600000;        var DAY_GAP = 86400000;        var WEEK_GAP = 604800000;        var MONTH_GAP = 2592000000;        var YEAR_GAP = 31536000000;
        var gap = new Date().getTime() - rawDate;        if (gap < MINUTE_GAP) {            return gs.getMessage('Just Now');        } else if (gap > MINUTE_GAP && gap < 2 * MINUTE_GAP) {            return gs.getMessage('1 minute ago');        } else if (gap < HOUR_GAP) {            return gs.getMessage('{0} minutes ago', '' + Math.floor(gap / MINUTE_GAP));        } else if (gap > HOUR_GAP && gap < 2 * HOUR_GAP) {            return gs.getMessage('1 hour ago');        } else if (gap < DAY_GAP) {            return gs.getMessage('{0} hours ago', '' + Math.floor(gap / HOUR_GAP));        } else if (gap > DAY_GAP && gap < 2 * DAY_GAP) {            return gs.getMessage('1 day ago');        } else if (gap < WEEK_GAP) {            return gs.getMessage('{0} days ago', '' + Math.floor(gap / DAY_GAP));        } else if (gap > WEEK_GAP && gap < 2 * WEEK_GAP) {            return gs.getMessage('1 week ago');        } else if (gap < MONTH_GAP) {            return gs.getMessage('{0} weeks ago', '' + Math.floor(gap / WEEK_GAP));        } else if (gap > MONTH_GAP && gap < 2 * MONTH_GAP) {            return gs.getMessage('1 month ago');        } else if (gap < YEAR_GAP) {            return gs.getMessage('{0} months ago', '' + Math.floor(gap / MONTH_GAP));        } else if (gap > YEAR_GAP && gap < 2 * YEAR_GAP) {            return gs.getMessage('1 year ago');        } else {            return gs.getMessage('{0} years ago', '' + Math.floor(gap / YEAR_GAP));        }    }
    for (var i = 0; i < transformableDateFields.length; i++) {        var fieldName = transformableDateFields[i];        var updatedDateField = record.getField(fieldName);        if (updatedDateField !== null) {            var updatedDateRaw = updatedDateField.getValue();            if (updatedDateRaw != null) {                var humanFriendlyDate = transformToHumanFriendlyDate(updatedDateRaw);                updatedDateField.setDisplayValue(humanFriendlyDate);            }        }    }}

Note: The UI displays an overview of API methods usable in the post-processing script function.

You can copy code from an existing post-processor script to use as a starting point for your own script function. To access existing post-processor scripts, open the Search Scripted Post-processors [sys_search_scripted_processor] table in list view by following these steps:

  1. Select All.
  2. In the navigation filter, enter sys_search_scripted_processor.list.
  3. Press Enter.
**Parent Topic:**[AI Search reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/platform-administration/ai-search/reference-ais.md)
Search documentation
Search document titles and file paths on the australia branch