Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

How to remove simple email signature (text) from the inbound emails

vidhya_mouli
Tera Sage

I have to remove signatures from inbound email before creating incident from it.

 

I have written the following script in the Inbound Email Action

 

(function process(/* GlideInboundEmail */ email, /* GlideRecord */ incident, /* Optional: GlideEmailMimeHeader */ mimeHeader) {
    // Get the email body from the email object
    var emailBody = email.getBodyText();

    // Remove common email signature patterns using a regular expression
    emailBody = emailBody.replace(/--\s*\n.*/g, ''); // Replace lines starting with "--" and following text

    // Update the email body in the email object
    email.setBody(emailBody);

})(email, current, email.headers);

 

And this is my trigger:

Remove-Email-Signature-Inbound-Email-Actions-ServiceNow.png

 

The code does not work and I can still see the signature getting attached. Can someone debug this code?

1 REPLY 1

Tony Chatfield1
Kilo Patron

Hi, I do not believe that you can update the email object in this manner and normal process would be to set the current.comments or current.work_notes of the target record directly from your updated variable in your inbound action IE

current.comments = emailBody;


If you want to alter the received sys_email record you would need to use a before insert BR and GlideRecord to lookup and update the sys_email record, but I would not recommend altering a received message in this manner as negates the validity of the message for auditing purposes.