Help with a script for twilio

Wendy Peterson
Giga Guru

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

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'
};