Notification trigger grouped by client owners based on event using UI action in list view

Swathi KS
Tera Contributor

I want send an one single notification to be sent, which needs to be group by client_owners based on that for each client owner only one email should trigger based on event as we used in Notification, but some issues with below script please help me to resolve that.

gs.addInfoMessage("Pending TL Approval Notifications have been sent to: " + current.client_owners.getDisplayValue());

var clientApp = current.client_owners.split(',');
var gdt = new GlideDateTime();
var towerLeadMap = {}; // Store unique Tower Leads and their records

var slaGr = new GlideRecord('x_isgi_isg_governa_sla_sum');
slaGr.addQuery('service_month', current.service_month);
slaGr.addQuery('workflow_state', '3');
slaGr.query();

while (slaGr.next()) {
    var towerLeads = slaGr.getValue('client_owners').split(',');
    for (var t = 0; t < towerLeads.length; t++) {
        var towerLead = towerLeads[t].trim();
        if (clientApp.includes(towerLead)) {
            if (!towerLeadMap[towerLead]) {
                towerLeadMap[towerLead] = [];
            }
            towerLeadMap[towerLead].push(slaGr.number.toString()); // Collect record numbers
        }
    }
}

// Ensure a single event is triggered per Tower Lead
for (var lead in towerLeadMap) {
    if (towerLeadMap.hasOwnProperty(lead)) {
        var eventParams = {
            email_recipients: lead, // Assuming lead contains the Tower Lead's email
            record_numbers: towerLeadMap[lead].join(', ')
        };

        gs.eventQueue("x_isgi_isg_governa.pending_tl_approval", current, JSON.stringify(eventParams));

        // Update SLA records once emails are sent
        var slaUpdateGr = new GlideRecord('x_isgi_isg_governa_sla_sum');
        slaUpdateGr.addQuery('service_month', current.service_month);
        slaUpdateGr.addQuery('workflow_state', '3');
        slaUpdateGr.addQuery('client_owners', 'CONTAINS', lead);
        slaUpdateGr.query();
        while (slaUpdateGr.next()) {
            slaUpdateGr.email_sent = true;
            slaUpdateGr.email_sent_date = gs.nowDateTime();
            slaUpdateGr.update();
        }
    }
}

action.setRedirectURL(current);
 
1 REPLY 1

Swathi KS
Tera Contributor

If any one Knows the fix that script that i have pasted in my post as the script should ,We need to configure a single notification trigger that consolidates the tower lead and sends it to the respective tower lead when the Notify Tower Lead button is clicked in the list view.