Providing a script for custom task recommendation criteria

  • Release version: Australia
  • Updated March 12, 2026
  • 1 minute to read
  • Guidelines for creating scripts in recommendation criteria for an Intelligent Task Recommendation policy.

    Customization script return object

    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()

    Customized script in recommendation criteria

    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.