Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Inbound action - new email to update an existing ticket

M_iA
Kilo Sage

Hi, i know that an email that is classed as a new email is for just that, but i need the script to check to see if a ServiceNow number is contained and if so, to update the existing ticket rather than creating a new ticket.

 

The inbound action i created is flagged to stop processing after it runs and I can see that in the email log. However, I have added log statements in the script and none of them appear to get triggered.

 

The script I have so far is as follows and any help would be greatly appreciated:

 

(function runAction(/*GlideRecord*/ current, /*GlideRecord*/ event, /*EmailWrapper*/ email, /*EmailAction*/ email_action, /*GlideRecord*/ email_log, /*EmailClassifier*/ classifier) {
    // Extract the SN ID from the email body
    var emailBody = email.body_text;
    var snID = extractID(emailBody); // Implement this function to extract the SN ID

    if (snID) {
        var gr = new GlideRecord('sn_si_request');
        gr.addQuery('number', snID); 
        gr.query();

        if (gr.next()) {
            // Update the existing record
            gr.work_notes = emailBody;
            gr.update();
            gs.log('MiA Record updated for SN ID: ' + snID);
        } else {
            // Create a new record if no match is found
            current.short_description = email.subject;
            current.description = emailBody;
            current.insert();
            gs.log('MiA New record created for SN ID: ' + snID);
        }
    } else {
        gs.log('MiA No SN ID found in the email body.');
    }

    function extractID(body) {
        // Implement your logic to extract the SN ID from the email body
        var snIDPattern = /ServiceNow ID:\s*\[(\d+)\]/; // Example pattern, adjust as needed
        var match = body.match(snIDPattern);
        return match ? match[1] : null;
    }
})(current, event, email, email_action, email_log, classifier);

 

 

1 ACCEPTED SOLUTION

M_iA
Kilo Sage

I achieved what I wanted by getting the sender to prefix the subject with Re: in order to trick it into thinking it was a reply!

View solution in original post

1 REPLY 1

M_iA
Kilo Sage

I achieved what I wanted by getting the sender to prefix the subject with Re: in order to trick it into thinking it was a reply!