Send Email to multiple records on workspace and set email's subject and body dynamically

Syed14
Mega Guru

We can select multiple records on workspace from table and send dynamically created email using flow.

 

Syed14_0-1752692339039.png

  • Create a Subflow:

Syed14_1-1752692489061.png

 

Syed14_3-1752692547123.pngSyed14_4-1752692558870.png

  • 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.

Syed14_5-1752692890868.png

 

  • 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

Syed14
Mega Guru

Check my other Article too for simple approach of this task.