Help with a script for twilio
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-07-2025 07:25 AM
We currently use Twilio which uses a Script Include, Event and Script Action. I am trying to get this to work with Paging Accounts on the Assignment Group vs looking at the On call schedule but I can't figure out how to get it to get those paging accounts. they are on the Group.u_paging_number - u.paging_number_4. Can anyone see anything that jumps out what is wrong with this. TIA
var OnCallScriptIncludePager = Class.create();
OnCallScriptIncludePager.prototype = {
initialize: function() {},
OnCallP2: function(current) {
var groupid = this.getuserssysidfromgroup(current.assignment_group.sys_id.toString());
var pagerlist = [groupid.u_paging_number, groupid.u_paging_number_2, groupid.u_paging_number_3, groupid.u_paging_number_4];
var mobilephone = this.getusermobilephone(pagerlist);
for (var i = 0; i < mobilephone.length; i++) {
SNC.Notify.sendSMS('+16516150611', '' + mobilephone[i], 'P1/P2 Incident Notification: ' + current.number + ':' + current.short_description, current);
}
var result = [current.sys_id.toString(), current.assignment_group.toString()];
gs.eventQueue("OnCallGroupPager", current, result, '1');
var worknotes = "SMS Reminder 1 sent to Incident Group Pagers : " + mobilephone;
this.UpdateINCRecord(current.sys_id, '1', worknotes);
},
//Repeats Sending to All Group Members
onCallP2Repeat: function(result, count) {
gs.sleep(600000);
var response = result.toString().split(',');
var sysid = response[0];
var assignmentGroup = response[1];
var count1 = Number(count) + 1;
var gr1 = new GlideRecord('incident');
gr1.addQuery('sys_id', sysid);
gr1.query();
if (gr1.next()) {
var obj = [gr1.sys_id.toString(), gr1.assignment_group.toString()];
var groupid = this.getuserssysidfromgroup(current.assignment_group.sys_id.toString());
var mobilephone = this.getusermobilephone(groupid.pagerlist);
if (count1 < 4 && !gr1.assigned_to && gr1.priority != '3' && gr1.priority != '4' && assignmentGroup == gr1.assignment_group) {
for (var i = 0; i < mobilephone.length; i++) {
SNC.Notify.sendSMS('+16516150698', '' + mobilephone[i], 'P1/P2 Incident Notification: ' + gr1.number + ':' + gr1.short_description, gr1);
}
gs.eventQueue("OnCallGroupPager", gr1, obj, count1);
var worknotes = "SMS Reminder " + count1 + " sent to Incident Assignment Group Pagers : " + mobilephone;
this.UpdateINCRecord(gr1.sys_id, count1, worknotes);
} else if ((count1 == 4 || count1 < 7) && !gr1.assigned_to && gr1.priority != '3' && gr1.priority != '4' && assignmentGroup == gr1.assignment_group) {
SNC.Notify.sendSMS('+16516150698', '' + gr1.assignment_group.manager.mobile_phone, 'P1/P2 Incident Notification: ' + gr1.number + ':' + gr1.short_description, gr1);
gs.eventQueue("OnCallGroupPager", gr1, obj, count1);
var worknotes = "SMS Reminder " + count1 + " sent to Incident Assignment Group Manager : " + gr1.assignment_group.manager.name;
this.UpdateINCRecord(gr1.sys_id, count1, worknotes);
}
}
},
type: 'OnCallScriptIncludePager'
};
5 REPLIES 5
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-07-2025 08:57 AM
I rewrote to it made more sense - it works but it just keeps paging and paging unlike the other one that stops at one page until it his the repeat section
var OnCallScriptIncludePager = Class.create();
OnCallScriptIncludePager.prototype = {
initialize: function() {},
OnCallP2: function(current) {
var pagerlist = this.getPagingNumbersFromGroup(current.assignment_group);
// Log the pager list
gs.log('Pager list: ' + pagerlist.join(', '), 'Paging Account');
// Send SMS to each pager number
pagerlist.forEach(function(pager) {
if (pager) {
SNC.Notify.sendSMS('+16516150698', pager, 'P1/P2 Incident Notification: ' + current.number + ': ' + current.short_description, current);
}
});
var result = [current.sys_id.toString(), current.assignment_group.toString()];
gs.eventQueue("OnCallGroupPager", current, result, '1');
var worknotes = "SMS Reminder 1 sent to Incident Group Pagers: " + pagerlist.join(', ');
this.UpdateINCRecord(current.sys_id, '1', worknotes);
},
getPagingNumbersFromGroup: function(group) { // Function to pull pager list
var pagerlist = [
group.u_paging_number,
group.u_paging_number_2,
group.u_paging_number_3,
group.u_paging_number_4
];
return pagerlist;
},
// Updates Worknotes for Pagers
UpdateINCRecord: function(sysid, count, worknotes) {
var gr = new GlideRecord('incident');
gr.addQuery('sys_id', sysid);
gr.query();
if (gr.next()) {
gr.work_notes = worknotes;
gr.update();
}
return true;
},
/*
// Repeats Sending to All Group Members
onCallP2Repeat: function(result, count) {
gs.sleep(600000);
var response = result.toString().split(',');
var sysid = response[0];
var assignmentGroup = response[1];
var count1 = Number(count) + 1;
var gr1 = new GlideRecord('incident');
gr1.addQuery('sys_id', sysid);
gr1.query();
if (gr1.next()) {
var obj = [gr1.sys_id.toString(), gr1.assignment_group.toString()];
var groupid = this.getuserssysidfromgroup(gr1.assignment_group.sys_id.toString());
var mobilephone = this.getusermobilephone(groupid.pagerlist);
if (count1 < 4 && !gr1.assigned_to && gr1.priority != '3' && gr1.priority != '4' && assignmentGroup == gr1.assignment_group) {
for (var i = 0; i < mobilephone.length; i++) {
SNC.Notify.sendSMS('+16516150698', mobilephone[i], 'P1/P2 Incident Notification: ' + gr1.number + ': ' + gr1.short_description, gr1);
}
gs.eventQueue("OnCallGroupPager", gr1, obj, count1);
var worknotes = "SMS Reminder " + count1 + " sent to Incident Assignment Group Pagers: " + mobilephone.join(', ');
this.UpdateINCRecord(gr1.sys_id, count1, worknotes);
} else if ((count1 == 4 || count1 < 7) && !gr1.assigned_to && gr1.priority != '3' && gr1.priority != '4' && assignmentGroup == gr1.assignment_group) {
SNC.Notify.sendSMS('+16516150698', gr1.assignment_group.manager.mobile_phone, 'P1/P2 Incident Notification: ' + gr1.number + ': ' + gr1.short_description, gr1);
gs.eventQueue("OnCallGroupPager", gr1, obj, count1);
var worknotes = "SMS Reminder " + count1 + " sent to Incident Assignment Group Manager: " + gr1.assignment_group.manager.name;
this.UpdateINCRecord(gr1.sys_id, count1, worknotes);
}
}
},
*/
type: 'OnCallScriptIncludePager'
};