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 parse specific content from an email subject to set a field value

Jerome MAISETTI
Mega Guru

Hello
Today, we are using inbound action to put emails in tickets.
I would like to parse the subject of certains emails and put a certain string into a field.
I receive emails from specific email addresses with this reference in the subject SMIT-xxxx and I would like to set the field 'Salesforce ticket reference" to this value in the task table.
Can you help me to achieve this ?
I searched a bit left and right but I'm not sure how to do this , do I have to create a separate inbound action or is it a business rule ?
Thanks
Jérôme

1 ACCEPTED SOLUTION

Jerome MAISETTI
Mega Guru

I managed to do it :

ParseSmit();

function ParseSmit() {

    // The subject
    var subjectStr = email.subject;
    var regExSmit = /SMIT-\d{4}/;
    var ciStr = subjectStr.match(regExSmit);
    gs.log(ciStr);
    current.u_jira_ticket_reference = ciStr[0];
    current.update();
    
}

View solution in original post

15 REPLIES 15

It was a simple example on how to use the trigger on a Flow to start some chain of events in ServiceNow.

You can easily create the logic of the Flow, to have it do what you need.

Jerome MAISETTI
Mega Guru

Hello


I tried with the following inbound action but it doesn't work 😞

 

Script used is the following :

 

(function() {

    // The subject
    var subjectStr = email.subject;
    var ciStr = subjectStr.substring(subjectStr.lastIndexOf("SMIT-") + 4, subjectStr.lastIndexOf(" "));    
    
    var grIncident = new GlideRecord('incident');
    grIncident.setValue('u_jira_ticket_reference', ciStr);
    grIncident.update();
    
})();

Are you updating an existing ticket or trying to create a new one?

If new one:

    var grIncident = new GlideRecord('incident');

    grIncident.newRecord();
    grIncident.setValue('u_jira_ticket_reference', ciStr);
    grIncident.update();

Best Regards
Aman Kumar

I'm trying to update existing one.
I'll need to elabore this to match the incident reference with the existing ticket , that will not be easy ;(

Then, just use:

var subjectStr = email.subject;
var ciStr = subjectStr.substring(subjectStr.lastIndexOf("SMIT-") + 4, subjectStr.lastIndexOf(" ")); 
current.u_jira_ticket_reference = ciStr;

current.update();// missed this one

Best Regards
Aman Kumar