Skip to content

Suggestions reference


Anindita Basu    Feedback

Suggestions are built on top of rules. Each rule is of a pre-defined activity type, and contains several parameters that are described on this page.

Rule types

Rule types are the framework to use when creating rules suggestions. The following table lists the standard rule types. Example code for these rule types are further down the page.

Rule type When to use Rule category
lastActivity For suggesting the next best course of action Suggestion rule binding
managerParticipant For activities where managers are participants Suggestion rule binding
activityScheduled For sending reminders Suggestion rule binding
activityFrequency For counting the number of times an activity is done Suggestion rule binding
voAttribute For suggestions based on any of the module or user attributes Filter rule binding
voModule For suggestions that must refer to a specific module Filter rule binding
voState For suggesting the next best course of action when the state of record changes Filter rule binding
voCreatedDate For suggestions based on record age Filter rule binding
voLastUpdateDate For suggestions based on record age Filter rule binding
voMeetingDate For reminders Filter rule binding
userTeamFilter Filter rule binding
composite For using more than one rule in a single rule A composite rule can contain rules of only one category, either Suggestion Rule Binding or Filter Rule Binding.

Each rule type its own JSON structure (see Example configuration for rule types).

List operators

  • IN, for suggestions that work on the presence of a value in a list; for example, if a record is generated during a specific campaign
  • NOT_IN, for suggestions that work if a value is absent in a list; for example, if a record isn't in a specific state.
  • IS_EMPTY, for suggestions that work when a null list is returned by a rule; for example, if no meetings are scheduled for a specific day.
  • IS_NOT_EMPTY, for suggestions that work when a list isn't empty; for example, if the created date for a record is equal to today.

Frequency operators

  • AT_LEAST, which evaluates to greater than or equal to
  • MORE_THAN, which evaluates to greater than
  • AT_MOST, which evaluates to less than or equal to
  • LESS_THAN, which evaluates to less than or equal to
  • EXACTLY, which evaluates to equal to

Time comparators

Time value Description
WITHIN Time in the past, relative to today, including today, without any time gap
IN_LAST Time in the past, relative to today, excluding today, without any time gap
BEFORE Time in the past, relative to today, including the specified time gap
AFTER Time in the future, relative to today, without any time gap
BETWEEN Time between a start date and an end date
ON Exactly on the specified date

For the BETWEEN comparator, the inputParams parameter of the rule object contains two values, one each for the start date and end date. For all of the other time comparators, only one date is needed.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"inputParams": [
    {
      "disabled": false,
      "param": "activityVarStart",
      "variableType": "task_name",
      "multi": false,
      "required": true
    },
    {
      "disabled": false,
      "param": "activityVarEnd",
      "variableType": "task_name",
      "multi": false,
      "required": true
    },
    {
      "disabled": false,
      "param": "durationVar",
      "variableType": "duration",
      "multi": false,
      "required": true
    }
  ],
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
"inputParams": [
    {
      "disabled": false,
      "param": "activityVar",
      "variableType": "task_name",
      "multi": false,
      "required": true
    },
    {
      "disabled": false,
      "param": "durationVar",
      "variableType": "duration",
      "multi": false,
      "required": true
    }
  ],

Distance comparators

  • LESS_THAN_EQUAL_TO
  • LESS_THAN
  • GREATER_THAN_EQUAL_TO
  • GREATER_THAN
  • EQUAL_TO

Call-to-action (CTA) options

For suggestions, the following three CTAs are the most used ones. To use other CTAs, see intelliCtaTypes.

Line 8: Specify the code for the phone number.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{
  "disabled": false,
  "order": null,
  "code": "vo-call",
  "inputBindings": [
     {
       "variable": "voCode",
       "param": "code",
      "dimension": null
    }
   ],
  "ctaType": null
}

Line 8: Specify the code for the address.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{
  "disabled": false,
  "order": null,
  "code": "vo-navigate",
  "inputBindings": [
    {
      "variable": "voCode",
      "param": "code",
      "dimension": null
    }
  ],
  "ctaType": null
}
  • Line 12: Specify the activity code.
  • Line 17: Specify the module code.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
  "disabled": false,
  "order": null,
  "code": "vo-schedule-activity",
  "inputBindings": [
    {
      "variable": "voCode",
       "param": "code",
       "dimension": null
     },
     {
      "variable": "activityVarATaskHierarchy",
      "param": "task_type",
      "dimension": null
    },
    {
      "variable": "voFirstUpdateType",
      "param": "module_code",
      "dimension": null
    }
  ],
  "ctaType": null
}

User roles

  • ASSIGNEE, for only that person
  • ASSIGNEE_MANAGER, for the person and their manager
  • ASSIGNEE_MANAGER_HIERARCHY, for the person, their manager, and the entire reporting hierarchy of that person
  • GROUP_HIERARCHY

