How to post an email response to the Activity of the parent RITM

lexdiaz
Giga Contributor

Hi Community,

I have enabled the option email in the SCTask form, in such a way that end users(fulfiller) can send emails directly to the requester, therefore I have this inbound action that is triggered when a requester replies back to xxxxxxx@servicenow.com email with additional comments on SCTASK

End users can see sent/received e-mails activity in activity log on SCTask form.

BUT I want that when an end user sends an email from SCTask form, the replies of the requester go to the RITM form in the activity log.

How can I modify this script to achieve it?

find_real_file.png

Thank you

Lex

5 REPLIES 5

ruzzty06
Tera Expert

I havent tried doing the same   but you can try something like this.






if (current.getTableName() == "sc_task") {


var gr=current.requested_item;


gr.comments= "reply from: " + email.origemail + "\n\n" + email.body_text;


gr.update();


}


lexdiaz
Giga Contributor

it didn't work


Hello Lex,





Recently I was working on a task where I had to ensure that once a user is mentioned into the Activity feed of a Change Task record -> then he will receive an email containing link to the Change Task record, the Short Description of this record, the user who mentioned him + the work notes of this user.
In addition, if the recipient decides to reply to the received email via Outlook -> the reply will be added into the Activity feed of the Change Task record.



In order to achieve this, I made a copy of the default Activity Stream @Mention Email Notification, by addressing it (the custom one) to Notifications (live_notification) table. I marked it to run when record is inserted or updated & checked the Omit watermark option. In addition, I modified the default ng_activity_mention_body Email Script. This is actually the Email Script of the default Activity Stream @Mention Email Notification. I may say that I modified the default Email Script by just adding some lines to it. You may take a look at my script below:



var recordGR = new GlideRecord(current.table);


if(recordGR.get(current.document)) {


        email.setSubject("You have been mentioned in " + recordGR.getDisplayValue());


      template.print("<p style='color: #424E5B;margin: 0 0 12px;line-height: 26px;margin-bottom: 12px'>You have been mentioned by " + current.user_from.name + " in <a href='/" + recordGR.getRecordClassName() + ".do?sys_id=" + recordGR.getUniqueValue() + "'>" + recordGR.getDisplayValue() + ".</a></p style='color: #424E5B;margin: 0 0 12px;line-height: 26px;margin-bottom: 12px'><p>Short Description: " + recordGR.getDisplayValue("short_description") + "</p>");


      if (current.field_name == "comments") {


              template.print(recordGR.comments.getJournalEntry(1) +   "<br />");


      }


      else if (current.field_name == "work_notes") {


              template.print(recordGR.work_notes.getJournalEntry(1) +   "<br />");


      }


}



After I was ready with the custom Email Notification and Email Script - I performed some tests and confirmed that the requirement has been successfully completed. Now, by addressing the custom Email Notification to run against Notification (live_notification) table - the same scenario works for couple of tables: Change Request, Change Task, Incident, etc.


I did not create any Inbound Actions, or at least I do not remember. Simply activated all email receiving / sending options of my SNOW instance.



I am pasting some screenshots of the tests below:



- this is the email notification which I received after I was mentioned in the Activity of the Change Task record + the reply I am writing;


2017-11-14 16_09_02-Inbox - georgi@doitwise.com - Outlook.png



- this is how the Change Task record gets updated, after I reply through my email:


2017-11-14 16_10_00-CTASK0013684 _ ServiceNow.png



I believe this approach might be of use for you. I've tested it with Catalog Task record (sc_task table). It works as the example above. If it suits you - go ahead and try it




Best Regards,


Georgi Mavrodiev



IT Consultant


Do It Wise



You may visit us in our Web Site: www.doitwise.com


Siddhant_J
Giga Contributor

Please try the following code :

 

var parent = new GlideRecord(request_item);

parent.addQuery("sys_id",current.document_id);
parent.query();
if(parent.next()){

// parent.comments = "Approval request for this record updated by different user "+"\n\n"+"reply from: " + email.from + "\n\n" + email.body_text;
parent.work_notes = "Approval request for this record updated by different user "+"\n\n"+"reply from: " + email.from + "\n\n" + email.body_text;
parent.update();
}
// parent.update();
//current.update();