J
ust the other day I came across an issue with a client that came up with a couple of users on the ServiceNow forums as well. The issue was that technicians monitoring a chat queue had no way of knowing that a chat was waiting unless they were staring at their chat desktop the entire time. Since most IT people tend to multitask, this can become a problem resulting in longer-than-ideal wait times in the chat queue.
With the help of the ServiceNow Guru ‘Module Counts’ update set I was able to find a solution that I think effectively solves this issue by showing a count in the left navigation pane whenever a new chat enters a user’s queue.
1) Install the ServiceNow Guru ‘Module Counts’ update set
The ‘Module Counts’ update set is what makes this whole solution work. By installing the update set you can set up a module in your left navigator that updates automatically as new entries come into your chat queue. You can access the download directly from this link.
2) Configure the ‘Waiting Chats’ module
Once you’ve committed the ‘Module Counts’ update set you can create the module to display the number of waiting chat queue entries. I placed my module under the ‘Service Desk’ application and configured it as shown in the screenshot below…
3) Configure the ‘Waiting Chats’ list layout
Once the module is configured, you should see the ‘Waiting Chats’ record count displayed in next to the module in the left navigator. You’ll also want to personalize the list layout and list control to show the correct information. I changed the columns and removed the ‘New’ button. You can perform these actions by right-clicking the list header and selecting ‘Personalize’.
4) Add a ‘Show Chat Desktop’ UI action to your list
Finally, you can add a context menu UI action for your list so that technicians can click into the module, right-click one of the entries, and open up the chat desktop directly from the list.
Here’s how I set up the UI action…
Name: Show Chat Desktop
Table: Chat Queue Entry (chat_queue_entry)
Client: True
Form link: True
List context menu: True
onClick showChatDesktop();
Condition: current.action == ‘waiting’
Script:
function showChatDesktop() {
var url = 'chat_desktop.do?sysparm_nostack=true';
window.open(url, 'chat_desktop');
}
That’s it! Hopefully this solution gives you a better way to manage your chat queue going forward.
This is AWESOME!!! I’ve been looking for something very similar for the use with regular work queues so teams can see how much work they have pending. Going to try and modify your solution to fit our needs.
Thanks!
Glad to hear it! Please let me know how it ends up working for you.
can someone please confirm that this update set zip works? can’t seem to get it to work getting an error message that the archive is invalid
It’s been working fine for me, but I just re-zipped the file and uploaded the new version so you can download again and see if that makes a difference. Also, make sure to extract the XML from the zip. The xml file is what you’ll load into your instance.
Thanks very much Mark.
got it working well added some more time intervals and the one i have it set to currently is 5 seconds. Any idea of the impact to the system if there are hundreds of users logged in and having 3 modules update every 5 seconds?
I haven’t heard any specific feedback, but I would be careful with an interval that short. Please keep an eye on it and let me know if you experience any issues.
How did you change the intervals to 5 seconds refresh?
Also Just want to know did your instance’s performance suffer ?
Thanks
I am trying to implement this, but I had a couple issues. In your screen shot, you set the “keywords” = to myGroup and “waiting”. I was not able to make this work using keywords. Can I use assignment group and action instead of keywords?
Good catch, the screenshot filter was incorrect. You should use ‘Assignment group’ and ‘Action’ instead. I’ve updated the screenshot to reflect this.
Some individuals have reported that the counter will show 0 waiting chats when chats have been waiting for 5 minutes or longer. The counter is on a 30-second refresh interval, and I have never been able to reproduce this behavior; nevertheless, I am being tasked to find out why this is occurring. Could it be an issue where certain browsers (Internet Explorer) may not handle the refresh like others (Chrome, Firefox, etc.)? Thanks.
Hi Mark,
I haven’t heard of any issues like that. If you can manage to reproduce the issue I’d be happy to take a look. Just haven’t seen it come up anywhere else yet.
This seems like a good solution but wondering if anyone has tried to use web notification api with firefox or chrome? Seems like it would be another good alternative. If anyone has tried it and can pass along some details it would be appreciated!
Great addition, but what should the html argument be? It’s no included in the screenshot.
Thanks
The arguments are actually a script that gets populated when you save a module using the module counts update set referenced above. You never have to worry about populating the arguments because the module counts functionality builds and sets the arguments for you.
Thanks Mark – Last question, did you have to adjust ACLs? With the left navigation link, I have an ITIL person as a member of the helpdesk group and even added ‘chat_admin’ as a role but the user is not able to see any records. They only receive the ‘number of rows constrained by security’ prompt.
If you’re seeing that message, then yes. You’ll need to adjust the row-level read ACL associated with that table.
Mark, thanks again for this great work.
I did have to adjust the OOB ACLs though. Running Berlin, most recent patch.
I’m having the same problem with ‘number of rows constrained by security’. How did you fix this?
The message means that you have an ACL on the ‘chat_queue_entry’ restricting the ‘read’ operation. You’ll need to add whatever roles you need (probably itil) to the related list at the bottom of that ACL. You can reference the wiki for more information on adjusting ACLs in your system.
The interesting part is that there are only 4 primary rules against chat_queue_entry and even when I apply the ‘chat_admin’ role to the helpdesk group, the user still receives the rows constrained message.
This is great! However, for some reason, I am not able to create the 30 second interval choice for that module. It keeps kicking me back to the homepage once I submit and does not add the choice. Am I missing something?
Thanks!
Sean
I would add the new choice by selecting ‘Show Choice List’ instead of ‘Personalize Choices’. The ‘Personalize Choices’ UI doesn’t really play well sometimes with integer-based and extended fields. Other than that, I’m not sure what the problem might be. If you use ‘Show Choice List’ and create the table entry directly, it should work.
Worked like a charm! Thank you…
Is there anyway to make the browser header flash or produce some type of browser popup when we have waiting chats? apparently this is not enough of a solution for some of our technicians
There is if you can get it to work. It’s also not supported in IE yet.
http://www.html5rocks.com/en/tutorials/notifications/quick/
Not sure how I would implement an HTML5 based solution on a Berlin Instance; but I will give it a shot!
We have two waiting chat modules using this technique. The refresh interval is currently 10 minutes and I am being asked to change the refresh interval to 1 minute. Does anyone have any suggestions on what diagnostics or stats I should monitor to measure the impact of this change?
I don’t, but I’d be very surprised if you noticed anything as a result of that.
Hey, I really like this (and useful for more than just chat!).
However for just chat I’ve found a property that can be used to show chat messages immediately. glide.ui11.show_chat.
The only thing is that the user MUST be on ui11 (which I prefer anyway but I know some users haven’t taken to it so much 🙂 )
Nice find on the property. I haven’t tested it, but it looks like that property is just for direct chat communications, not for chat support queues. Can you confirm?
It does chat support queues also (and chat rooms)
With Chat Queues it also has a nice little ‘Answer next user’ button on the fly out from the right. Not sure why this property isn’t on the wiki. Possibly still work in progress (although it’s been around since at least Aspen)
Awesome! I just confirmed this as well. Interestingly, I remember seeing this but I only saw it one time during a Fred Luddy demo of UI11 at a knowledge conference. Only drawback is that it requires UI11 but overall it seems to work well.