Example configuration for rule types

Each rule type its own JSON structure. The highlighted lines in Rule skeleton show the bits that you must change when you copy the code when creating a rule. The highlighted lines in Suggestion example shows how the rule gets applied in suggestionSets.

lastActivity

The highlighted lines in Rule skeleton show the bits that you must change when you copy the code when creating a rule in rules. The highlighted lines in Suggestion example shows how the rule gets applied in suggestionSets at the global or module levels.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
  "durationComparator": "IN_LAST",
  "code": "this_is_where_you_give_the_rule_a_name",
  "deleted": false,
  "outputParams": [
    {
      "disabled": false,
      "param": "vos",
      "variableType": "vo_code",
      "multi": true,
      "required": true
    }
  ],
  "inputParams": [
    {
      "disabled": false,
      "param": "activityVar",
      "variableType": "task_name",
      "multi": false,
      "required": true
    },
    {
      "disabled": false,
      "param": "durationVar",
      "variableType": "duration",
      "multi": false,
      "required": true
    }
  ],
  "type": "lastActivity"
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
{
  "code": "some_text_here",
  "deleted": false,
  "suggestionTemplate": {
    "suggestionDisplay": {
      "title": "title_text",
      "subTitle": "sub_title_text",
      "ctaMappings": [
        {
          "disabled": false,
          "code": "vo-call",
          "inputBindings": [
            {
              "variable": "voCode",
              "param": "code"
            }
          ]
        },
        {
          "disabled": false,
          "code": "vo-navigate",
          "inputBindings": [
            {
              "variable": "voCode",
              "param": "code"
            }
          ]
        },
        {
          "disabled": false,
          "code": "vo-schedule-activity",
          "inputBindings": [
            {
              "variable": "voCode",
              "param": "code"
            },
            {
              "variable": "activityVarTaskHierarchy",
              "param": "task_type"
            },
            {
              "variable": "voFirstUpdateType",
              "param": "module_code"
            }
          ]
        }
      ]
    },
    "ruleBinding": {
      "rule": "this_is_where_you_call_the_rule_by_entering_its_name",
      "ruleInputBindings": [
        {
          "type": "value",
          "param": "activityVar",
          "value": "branch_visit"
        },
        {
          "type": "value",
          "param": "durationVar",
          "value": "{\"metrics\": \"2\",\"unit\": \"days\"}"
        }
      ],
      "ruleOutputBindings": [
        {
          "type": "variable",
          "param": "vos",
          "variable": "vo_code_list",
          "dimension": ""
        }
      ]
    }
  }
}

managerParticipant

The highlighted lines in Rule skeleton show the bits that you must change when you copy the code when creating a rule in rules. The highlighted lines in Suggestion example shows how the rule gets applied in suggestionSets at the global or module levels.

{
      ...to be done...
}
{
      ...to be done...
}

activityScheduled

The highlighted lines in Rule skeleton show the bits that you must change when you copy the code when creating a rule in rules. The highlighted lines in Suggestion example shows how the rule gets applied in suggestionSets at the global or module levels.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
  "code": "this_is_where_you_give_the_rule_a_name",
  "deleted": false,
  "outputParams": [
    {
      "disabled": false,
      "param": "vos",
      "variableType": "vo_code",
      "multi": true,
      "required": true
    }
  ],
  "inputParams": [
    {
      "disabled": false,
      "param": "activityVar",
      "variableType": "task_name",
      "multi": false,
      "required": true
    }
  ],
  "type": "activityScheduled",
  "shouldAlreadyBeScheduled": true
}
{
      ...to be done...
}

activityFrequency

The highlighted lines in Rule skeleton show the bits that you must change when you copy the code when creating a rule in rules. The highlighted lines in Suggestion example shows how the rule gets applied in suggestionSets at the global or module levels.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
  "durationComparator": "IN_LAST",
  "code": "this_is_where_you_give_the_rule_a_name",
  "deleted": false,
  "outputParams": [
    {
      "disabled": false,
      "param": "vos",
      "variableType": "vo_code",
      "multi": true,
      "required": true
    }
  ],
  "inputParams": [
    {
      "disabled": false,
      "param": "activityVar",
      "variableType": "task_name",
      "multi": false,
      "required": true
    },
    {
      "disabled": false,
      "param": "durationVar",
      "variableType": "duration",
      "multi": false,
      "required": true
    },
    {
      "disabled": false,
      "param": "frequencyVar",
      "variableType": "frequency",
      "multi": false,
      "required": true
    }
  ],
  "frequencyComparator": "LESS_THAN",
  "type": "activityFrequency"
}
1
2
3
{
     ...to be done...
}

voAttribute

