- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-07-2022 07:15 PM
Hi,
Is it possible to use email address as "main identifier" for the CI that the user possesses?
For example, when importing data, it is possible to have 2 users with the same full names, but their email will always be unique.
John Doe (john.doe@company.com) has 1 Dell Laptop
John Doe (john.doe2@company.com) has 1 Samsung Cellphone
When uploading the data and going through a transform map to put the data onto the target table, how will I make sure that the user's CI doesn't get mixed up with another user if they have the same full name? I need john.doe@company.com to have 1 dell laptop correctly assigned to under him and john.doe2@company.com to have 1 samsung cellphone correctly assigned to under him as well. As of now, when I upload an excel sheet filled with items that belongs to users, I use the mapping assist function to User's full name -> Assigned to. And this method only allows me to use the Users Full name as the key identifier. Is there a better method of doing this, or what am I missing?
Not sure if this is the correct place to ask neither am I that good at explaining the issue, so let me know if there's more details I need to provide. Any input or recommendations will be appreciated, Thanks.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-08-2022 01:07 PM
So if your actual issue here is how to correctly assign the users to the devices, here is what you will need to know:
1) Import your users from trusted data sources like LDAP and/or use an HRIS integration (e.g. Oracle, Workday, Sailpoint, etc.)
2) What is the most unique source data you can obtain about the assignment of your assets/CIs? Ideally something like a network login or employee ID is going to be easier than a full name.
3) If it is truly only the Full Name of the user that you have in the source data, this may be OK, but you may need to first do some data scrubbing to make sure that everything is ready to coalesce. There may be name changes, difference in spelling or formatting, etc. Make sure you can do a lookup of the user.
4) When setting the Assigned to field (or any other reference field! see point #5) you will need to set it to the sys_id value of the User record that you look up. You can script this or you may be able to just create a Field Mapping and specify thename field as the field to map the record to. That should automatically put the correct User reference into the Assigned to field:
5. Notice that the above is a screen shot from a transform that is pointing to the Asset table. This applies equally to Assets or CIs. If you transform your source to Assets and you provide an appropriate Model and Model Category, and you coalesce on the Serial Number, then you will get an appropriate CI, and you won't use IntegrationHub-ETL or IRE (these are for CMDB only). But in either case, remember that if the field you are mapping to, whether Assigned to, or Model, is a Reference field, you MUST either transform this data to a sys_id before setting it or specify the referenced value field name so that it will provide a valid reference.
If this is just a one-off import, and you don't have a lot of existing data, then you may be able to just do a direct import from Excel, as long as you verify first that you aren't going to create any duplicates. IT's a simpler approach but I would definitely not recommend this as a standard repeatable process. However, if you are looking to establish a repeatable process for importing devices, I would definitely recommend using a traditional Transform Map for Assets, or using IntegrationHub-ETL for CIs. There is a bit of a learning curve for IntegrationHub-ETL, but once you get it, it will serve 95% of your data source integration needs for CMDB. The key is to make sure you have reliable data that matches the identifier entries for the CI classes you want to import, e.g. Serial Number or Name for Hardware CIs.
Hope this helps! Please mark this response as the correct answer and/or helpful, as applicable.
The opinions expressed here are the opinions of the author, and are not endorsed by ServiceNow or any other employer, company, or entity.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-08-2022 06:02 AM
Is it possible? Yes. Should you do it? No.
As others have pointed out, there are ways to tell ServiceNow to coalesce on the email address of the user of the device. But there are lots of problems to point out:
- They may have more than one device, either of a single class or multiple classes.
- Email address isn't an attribute of hardware (unless you have added a custom field) and doesn't make logical sense on a device. Devices don't have email addresses.
- If you are coalescing on the user's email address, then it's a bit more susceptible to error. It is possible to have multiple user accounts with the same email address. Unlikely but possible.
- Even if you can ensure that 100% of users only have a single device, the problem is that ServiceNow may have incorrect information at any time. So if a user replaces their device, you would be overwriting the record with a different device. That is incorrect on multiple levels.
- In general you should not use traditional transform maps to import CIs into the CMDB. Rather, you should use the Identification and Reconciliation Engine (IRE) to load CI payloads using their Identifier Entries. Email address (or Assigned to user) is not a valid identifier for any Hardware class. Now, you could define them as such, but this begs the question.....................
Why are you using email address? There are much better identifiers for devices. At the very least, I would assume you have the Name or Serial Address for the device. These are more accurate identifiers. If you don't know either one, I would argue that you just don't have enough information to uniquely identify the CIs, so you are not ready to manage them in your CMDB. If you have either one or both of these (and ideally the Model as well), then you have enough information to adequately identify the CIs and manage them in the CMDB, and you can map the email address to the User record so that you can set the Assigned to field accordingly. And if you're intending to ensure that users only have a single device, you should do that with reporting after the fact, not by asserting this as an identification rule.
The opinions expressed here are the opinions of the author, and are not endorsed by ServiceNow or any other employer, company, or entity.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-08-2022 10:53 AM
I agree with everything you have said, which is why I didn't want to use email address as a coalesce field. So far, I have enough information to identify and manage the CIs such as model, serial, asset tag etc. The problem is the last thing you mentioned, which was:
"and you can map the email address to the User record so that you can set the Assigned to field accordingly."
To elaborate further, the assigned field only lets me map to a user's full name hence why I brought up the 2 examples of 2 users having identical names. The reason why I'm using the data source -> import and transform map method is because I currently have an inefficient way of tracking user's assets and items on an excel sheet. I want to be able to quickly determine that a certain user has a specific cellphone/laptop/device currently deployed to them and on record. I understand that there can only be one unique device (serial number) which was why I used serial number as a coalesce field. The problem is just mapping the email address from my excel sheet.
Would uploading all the User records and data onto ServiceNow first be a better step first, rather than to upload the CIs right away? You did make an interesting point about I/R to load CI payloads, which I'm going to need to research on since I have no experience doing that. There might be and probably is a better way to do the things I'm currently doing now, but my knowledge is very limited. I'm new to this platform and am basically learning as I go.
Again, I appreciate the input. This helps me a lot.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-08-2022 01:07 PM
So if your actual issue here is how to correctly assign the users to the devices, here is what you will need to know:
1) Import your users from trusted data sources like LDAP and/or use an HRIS integration (e.g. Oracle, Workday, Sailpoint, etc.)
2) What is the most unique source data you can obtain about the assignment of your assets/CIs? Ideally something like a network login or employee ID is going to be easier than a full name.
3) If it is truly only the Full Name of the user that you have in the source data, this may be OK, but you may need to first do some data scrubbing to make sure that everything is ready to coalesce. There may be name changes, difference in spelling or formatting, etc. Make sure you can do a lookup of the user.
4) When setting the Assigned to field (or any other reference field! see point #5) you will need to set it to the sys_id value of the User record that you look up. You can script this or you may be able to just create a Field Mapping and specify thename field as the field to map the record to. That should automatically put the correct User reference into the Assigned to field:
5. Notice that the above is a screen shot from a transform that is pointing to the Asset table. This applies equally to Assets or CIs. If you transform your source to Assets and you provide an appropriate Model and Model Category, and you coalesce on the Serial Number, then you will get an appropriate CI, and you won't use IntegrationHub-ETL or IRE (these are for CMDB only). But in either case, remember that if the field you are mapping to, whether Assigned to, or Model, is a Reference field, you MUST either transform this data to a sys_id before setting it or specify the referenced value field name so that it will provide a valid reference.
If this is just a one-off import, and you don't have a lot of existing data, then you may be able to just do a direct import from Excel, as long as you verify first that you aren't going to create any duplicates. IT's a simpler approach but I would definitely not recommend this as a standard repeatable process. However, if you are looking to establish a repeatable process for importing devices, I would definitely recommend using a traditional Transform Map for Assets, or using IntegrationHub-ETL for CIs. There is a bit of a learning curve for IntegrationHub-ETL, but once you get it, it will serve 95% of your data source integration needs for CMDB. The key is to make sure you have reliable data that matches the identifier entries for the CI classes you want to import, e.g. Serial Number or Name for Hardware CIs.
Hope this helps! Please mark this response as the correct answer and/or helpful, as applicable.
The opinions expressed here are the opinions of the author, and are not endorsed by ServiceNow or any other employer, company, or entity.