Trigger weekly notification to assignment group when assigned to is not longer with company and add incident and catalog task details.
Notifications :

Hi ${mail_script:get.assignmentgroup.member}
Pls note that the Service-Now tickets below are assigned to an individual who is no longer with us. Kindly take necessary steps to assign an appropriate ownership.
${mail_script:offboarding.reminder.email.incident}
${mail_script:offboardingtask.reminder.email.task}
Thank you

Mail Script
(function runMailScript( /* GlideRecord */ current, /* TemplatePrinter */ template,
/* Optional EmailOutbound */
email, /* Optional GlideRecord */ email_action,
/* Optional GlideRecord */
event) {
var getEvent=event.parm1;
if(getEvent.indexOf("SCTASK")!=-1)
{
var html = '';
html += "<table style='font-size: 10pt; border: 1px solid black;'><tr><th style='text-align:center;width: 100px;border: 1px solid black;'><b>REQ#</b></th><th style='text-align:center;width: 100px;border: 1px solid black;'><b>RITM#</b></th><th style='text-align:center;width: 140px;border: 1px solid black;'><b>STASK#</b></th><th style='width: 100px;border: 1px solid black;'><b>Requested For</b></th><th style='width: 100px;border: 1px solid black;'><b>Opened</b></th><th style='width: 230px;border: 1px solid black;'><b>Short Description</b></th></tr>";
var app = new GlideRecord('sc_task'); //create a query to retrieve open approvals
app.addEncodedQuery("numberIN" + event.parm1);
app.query();
while (app.next()) {
var SCnumber = "/sc_task.do?sys_id=" + app.sys_id;
var SCURL = "<a href=" + SCnumber + ">" + app.number + "</a>";
var RITMnumber = "/sc_req_item.do?sys_id=" + app.request_item;
var RITMURL = "<a href=" + RITMnumber + ">" + app.request_item.getDisplayValue() + "</a>";
var REQnumber = "/sc_request.do?sys_id=" + app.request_item.request;
var REQURL = "<a href=" + REQnumber + ">" + app.request_item.request.getDisplayValue() + "</a>";
html += "<tr><td style='width: 100px;border: 1px solid black;'><b>" + REQURL + "</b></td><td style='width: 100px;border: 1px solid black;'><b>" + RITMURL + "</b></td><td style='width: 140px;border: 1px solid black;'><b>" + SCURL + "</b></td><td style='width: 100px;border: 1px solid black;'>" + app.request_item.request.requested_for.getDisplayValue() + "</td><td style='width: 100px;border: 1px solid black;'>" + app.opened_at.getDisplayValue() + "</td><td style='width: 230px;border: 1px solid black;'>" + app.short_description + "</td></tr>";
}
html += '</table>';
template.print(html);
}
})(current, template, email, email_action, event);
Mail Script: offboarding.reminder.email.task
(function runMailScript( /* GlideRecord */ current, /* TemplatePrinter */ template,
/* Optional EmailOutbound */
email, /* Optional GlideRecord */ email_action,
/* Optional GlideRecord */
event) {
var getEvent=event.parm1;
if(getEvent.indexOf("INC")!=-1)
{
var html = '';
html += "<table style='font-size: 10pt; border: 1px solid black;'><tr><th style='text-align:center;width: 85px;border: 1px solid black;'><b>Number</b></th><th style='text-align:center;width: 100px;border: 1px solid black;'><b>Caller</b></th><th style='width: 170px;border: 1px solid black;'><b>Opened</b></th><th style='width: 401px;border: 1px solid black;'><b>Short Description</b></th></tr>";
var app = new GlideRecord('incident'); //create a query to retrieve open approvals
app.addEncodedQuery("numberIN" + event.parm1);
app.query();
while (app.next()) {
var number = "/incident.do?sys_id=" + app.sys_id;
var URL = "<a href=" + number + ">" + app.number + "</a>";
html += "<tr><td style='width: 85px;border: 1px solid black;'><b>" + URL + "</b></td><td style='width: 120px;border: 1px solid black;'><b>" + app.caller_id.getDisplayValue() + "</b></td><td style='width: 170px;border: 1px solid black;'>" + app.opened_at.getDisplayValue() + "</td><td style='width: 401px;border: 1px solid black;'>" + app.short_description + "</td></tr>";
}
html += '</table>';
template.print(html);
}
})(current, template, email, email_action, event);
Mail Script: get.assignmentgroup.member
(function runMailScript( /* GlideRecord */ current, /* TemplatePrinter */ template,
/* Optional EmailOutbound */
email, /* Optional GlideRecord */ email_action,
/* Optional GlideRecord */
event) {
var userName = '';
var gr = new GlideRecord("sys_user_grmember");
gr.addEncodedQuery("user.active=true^group.name=" + event.parm2);
gr.query();
while (gr.next()) {
userName += gr.user.first_name + ",";
}
template.print(userName);
})(current, template, email, email_action, event);
Scheduled Job
var inc = new GlideAggregate("task");
inc.addEncodedQuery("assigned_toISEMPTY^sys_created_onRELATIVELT@hour@ago@24^stateNOT IN3,4,7,8,5,6,106,107,157^assignment_groupISNOTEMPTY^sys_class_name=incident^ORsys_class_name=sc_task");
inc.addAggregate('GROUP_CONCAT', 'number');
inc.groupBy('assignment_group');
inc.query();
while (inc.next()) {
var inc1 = new GlideRecord("task");
inc1.addEncodedQuery("numberIN" + inc.getAggregate('GROUP_CONCAT', 'number'));
inc1.query();
if (inc1.next()) {
gs.eventQueue("reminder_notassigned_ticket", inc1, inc.getAggregate('GROUP_CONCAT', 'number'), inc.getDisplayValue('assignment_group'));
}
}
////////////////////////////////////Offboarding Task //////////////////////////////////////////////////////////
var offboarding = new GlideAggregate("task");
offboarding.addEncodedQuery("assigned_to.active=false^sys_created_onRELATIVELT@dayofweek@ago@7^stateNOT IN3,4,7,8,5,6,106,107,157^assignment_groupISNOTEMPTY^sys_class_name=incident^ORsys_class_name=sc_task^assignment_group.active=true");
offboarding.addAggregate('GROUP_CONCAT', 'number');
offboarding.groupBy('assignment_group');
offboarding.query();
while (offboarding.next()) {
var offboarding1 = new GlideRecord("task");
offboarding1.addEncodedQuery("numberIN" + offboarding.getAggregate('GROUP_CONCAT', 'number'));
offboarding1.query();
if (offboarding1.next()) {
gs.eventQueue("offboarding_task_notification", offboarding1, offboarding.getAggregate('GROUP_CONCAT', 'number'), offboarding.getDisplayValue('assignment_group'));
}
}
Trigger weekly notification to assignment group when assigned to is not longer with company
Working Code Edited question November 27, 2023
Sorry, you do not have permission to read comments.