The highlighted lines in Rule skeleton show the bits that you must change when you copy the code when creating a rule in rules. The highlighted lines in Suggestion example shows how the rule gets applied in suggestionSets at the global or module levels.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
  "listOperator": "IN",
  "code": "this_is_where_you_give_the_rule_a_name",
  "deleted": false,
  "outputParams": [
    {
      "disabled": false,
      "param": "vos",
      "variableType": "vo_code",
      "multi": true,
      "required": true
    }
  ],
  "inputParams": [
    {
      "disabled": false,
      "param": "voAttributeList",
      "variableType": "text",
      "multi": true,
      "required": true
    }
  ],
  "attribute": "this_is_the_input_field_code_of_the_attribute_to_filter_on",
  "type": "voAttribute"
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
{
"code": "campaigns_nudge",
  "deleted": false,
  "suggestionType": "LEADS",
  "suggestionSchedule": "BOD",
  "suggestionSetDismissDuration": 720,
  "userSelectionCriteria": {
    "userRole": "ASSIGNEE",
    "userAttributeFilters": [
      {
        "disabled": false,
        "order": null,
        "attribute": "role",
        "values": [
          "BDR",
          "SM"
        ]
      }
    ]
  },
  "filterRuleBindings": [
    {
      "rule": "voCampaignContains",
      "ruleInputBindings": [
        {
          "type": "value",
          "param": "voAttributeList",
          "value": "[\"diwali_dhamaka\"]"
        }
      ],
      "ruleOutputBindings": [
        {
          "type": "variable",
          "param": "vos",
          "variable": "vo_code_list",
          "dimension": null
        }
      ]
    }
  ],
  "suggestions": [
    {
      "suggestionDisplay": {
        "title": "Meet these { {actualLastUpdateStateTypeName} } { { {voModuleName} } } scheduled for today",
        "subTitle": "Follow up on these { { {voModuleName} } } today.",
        "message": "{ {voName} } and others",
        "ctaMappings": [
          {
            "disabled": false,
            "order": null,
            "code": "Leads",
            "inputBindings": null,
            "ctaType": null
          }
        ]
      },
      "ruleBinding": null,
      "name": "Suggestion for leads generated during Diwali2021",
      "order": 0,
      "code": "suggestion_for_leads_generated_during_Diwali2021",
      "suggestionEnabled": true,
      "templateCode": null,
      "experimentTags": null
    }
  ]
}

voModule

The highlighted lines in Rule skeleton show the bits that you must change when you copy the code when creating a rule in rules. The highlighted lines in Suggestion example shows how the rule gets applied in suggestionSets at the global or module levels.

1
2
3
{
      ...
}
1
2
3
{
      ...to be done...
}

voState

The highlighted lines in Rule skeleton show the bits that you must change when you copy the code when creating a rule in rules. The highlighted lines in Suggestion example shows how the rule gets applied in suggestionSets at the global or module levels.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
  "listOperator": "IN",
  "code": "this_is_where_you_give_the_rule_a_name",
  "deleted": false,
  "outputParams": [
    {
      "disabled": false,
      "param": "vos",
      "variableType": "vo_code",
      "multi": true,
      "required": true
    }
  ],
  "inputParams": [
    {
      "disabled": false,
      "param": "voState",
      "variableType": "text",
      "multi": true,
      "required": true
    }
  ],
  "type": "voState"
}
1
2
3
{
      ...to be done...
}

voCreatedDate

The highlighted lines in Rule skeleton show the bits that you must change when you copy the code when creating a rule in rules. The highlighted lines in Suggestion example shows how the rule gets applied in suggestionSets at the global or module levels.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
  "createdDateDurationComparator": "IN_LAST",
  "code": "this_is_where_you_give_the_rule_a_name",
  "deleted": false,
  "outputParams": [
    {
      "disabled": false,
      "param": "vos",
      "variableType": "vo_code",
      "multi": true,
      "required": true
    }
  ],
  "inputParams": [
    {
      "disabled": false,
      "param": "createdDateDurationVar",
      "variableType": "duration",
      "multi": false,
      "required": true
    }
  ],
  "type": "voCreatedDate"
}
1
2
3
{
      ...to be done...
}

voLastUpdateDate

The highlighted lines in Rule skeleton show the bits that you must change when you copy the code when creating a rule in rules. The highlighted lines in Suggestion example shows how the rule gets applied in suggestionSets at the global or module levels.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
  "code": "this_is_where_you_give_the_rule_a_name",
  "deleted": false,
  "outputParams": [
    {
      "disabled": false,
      "param": "vos",
      "variableType": "vo_code",
      "multi": true,
      "required": true
    }
  ],
  "inputParams": [
    {
      "disabled": false,
      "param": "lastUpdateDateDurationVar",
      "variableType": "duration",
      "multi": false,
      "required": true
    }
  ],
  "lastUpdateDateDurationComparator": "BEFORE",
  "type": "voLastUpdateDate"
}
1
2
3
{
      ...to be done...
}

