Send Email to multiple records on workspace and set email's subject and body dynamically
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-16-2025 12:40 PM
We can select multiple records on workspace from table and send dynamically created email using flow.
- Create a Subflow:
- Create a script include and run subflow using code snippet:
var GetIncidentNumber = Class.create();
GetIncidentNumber.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getIncident: function() {
var array = [];
var entries = this.getParameter('sysparm_entry_ids');
var sysIds = entries.split(",");
var gr = new GlideRecord('incident');
gr.addQuery('sys_id', 'IN', entries);
gr.query();
while (gr.next()) {
array.push(gr.number.toString());
}
var subject = this.getParameter('sysparm_sub');
var body = this.getParameter('sysparm_bdy');
var regards = this.getParameter('sysparm_reg');
// gs.info('body check: ' + body);
//gs.info('array check: ' + array);
var inputs = {};
inputs['number'] = array;
inputs['body'] = body;
inputs['subject'] = subject;
inputs['regards'] = regards;
// gs.info('check array' + inputs['number']); // Array.String
// Start Asynchronously: Uncomment to run in background. Code snippet will not have access to outputs.
sn_fd.FlowAPI.getRunner().subflow('global.send_email_action').inBackground().withInputs(inputs).run();
},
type: 'GetIncidentNumber'
});
- Create a List Action :
- Go to List Actions in navigator.
- Create a New list action and select client script in ‘Implemented as’ field and write below script:
function onClick() {
var entries = g_list.getChecked();
if (!entries || entries.length == 0)
return;
var fields = [{
type: 'textarea',
name: 'subject',
label: getMessage('Subject'),
mandatory: true
},
{
type: 'textarea',
name: 'email_body',
label: getMessage('Email body'),
mandatory: true
},
{
type: 'textarea',
name: 'regards',
label: getMessage('Regards'),
mandatory: true
}
];
g_modal.showFields({
title: "Type your mail",
fields: fields,
size: 'lg'
}).then(function(fieldValues) {
var subject = fieldValues.updatedFields[0].value;
var body = fieldValues.updatedFields[1].value;
var regards = fieldValues.updatedFields[2].value;
var ga = new GlideAjax('GetIncidentNumber');
ga.addParam('sysparm_name', 'getIncident');
ga.addParam('sysparm_entry_ids', entries);
ga.addParam('sysparm_sub', subject);
ga.addParam('sysparm_bdy', body);
ga.addParam('sysparm_reg', regards);
ga.getXML(getRequiredInc);
function getRequiredInc(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
//alert("Some alert to test if it works: " + answer);
g_list.refresh(1);
}
});
}
1 REPLY 1
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-18-2025 10:55 AM
Check my other Article too for simple approach of this task.