Best Practice for Users and Technicians to Communicate for a Requested Item?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-19-2016 12:55 PM
Since we have the REQ/RITM/TASK structure in ServiceNow that prevents the end user who submitted a REQ/RITM to communicate with the task assignees out of the box, what is the best way to configure the Service Catalog to allow end users who submitted the request (Requested For/Opened By) to communicate with the Assigned To or Assignment Group of the tasks and vice versa?
We have had this issue since we went live and have been instructing users and ITIL analysts to always add comments to the RITM and to add people to the RITM's watch list. This is a hassle and isn't a feasible workaround to functionality that seems obviously necessary that wasn't included OOB.
I've read posts about creating BR's to add Task Assigned To/Assignment Groups to the RITM watch list. I've also read posts where people tried creating BR's to copy Task Comments to the RITM comments and vice versa. Most of those discussions don't have a clear solution that seems to work flawlessly.
What was your solution? Please share!
(We are on Fuji)
Thanks,
Johnny

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-19-2016 01:21 PM
Hi Johnny,
Most of the customers I've worked with don't actually communicate through email in the catalog, but I think forcing everything through the RITM is the right move if you are. In order to communicate the comments to those working the tasks you could write a mail script that queries all associated open tasks and adds the assignees to the comments email. The idea of writing a business rule to add assignees to the watch list on the RITM isn't a bad idea either. Unfortunately I don't think you're going to find a best practice that works flawlessly.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-19-2016 01:29 PM
Thanks Brad for the quick response.
We are not necessarily looking to use email as the method of communication, but we need a way for all of the task assignees to get notified if the end user logs a comment on the RITM. Right now, the technicians can add comments to the RITM and the end user would get a notification, but if the end user responds, the technician won't know unless they manually add themselves to the watch list.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-23-2016 08:44 AM
Can anyone else shed some light on what their solutions are? I'm looking for feasible options that have worked for their organizations.
Thanks,
Johnny
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-24-2016 09:32 PM
Hi Johnny,
I had this same dilemma and found this thread that helped me on my way.
Notification for Additional comments in Service Catalog task
The way it works is if an end user updates the additional comments on the sc_req_item table, an email is sent to the assigned to in the corresponding catalog task.
Basically, I have a notification, event and business rule running to achieve this.
Notification:
Table: sc_req_item
Send when: Event is fired
Event Name: sc_req_item.commented
Who will receive (Users/Groups in fields): Assigned to, Watch List
Event parm 1 contains recipient: Checked
Event:
Event Name: sc_req_item.commented
Table: sc_req_item
Fired by: sc_req_item events business rule
Business Rule:
Name: sc_req_item comment events
Table: sc_req_item
When to run: after
Update: Checked
Condition: current.comments.changes()
gs.eventQueue("sc_req_item.commented", current, gs.getUserID(), gs.getUserName());
queueAssigneeEvent();
function queueAssigneeEvent() {
var assigneeArr = [];
var assignGroupArr = [];
//Query for non-pending sc_task records
var catTsk = new GlideRecord('sc_task');
catTsk.addQuery('request_item', current.sys_id);
catTsk.addQuery('state', '!=', -5);
catTsk.query();
if (!catTsk.hasNext()) {
gs.addInfoMessage(gs.getMessage('Comment cannot be viewed by technicians until work begins on the Requested Item'));
return;
}
while (catTsk.next()) {
//notify task assignees
if (!catTsk.assigned_to.nil())
assigneeArr.push(catTsk.assigned_to.toString());
else
assignGroupArr.push(catTsk.assignment_group.toString());
//Add Work notes watch list users
assigneeArr.push(catTsk.work_notes_list.toString());
}
gs.eventQueue("sc_req_item.commented.itil", current, assigneeArr, assignGroupArr);
}
var grpList = [];
var tsk = new GlideRecord('sc_task');
tsk.addQuery('request_item',current.sys_id);
tsk.addQuery('active','true');
tsk.query();
while (tsk.next()){
grpList.push(tsk.assigned_to+'');
}
gs.eventQueue("sc_req_item.commented",current, grpList.join(','),gs.getUserName());
I hope this helps someone
Cheers,
Brendan