ServiceNow Custom Data Application
An ultimate guide on how to tune-up your data import
Data is the most crucial asset. Quite a bold statement for the introduction and yet, here we are. Everyone is managing data, whether it’s personal or corporate. And when it comes to data management we also need to talk about data transfer. But before we move ahead, the real question is:
1.1 Why import data in the first place?
Obviously, there are several reasons. A not fully exhaustive list would include at least the following items:
- transferring data to the cloud,
- managing obsolete systems,
- moving among different platforms,
- improving data quality.
So the data import is not necessarily only about moving from point A to point B, but also about improving this data while doing so.
1.2 Out of the box solution
If you already have some experience with the data import process in ServiceNow, you know it can be quite a challenge and the complexity can be overwhelming even for professionals. Let’s have a look at some of the steps needed to be done to set the data import correctly and successfully.
Image #1: Necessary steps for setting up data import
Image #1 displays some of the necessary steps required to successfully configure data import in ServiceNow. Shown steps are:
- setting up data sources,
- creating transform maps,
- writing custom scripts for a specific business use-case,
- making proper selections during data import,
- and only then getting to the import result view, which could be still considered quite technical.
To be fair, this complexity is a double-edged sword. On one hand, it can be overwhelming and can cause errors due to many factors that need to be taken into account. On the other hand, it brings flexibility. And for this very reason, the existing import process can be sufficient in some cases and/or too technical and difficult in others.
2 Custom data import application in ServiceNow
As mentioned above, ServiceNow’s out of the box solution can be quite challenging and even more so for non-technical users. For this reason, some people will have to look for solutions elsewhere and this is where our custom application comes in handy.
2.1 What is our application trying to achieve?
Simplicity, simplicity, simplicity. Sounds simple enough? Good.
We have discussed that the import process is flexible for the cost of complexity. In some cases, however, there might be a need for a simple solution as possible. Simplicity, when well managed, brings rigidity and reliability, although several factors need to be taken into consideration.
Now it’s finally time to have a look at our solution to this issue.
2.2 Import Page
If you have a look again at image #1 and compare it the image #2 below. I believe these images talk for themselves. Instead of having to go through the selection process correctly, the end-users only need to select a proper excel template (with predefined column labels) and press the import button. The import will then happen automatically without any further need for the user’s interaction.
Image #2: Simplified import page
To import data, an excel file needs to be created with predefined column names. These names have to stay unchanged as they are connected to the logic in the background. It is also possible to define which columns are mandatory and which are optional to fulfill. In image #3, there are 5 mandatory fields (highlighted in red). If these fields will not be filled, the import logic will forbid their insertion or update in ServiceNow’s target table. On the contrary, the optional fields (highlighted in blue) do not necessarily need to be fulfilled. Examples of the mandatory check will be shown in the following section of this article.
Image #3: Excel template with predefined columns names
File extension check
Mistakes happen. We all make them and for this reason, our custom application is also trying to prevent any unwanted data imports. For instance, if users try importing an image or a pdf file instead of the predefined excel template, our application would inform them about it and would not allow such import.
Image #4: File extension check
2.3 Result Page
Finally, image #5 displays the result page showing our imported data in a nice and readable format. Columns shown on the result page can/and will have to be modified based on your specific use-case. In some cases, we might only need to import one column filled with data, and in that case, the result page would be even simpler.
Image #5: Result page showing imported records
2.4 Additional features of our data import application
Our data import application also provides additional functionality out of the box described below. Also, it is possible to implement any other custom features after consultation with us.
It is always good to be able to trace back any changes made to data. For this reason, our application comes with a possibility to send an email confirmation to any specified email address or a group of email addresses. After the “Email me confirmation” button is clicked, the user will receive a notification stating that the email has been successfully sent. After that, it will take a few moments until the email itself is received.
Image #6: Email confirmation notification
The information shown in the email notification can be modified to show any data important for the specific use case. It is also possible to differentiate users’ roles and send a different notification depending on who imported the data. Image # 7 shows an example of such notification.
Image #7: Example of an email notification
Redirection to the target table
Users can also redirect themselves directly to the target table if they would like to check imported data directly in place.
Making a new import
In some situations, users might need to make another import right after the initial one is finished. This could be due to several reasons, one of which could be for instance importing incorrect data that users would have to fix and re-import again. For such cases, there is another button on the result page redirecting users to the relevant import page.
2.5 Show Time
In this part, I would like to guide you through some of how this application can be used.
Importing corrupted data
Image #8: Importing incorrect data
As mentioned before, the data might be corrupted or not filled correctly. In image #8, we are trying to import a file with 10 records out of which, the first 5 are missing some of the mandatory data. As visible in the picture, the insertion of these 5 records have been indeed ignored as they are missing some data. Also, the comment field provides us with customized information telling us what is the problem for ignoring the insert.
Importing corrected file
Image #9: Importing corrected data
After the file is corrected, we can make another import. In image #9 we are importing the very same file as in image #8, however, the data is correctly filled and no mandatory data is missing.
In this case, the first 5 records are inserted this time, however, the other 5 are ignored. This is because our application is also taking care of duplicates. If the import detects a duplicate and there is no other change in the records, the import will ignore the insert or update.
Importing big data
Even though it is not possible to showcase importing big amounts of data in the form of this article, our application is also capable of doing exactly that. If you would like to see an example, please, have a look at our webinar showcasing the whole DEMO of this application.
2.6 Improving User Experience
When importing big amounts of data, it can take considerable time until the import is finished. To improve user experience, the application will show an informative message saying that the import is being processed until it’s done so users don’t need to worry about the application being frozen.
Image #10: Processing Import
2.7 Accessible from anywhere
The beauty of this application is that it is accessible from anywhere. Users can both import directly from the ServiceNow backend, but also the Service Portal. Some ServiceNow users never really need to go to the backend and for that reason, they would appreciate much more if they can access it directly from the portal.
Importing from the Service Portal
In the portal, the application is embedded inside a custom widget that can be placed anywhere.
Image #11: Custom data import app widget
In image #12, we can see that the widget can be easily placed anywhere on the portal.
Image #12: Widget can be placed anywhere on the portal
Importing directly from any record
It is also possible to access the import directly from any record. This might be required for instance when we would like to import installed software or installed printers directly to the currently opened configuration item. Import can be accessed in several ways, some of which include a button on the form or a context menu.
Image #13: Accessing data import directly from the opened record
Selecting relevant target table
Once the import page is accessed from the record itself, we can select the relevant target table to which we would like to import data. After importing, we can access the configuration item directly from the result page and see all the imported items in the record.
Image #14: Selecting relevant target table
2.8 Security in mind
We, of course, also kept security in mind. Because of the variety of use cases for this application, we had to come up with a solution to allow different users to access different instances of the data import. Some users working for instance with the CMDB would need much more strict security roles than users only importing, for example, their personal files. The solution to this issue is that the data import app can be copied to several instances and each of them can be set to require different security roles. Because this topic is very use case dependent, we can provide more information during a one-to-one consultation.
2.9 What is this app not good for?
Of course, this application is not a holy grail to solve all data import issues and some things need to be kept in mind.
This custom application is not simplifying the import process for developers. It is only aiming to simplify it for end-users actually importing and working with data.
This application, in its current state, is only capable of importing from a specified data source. The template needs to have predefined columns that cannot change on the go without further development.
So why would you want to use this application? Again, it is the simplicity. Sometimes it’s better to make things as simple as possible to make it rigid and reliable. Thanks to simplicity, data import is also less prone to human errors that could cause unexpected problems. This application is also fully automatic and heavily customizable if needed.
Yet, no solution is perfect and our application is not an exception in this regard. In some situations, you might want to stick with the out of the box solution, which is on one side much more technical and complex, but on the other provides more features right out of the box.
So what should you choose? Do you seek simplicity, rigidity, and reliability? Are you looking for alternative solutions and making data import easy and accessible for a wider variety of users? Would you like to access data import anywhere in ServiceNow, including Service Portal? In that case, look no further because this is the solution you need.
Get in touch, replay our webinar!
Also, if you would like to see the DEMO of this application in practice, have a look at our webinar where we thoroughly explain and showcase the functionality and also answer a few additional questions from the audience. You can access the webinar HERE
Also, please feel free to CONTACT US if you have any additional questions or further interests in the ServiceNow Custom Data Application.
Marko Visnovsky is an experienced IT & business consultant/ developer, proposing, developing, and implementing new IT solutions & architecture (Automation, CMDB, Data Migration, Data Analysis & Correction, Web Design). He is also capable of troubleshooting in complex situations & improving business processes. In his free time, he likes to explore new adventures while traveling, listens to good music, and enjoys the ride on his motorbike.