---
sourceDocument: Australia ServiceNow AI Platform Administration
sourceDocumentLink: https://www.servicenow.com/docs/r/australia/platform-administration

 Release :

    - australia

ft:locale :

    - en-US

ft:publication_title :

    - Australia ServiceNow AI Platform Administration

ft:clusterId :

    - platadm

bundleId :

    - platadm

workflow :

    - Platform


---

# Search Scripted Post-processors form

# Search Scripted Post-processors form {#ariaid-title1}

Release version: Australia  
Updated October 20, 2026  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes to read
Summarize  
![AI sparkle icon](https://servicenow.com/docs/portal-asset/ai-sparkle-icon) Summarized using AI  
This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.  

## Summary of Search Scripted Post-processors form

The Search Scripted Post-processors form in ServiceNow's AI Search application configuration allows you to create and manage scripted post-processors that modify search results after the initial query processing.
This feature helps tailor search results dynamically by running server-side scripts that adjust record data before display.
Show full answer Show less  

## Key Features

* **Activation Control:** Enable or disable individual search scripted post-processors as needed.
* **Scope Definition:** The Application field automatically sets the application scope to ensure scripts run within the correct context.
* **Record Type Specification:** Choose whether the script operates on Genius Result answer records or standard search result records.
* **Custom Post-processing Script:** Write server-side JavaScript functions that accept a record object, allowing you to modify search result fields dynamically. For example, converting date fields into human-friendly formats enhances the readability of search results.
* **API Method Overview:** The UI provides an overview of available API methods to assist in script development, and existing scripts can be accessed and reused via the syssearchscriptedprocessor list view.

## Practical Application

ServiceNow customers can use this form to customize search outputs according to their business needs without altering the underlying data. For example, by transforming date fields into relative time expressions (e.g., "2 hours ago"), search results become more intuitive for users.

To edit or create scripts, users can start from existing scripts accessible via the syssearchscriptedprocessor table, enabling efficient reuse and adaptation of code.  
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](https://www.servicenow.com/docs/9v_~huXOlo2OzagDMl6Y1w#script-post-process-ais "Use scripted post-processors to modify search result records for display in a search application.").  
{#search-script-postprocess-form-ais__table_jwr_5vb_5nb__entry__2}

| 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. {#search-script-postprocess-form-ais__ul_h5s_kyb_5nb} |
| 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: 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 <kbd class="ph userinput">sys_search_scripted_processor.list</kbd>. 3. Press Enter. {#search-script-postprocess-form-ais__ol_tcp_pjk_fcc} |
[Table 1. Search Scripted Post-processors form]

{#search-script-postprocess-form-ais__table_jwr_5vb_5nb}

