OnCallContactPreferenceUtil - Global
The OnCallContactPreferenceUtil script include provides methods for handling contact preferences.
For contact preference configuration, see Configure contact preferences.
This script include supports the OnCallRotation script include.
OnCallContactPreferenceUtil - OnCallContactPreferenceUtil()
Creates an instance of the OnCallContactPreferenceUtil class.
| Name | Type | Description |
|---|---|---|
| None |
OnCallContactPreferenceUtil - getContactsAtByEscalatee(Object escalatee, Number contactAttempt, GlideDateTime gdt, String rotaSysIds)
Gets a list of contacts with the escalatee object. Each returned contact contains a list of user contact preferences.
| Name | Type | Description |
|---|---|---|
| escalatee | Object | Mandatory. Escalatee object returned by the getEscalationPlan() method. |
| contactAttempt | Number | Optional. The attempt you are trying to contact [ default value = 1 ].
|
| gdt | GlideDateTime | Optional. yyyy-MM-dd HH:mm:ss format in the UTC timezone. Default is now.admin |
| rotaSysIds | String | Optional. Comma-separated string of Sys IDs of shifts from the [cmn_rota] table. Default value returns Sys IDs of the shifts at current time. |
| Type | Description |
|---|---|
| Array object | Array of escalatees (either a user, group, or device records depending on the notification rules) at a specific time and position.
|
var serviceDeskSysId = '<Sys_ID>';
var ocRotation = new OnCallRotation();
var escalationPlan = ocRotation.getEscalationPlan(serviceDeskSysId);
var escalatee = escalationPlan[0];
var onContactPrefUtil = new OnCallContactPreferenceUtil();
var contactAttempt = 1;
var gdt = new GlideDateTime();
var contacts = onContactPrefUtil.getContactsAtByEscalatee(escalatee, contactAttempt, gdt);
gs.log(JSON.stringify(contacts));
Output:
[{
"type": "user",
"sys_id": "<Sys_ID>",
"rota_id": "<Rotation_ID>",
"roster_id": "",
"escalation_step_id": "<Escalation_Step_ID>",
"forced_communication_channel": "",
"override_user_contact_preference": true,
"preference_source": "contact",
"contact_attempt": 1,
"user_preferences": [{
"type": "sms",
"number": "8587200477"
}],
"contact_preferences": [{
"type": "voice",
"number": "5555555555"
}]
}]
OnCallContactPreferenceUtil - getUserPreferences(String userSysId, Number contactAttempt, GlideDateTime gdt, String communicationTypes)
Gets the list of contact preferences at the time at which the user has opted for communication. If no time is specified, then current time is used. This method is applicable to single and overlapping shifts.
| Name | Type | Description |
|---|---|---|
| userSysId | String | Sys ID of the user from the [sys_user] table. |
| contactAttempt | Number | Optional. The attempt you are trying to contact [ default value = 1 ].
|
| gdt | GlideDateTime | Optional. yyyy-MM-dd HH:mm:ss format in the UTC timezone. Default is now. |
| communicationTypes | String | Optional. Comma-separated string containing one or more of the following values:
Default includes all available communication types. |
| Type | Description |
|---|---|
| Array Object | On-call user contact preference.
|
var onContactPrefUtil = new OnCallContactPreferenceUtil();
var contactAttempt = 1;
var gdt = new GlideDateTime();
var itilUserSysId = '<itilUserSysId>;
var userPreferences = onContactPrefUtil.getUserPreferences(itilUserSysId, contactAttempt, gdt);
gs.log(JSON.stringify(userPreferences));
Output:
[{
"type": "sms",
"number": "5555555555"
}, {
"type": "voice",
"number": "5555555555"
}]
OnCallContactPreferenceUtil - getCatchAllContacts(String rotaId, GlideDateTime gdt)
Gets a list of catch-all contacts and preferences.
| Name | Type | Description |
|---|---|---|
| rotaId | String | Sys ID of the shift from the [cmn_rota] table. |
| gdt | GlideDateTime | Optional. yyyy-MM-dd HH:mm:ss format in the UTC timezone. Default is now. |
| Type | Description |
|---|---|
| Array object | List of catch-all contacts with preferences.
|
Example:
var onContactPrefUtil = new OnCallContactPreferenceUtil();
var contactAttempt = 1;
var gdt = new GlideDateTime();
var rotaSysId = '<Rotation_Sys_ID>';
var catchAllContacts = onContactPrefUtil.getCatchAllContacts(rotaSysId, gdt);
gs.log(JSON.stringify(catchAllContacts));
Output:
[{
"type": "user",
"sys_id": "<Sys_ID>",
"rota_id": "<Rotation_ID>",
"roster_id": "",
"escalation_step_id": "<Escalation_Step_ID>",
"forced_communication_channel": "",
"override_user_contact_preference": true,
"preference_source": "contact",
"contact_attempt": 1,
"user_preferences": [{
"type": "sms",
"number": "8587200477"
}],
"contact_preferences": [{
"type": "voice",
"number": "5555555555"
}]
}]