Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Help with a script for twilio

Wendy Peterson
Tera 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'
};