Please help me how to set the 'To' person to the 'assignee' of the ticket via email inbound

NagaNandini N
Tera Guru

Can someone help me with the below email inbound action?We need to set the 'To' person as an assignee of the request.

 

(function runAction( /*GlideRecord*/ current, /*GlideRecord*/ event, /*EmailWrapper*/ email, /*ScopedEmailLogger*/ logger, /*EmailClassifier*/ classifier) {

gs.log("SJ Email Sys_id "+email.sys_id);
    var desc = email.body_text.toString();
    var place = desc.indexOf("Disclaimer");
    desc = desc.substring(0, place);

    var cartId = GlideGuid.generate(null);
    var cart = new Cart(cartId);
    var item = cart.addItem('9c7395f41ba5c4500da14223cd4bcba6');

    cart.setVariable(item, 'request_type', 'Inquiry');
    cart.setVariable(item, 'description', desc);
    var cartmsg = "received from: " + email.origemail + "\n\n" + email.body_text;
    cart.setVariable(item, 'comments', cartmsg);
 
    var rc = cart.placeOrder();

    try {
        var toEmail = email.direct.split(',');
        var firstToEmail = toEmails[0].trim();
        var usrSysID ='';

        if (firstToEmail != '') {
            var usr = new GlideRecord('sys_user');
            usr.addQuery('email', firstToEmail);
            usr.query();
            if (usr.next()) {
                usrSysID = usr.sys_id;
                gs.log('usrSysID ' + usrSysID);
            }
        }

        var inputs = {};
        inputs['description'] = desc; // String
        inputs['short_description'] = email.subject.toString(); // String
        inputs['assignee'] = usrSysID;
        inputs['request_number'] = rc.sys_id; // Sys ID (GUID)

        // Start Asynchronously: Uncomment to run in background. Code snippet will not have access to outputs.
        // sn_fd.FlowAPI.getRunner().subflow('global.email_general_request_subflow').inBackground().withInputs(inputs).run();

        // Execute Synchronously: Run in foreground. Code snippet has access to outputs.
        var result = sn_fd.FlowAPI.getRunner().subflow('global.email_general_request_subflow').inForeground().withInputs(inputs).run();
        var outputs = result.getOutputs();

        // Current subflow has no outputs defined.      
    } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
    }

})(current, event, email, logger, classifier);
1 ACCEPTED SOLUTION

NagaNandini N
Tera Guru

Fixed it from my end and the exact code is below 

 

(function runAction( /*GlideRecord*/ current, /*GlideRecord*/ event, /*EmailWrapper*/ email, /*ScopedEmailLogger*/ logger, /*EmailClassifier*/ classifier) {

 

gs.log("SJ Email Sys_id "+email.sys_id);
    var desc = email.body_text.toString();
    var place = desc.indexOf("Disclaimer");
    desc = desc.substring(0, place);

 

    var cartId = GlideGuid.generate(null);
    var cart = new Cart(cartId);
    var item = cart.addItem('9c7395f41ba5c4500da14223cd4bcba6');

 

    cart.setVariable(item, 'request_type''Inquiry');
    cart.setVariable(item, 'description', desc);
    var cartmsg = "received from: " + email.origemail + "\n\n" + email.body_text;
    cart.setVariable(item, 'comments', cartmsg);
 
    var rc = cart.placeOrder();

 

    try {
        var toEmail = email.direct.split(',');
        var firstToEmail = toEmail[0].trim();
        var usrSysID ='';

 

        if (firstToEmail != '') {
            var usr = new GlideRecord('sys_user');
            usr.addQuery('email', firstToEmail);
            usr.query();
            if (usr.next()) {
                usrSysID = usr.sys_id;
                gs.log('usrSysID ' + usrSysID);
            }
        }

 

        var inputs = {};
        inputs['description'] = desc; // String
        inputs['short_description'] = email.subject.toString(); // String
        inputs['assignee'] = usrSysID;
        inputs['request_number'] = rc.sys_id; // Sys ID (GUID)

 

        // Start Asynchronously: Uncomment to run in background. Code snippet will not have access to outputs.
        // sn_fd.FlowAPI.getRunner().subflow('global.email_general_request_subflow').inBackground().withInputs(inputs).run();

 

        // Execute Synchronously: Run in foreground. Code snippet has access to outputs.
        var result = sn_fd.FlowAPI.getRunner().subflow('global.email_general_request_subflow').inForeground().withInputs(inputs).run();
        var outputs = result.getOutputs();

 

        // Current subflow has no outputs defined.      
    } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
    }

 

})(current, event, email, logger, classifier);

View solution in original post

1 REPLY 1

NagaNandini N
Tera Guru

Fixed it from my end and the exact code is below 

 

(function runAction( /*GlideRecord*/ current, /*GlideRecord*/ event, /*EmailWrapper*/ email, /*ScopedEmailLogger*/ logger, /*EmailClassifier*/ classifier) {

 

gs.log("SJ Email Sys_id "+email.sys_id);
    var desc = email.body_text.toString();
    var place = desc.indexOf("Disclaimer");
    desc = desc.substring(0, place);

 

    var cartId = GlideGuid.generate(null);
    var cart = new Cart(cartId);
    var item = cart.addItem('9c7395f41ba5c4500da14223cd4bcba6');

 

    cart.setVariable(item, 'request_type''Inquiry');
    cart.setVariable(item, 'description', desc);
    var cartmsg = "received from: " + email.origemail + "\n\n" + email.body_text;
    cart.setVariable(item, 'comments', cartmsg);
 
    var rc = cart.placeOrder();

 

    try {
        var toEmail = email.direct.split(',');
        var firstToEmail = toEmail[0].trim();
        var usrSysID ='';

 

        if (firstToEmail != '') {
            var usr = new GlideRecord('sys_user');
            usr.addQuery('email', firstToEmail);
            usr.query();
            if (usr.next()) {
                usrSysID = usr.sys_id;
                gs.log('usrSysID ' + usrSysID);
            }
        }

 

        var inputs = {};
        inputs['description'] = desc; // String
        inputs['short_description'] = email.subject.toString(); // String
        inputs['assignee'] = usrSysID;
        inputs['request_number'] = rc.sys_id; // Sys ID (GUID)

 

        // Start Asynchronously: Uncomment to run in background. Code snippet will not have access to outputs.
        // sn_fd.FlowAPI.getRunner().subflow('global.email_general_request_subflow').inBackground().withInputs(inputs).run();

 

        // Execute Synchronously: Run in foreground. Code snippet has access to outputs.
        var result = sn_fd.FlowAPI.getRunner().subflow('global.email_general_request_subflow').inForeground().withInputs(inputs).run();
        var outputs = result.getOutputs();

 

        // Current subflow has no outputs defined.      
    } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
    }

 

})(current, event, email, logger, classifier);