---
sourceDocument: Australia Field Service Management
sourceDocumentLink: https://www.servicenow.com/docs/r/field-service-management

 Release :

    - australia

ft:locale :

    - en-US

ft:publication_title :

    - Australia Field Service Management

ft:clusterId :

    - fsm

bundleId :

    - fsm

workflow :

    - Customer and Industry


---

# Scripts for custom task recommendations

# Providing a script for custom task recommendation criteria {#ariaid-title1}

* Release version: Australia
* 
* Updated March 12, 2026
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute to read

Guidelines for creating scripts in recommendation criteria for an Intelligent Task
Recommendation policy.

## Customization script return object {#script-guidelines-recommendation-criteria__section_lp5_22d_gqb}

Your script should return a JavaScript object in a minimum form as follows:  

    { 
      "<task sys_id1>": 
        {
          "rating": <rating1>
        },
      "<task sys_id2>":
        {
          "rating": <rating2>
        },
      ...
    }

For filter constraints, set the return objects rating to one to unify the filter constraint
result of the recommendation criteria by using the
sn_task_recommend.TaskRecommendationUtil.setRatingToOne(your object);
method.
To normalize the rating result of ranking criteria, the return JavaScript object should include normalization information.

    {           
        "<task <sys_id1>":     
            {
                "rating": <rating1>, 
                "normalizationData": 
                    {
                        "numerator": <numerator value1>,
                        "denominator": <denominator value1> 
                    }
            },    
        "<task <sys_id2>":     
            {
                "rating": <rating2>, 
                "normalizationData": 
                    {
                        "numerator": <numerator value2>,
                        "denominator": <denominator value2> 
                    }
            },
        ...
    }

For ranking criteria, the return object can contain data for final normalization.  
Note:  
If your scripts include normalization data, you can refer to the default script includes in the predefined recommendation criteria:

* The filtering constraint Exclude tasks agent cannot travel to: sn_fsm_task_rec.TaskRecommendationDistanceRuleProcessor
* The ranking criteria Distance from task: rankTaskOnDistance()
{#script-guidelines-recommendation-criteria__ul_s1g_3g4_gqb}

## Customized script in recommendation criteria {#script-guidelines-recommendation-criteria__section_j43_zgd_gqb}

The following example shows how to write a script for the recommendation criteria.

    var customizedScript = <your-script>; 
    var customizedResult = customizedScript.<your-method>(); 
    ruleResult = TaskRecommendationFSMUtil.parseRuleResult(customizedResult, "<customized-rule>");

The following sample configuration provides a "distance from task" filter constraint.

    var distanceRule = new TaskRecommendationDistanceRuleProcessor(args); 
    var ruleProcessResult = distanceRule.processRule(user, tasks, timeStart, timeEnd, 'ranking'); 
    ruleResult = TaskRecommendationFSMUtil.parseRuleResult(ruleProcessResult, "Distance from task");

Note:  
Do not replace the task recommendation application keyword `ruleResult` in the script with any other words. Otherwise, the application will not be able to process the rule execution result.

