Waiting Chat Queue Entries Notification

Just 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.

Waiting Chat Queue Solution

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…

Waiting Chats Module

The ‘Module Counts’ refresh interval’s lowest setting is 5 minutes. This is done to help ensure adequate performance of the solution. In this case however, it may make sense to personalize the choices for the ‘Refresh interval’ field in the screenshot above and add a 30 second interval (value of 30000 milliseconds) for use by this module.

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’.

Waiting Chat List

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.

Show Chat Desktop

Here’s how I set up the UI action…

‘Show Chat Desktop’ 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’

// Show the chat desktop in a new window
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.

Date Posted:

June 22, 2012

Share This:


  1. Joshua June 25, 2012 at 6:34 am

    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.


    • Mark Stanger June 25, 2012 at 6:49 am

      Glad to hear it! Please let me know how it ends up working for you.

  2. Joshua June 25, 2012 at 6:38 am

    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

    • Mark Stanger June 25, 2012 at 6:52 am

      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.

      • Joshua June 25, 2012 at 6:58 am

        Thanks very much Mark.

  3. Joshua June 27, 2012 at 8:12 am

    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?

    • Mark Stanger June 27, 2012 at 8:24 am

      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.

    • Alli August 29, 2012 at 3:24 am

      How did you change the intervals to 5 seconds refresh?

      Also Just want to know did your instance’s performance suffer ?


  4. Jim Jackson August 20, 2012 at 7:52 am

    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?

    • Mark Stanger August 20, 2012 at 8:38 am

      Good catch, the screenshot filter was incorrect. You should use ‘Assignment group’ and ‘Action’ instead. I’ve updated the screenshot to reflect this.

  5. Mark Landis November 2, 2012 at 6:48 am

    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.

    • Mark Stanger November 2, 2012 at 12:31 pm

      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.

  6. Bill Polnick January 29, 2013 at 1:28 pm

    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!

  7. Josh April 22, 2013 at 8:41 am

    Great addition, but what should the html argument be? It’s no included in the screenshot.


    • Mark Stanger April 22, 2013 at 8:46 am

      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.

      • Josh April 22, 2013 at 9:20 am

        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.

        • Mark Stanger April 22, 2013 at 9:44 am

          If you’re seeing that message, then yes. You’ll need to adjust the row-level read ACL associated with that table.

          • Josh April 22, 2013 at 7:00 pm

            Mark, thanks again for this great work.

            I did have to adjust the OOB ACLs though. Running Berlin, most recent patch.

        • Mark Goff August 28, 2013 at 7:19 am

          I’m having the same problem with ‘number of rows constrained by security’. How did you fix this?

          • Mark Stanger August 28, 2013 at 7:25 am

            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.

  8. Josh April 22, 2013 at 9:46 am

    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.

  9. Sean Barrett May 16, 2013 at 3:09 pm

    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?


    • Mark Stanger May 16, 2013 at 3:12 pm

      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.

      • Sean May 16, 2013 at 3:17 pm

        Worked like a charm! Thank you…

  10. James July 24, 2013 at 6:36 am

    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

  11. James Fricker November 21, 2013 at 8:03 pm

    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?

    • Mark Stanger November 21, 2013 at 8:08 pm

      I don’t, but I’d be very surprised if you noticed anything as a result of that.

  12. Ahmed Hmeid January 13, 2014 at 5:55 am

    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 :) )

    • Mark Stanger January 13, 2014 at 6:05 am

      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?

      • Ahmed Hmeid January 13, 2014 at 8:13 am

        It does chat support queues also (and chat rooms)

  13. Ahmed Hmeid January 13, 2014 at 8:17 am

    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)

    • Mark Stanger January 13, 2014 at 8:30 am

      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.

Comments are closed.




Fresh Content
Direct to Your Inbox

Just add your email and hit subscribe to stay informed.