Enhancing The Impersonate Functionality

Update: This has now been added OOB to Geneva to the elevate privilege dialog, but not for the impersonate dialog


When building security rules, I find myself impersonating back and forward constantly between numerous users trying to test what a user can see or do.

What gets to me is that every time I impersonate, it throws me to the homepage and then I had to navigate again to the correct location I was testing.

You could of course open multiple windows and impersonate in the other one, but things eventually get confusing.

Instead, what I added was the ability to stay on your current page by adding a new checkbox to the impersonation page:

Screen Shot 2015-07-27 at 15.39.29

Continue reading

Automated Login Using A HTA File

One of our clients had the concept of kiosks in particular locations/office/factories. These kiosks were used to give users access to a number of applications for information. One of the things they wanted the kiosk to have access to was their ServiceNow knowledge base.

We didn’t want to make the knowledge base public because it contained sensitive information, and at the same time didn’t want the users to have to enter a username and password to login.

I experimented with a login using a HTA file (same technology as Help the help desk functionality). The idea being that this could sit on the desktop and when clicked, will login automatically to ServiceNow.

We never used this solution, but I thought the idea was interesting and one I haven’t played with before so posting it here just as a concept.

So the approach was this (actual code at the end):

I created a new user record specific for each kiosk. The username was the windows username that the kiosk was logged in with. On the user table, we created 2 new fields:

1) u_ip which IP restricted who could access using this account

2) u_automated_login which was a True/False field to determine if this user record could use automated login or not

Then I created a HTA file which would read the username of the logged in user. Then it would do a HTTP post which was the same as the login.do page, except it would also pass an additional parameter across with it of ‘AutomatedLogin’.

Editing the Login installation exit, I then would check if the additional parameter was passed through, if so, I would check if this user had the Automated Login checkbox ticked, and finally, would check if their IP address matched against the one on record. If all these passed, I would log the user in automatically.

Continue reading

How To Let A User Know Who Last Accessed An Incident

A common requirement I hear a lot is how to give itil users the ability to know that someone else is working on the same ticket as them. Out of the box, ServiceNow have provided an on submit client script which checks if there’s been an update since you’ve been working on the incident. However, my issue with this is it’s happening after the itil user has already spent some time working on the incident when someone else is already dealing with it.

It’s an inefficient way of working. So I came up with a different solution, one that checks when accessing an incident, whether someone else has accessed it since it’s last update within the last 30 minutes.

If someone other than you viewed the incident, an alert will be shown to the itil agent letting them know who accessed the incident and when. This simple solution provides enough information for the itil user to make an informed decision as to how they wish to proceed with the incident.

Continue reading

How To Create Gmail Style Starred Cases

I created a small customisation which allows any user access to star a case. Any of who you use Gmail will probably recognise this functionality from there as that’s where I got my inspiration. It gives you quick access to cases you want to keep an eye on without impacting the case or anyone else.

It’s a nice little thing to implement for a customer, but more than that, I thought I’d share the technical side behind it to give you some ideas of what you can do within ServiceNow.

Check the YouTube video for a quick demo:

Let’s start off with the approach…
Continue reading