voMeetingDate

The highlighted lines in Rule skeleton show the bits that you must change when you copy the code when creating a rule in rules. The highlighted lines in Suggestion example shows how the rule gets applied in suggestionSets at the global or module levels.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
  "code": "this_is_where_you_give_the_rule_a_name",
  "deleted": false,
  "meetingDateDurationComparator": "IN_LAST",
  "outputParams": [
    {
      "disabled": false,
      "param": "vos",
      "variableType": "vo_code",
      "multi": true,
      "required": true
    }
  ],
  "inputParams": [
    {
      "disabled": false,
      "param": "meetingDateDurationVar",
      "variableType": "duration",
      "multi": false,
      "required": true
    }
  ],
  "type": "voMeetingDate"
}
1
2
3
{
      ...to be done...
}

userTeamFilter

The highlighted lines in Rule skeleton show the bits that you must change when you copy the code when creating a rule in rules. The highlighted lines in Suggestion example shows how the rule gets applied in suggestionSets at the global or module levels.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
  "code": "this_is_where_you_give_the_rule_a_name",
  "deleted": false,
  "outputParams": [
    {
      "disabled": false,
      "param": "vos",
      "variableType": "vo_code",
      "multi": true,
      "required": true
    }
  ],
  "inputParams": [
    {
      "disabled": false,
      "param": "isTeam",
      "variableType": "bool",
      "multi": true,
      "required": true
    }
  ],
  "type": "userTeamFilter"
}
1
2
3
{
      ...to be done...
}

composite

The highlighted lines in Rule skeleton show the bits that you must change when you copy the code when creating a rule in rules. The highlighted lines in Suggestion example shows how the rule gets applied in suggestionSets at the global or module levels.

Lines from 5 through 52 contain the inputParams of all of the rules that go into this composite rule.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
{
  "type": "composite",
  "code": "this_is_where_you_give_the_rule_a_name",
  "deleted": false,
  "inputParams": [
    {
      "disabled": false,
      "order": null,
      "param": "activityVarA",
      "variableType": "task_name",
      "multi": false,
      "required": true
    },
    {
      "disabled": false,
      "order": null,
      "param": "durationVarA",
      "variableType": "duration",
      "multi": false,
      "required": true
    },
    {
      "disabled": false,
      "order": null,
      "param": "frequencyVarA",
      "variableType": "frequency",
      "multi": false,
      "required": true
    },
    {
      "disabled": false,
      "order": null,
      "param": "activityVarB",
      "variableType": "task_name",
      "multi": false,
      "required": true
    },
    {
      "disabled": false,
      "order": null,
      "param": "durationVarB",
      "variableType": "duration",
      "multi": false,
      "required": false
    },
    {
      "disabled": false,
      "order": null,
      "param": "frequencyVarB",
      "variableType": "frequency",
      "multi": false,
      "required": true
    }
  ],
  "outputParams": [
    {
      "disabled": false,
      "order": null,
      "param": "vos",
      "variableType": "vo_code",
      "multi": true,
      "required": true
    }
  ],
  "evaluate": "name_of_one_rule AND name_of_another_rule",
  "dependentRules": [
    {
      "rule": "name_of_one_rule",
      "ruleInputBindings": [
        {
          "type": "variable",
          "param": "activityVar",
          "variable": "activityVarA",
          "dimension": null
        },
        {
          "type": "variable",
          "param": "durationVar",
          "variable": "durationVarA",
          "dimension": null
        },
        {
          "type": "variable",
          "param": "frequencyVar",
          "variable": "frequencyVarA",
          "dimension": null
        }
      ],
      "ruleOutputBindings": [
        {
          "type": "variable",
          "param": "vos",
          "variable": "vo_code_list",
          "dimension": null
        }
      ],
      "name": "give_a_name_to_this_dependent_rule"
    },
    {
      "rule": "name_of_another_rule",
      "ruleInputBindings": [
        {
          "type": "variable",
          "param": "activityVar",
          "variable": "activityVarB",
          "dimension": null
        },
        {
          "type": "variable",
          "param": "durationVar",
          "variable": "durationVarB",
          "dimension": null
        },
        {
          "type": "variable",
          "param": "frequencyVar",
          "variable": "frequencyVarB",
          "dimension": null
        }
      ],
      "ruleOutputBindings": [
        {
          "type": "variable",
          "param": "vos",
          "variable": "vo_code_list",
          "dimension": null
        }
      ],
      "name": "give_a_name_to_this_dependent_rule"
    }
  ]
}
1
2
3
{
      ...to be done...
}

See also


Did this page help? No help at allYes, totally!
Back to top