Use of custom attributes in ITAM <!-- .SOKMKBArticle div.margin { padding: 10px 40px 40px 30px; color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; } .SOKMKBArticle div.fed{ background-color: #f5f8fa; border: 1px solid; border-color: #bfbfbf; padding: 10px; } .SOKMKBArticle .FedRestricted{ background-color: #c00000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .CustRestricted{ background-color: #ff0000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .SNRestricted{ background-color: #ea700d; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .SNConfidential{ background-color: #ffc000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .Public{ background-color: #00b050; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle table.tocTable { border: 1px solid; border-color: #f2f2f2; background-color: #f2f2f2; padding-top: .6em; padding-bottom: .6em; padding-left: .9em; padding-right: .6em; } .SOKMKBArticle table.noteTable { align: left; border: none; border-color: #81b5a1; background-color: #f2f2f2; width: 100%; border-spacing: 2; font-size: 11px; } .SOKMKBArticle table.internalTable { border-top: 1px solid; border-left: 1px solid; border-color: #81b5a1; width: 100%; border-spacing: 1px; } .SOKMKBArticle .sp td { border-bottom: 1px solid; border-right: 1px solid; border-color: #81b5a1; background-color: #ffffff; height: 20px; padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; } .SOKMKBArticle .sphr td { border-right: 1px solid; border-bottom: 1px solid; border-color: #81b5a1; background-color: rgb(245, 245, 245); padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; height: 20px; } .SOKMKBArticle .sh td { border-bottom: 1px solid; border-right: 1px solid; border-color: #81b5a1; background-color: #81b5a1; color: #ffffff; height: 20px; padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; } .SOKMKBArticle th { padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; border-bottom: 1px solid; border-right: 1px solid; border-color: #646464; background: #646464; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; color: white !important; height: 20px; } .SOKMKBArticle td { border-color: #646464; margin: 5px 5px 5px 5px; padding: 5px 5px 5px 5px; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; color: #283d40; } .SOKMKBArticle p { color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; } .SOKMKBArticle li { color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; line-height: 1.5; } .SOKMKBArticle pre { font-family: Courier New; } .SOKMKBArticle div { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; } .SOKMKBArticle hr { border-top-width: 1px; border-top-style: solid; border-top-color: #81b5a1; } .SOKMKBArticle a { color: #81b5a1; } .SOKMKBArticle a.two:link { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle a.two:visited { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle a.two:hover { color: #ffffff; background-color: #259b8a; } .SOKMKBArticle .button { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle .title { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #81b5a1; font-size: 30pt; } .SOKMKBArticle .hd1 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-size: 20pt; border-bottom: 1px solid; border-bottom-color: #81b5a1; text-decoration: none; } .SOKMKBArticle h1 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-size: 20pt; font-weight: normal; border-bottom: 1px solid; border-bottom-color: #81b5a1; text-decoration: none; } .SOKMKBArticle .hd2 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #68a1af; font-weight: bold; font-size: 16pt; text-decoration: none; } .SOKMKBArticle h2 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #68a1af; font-weight: bold; font-size: 16pt; font-weight: normal; text-decoration: none; } .SOKMKBArticle .hd3 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 14pt; text-decoration: none; } .SOKMKBArticle h3 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 14pt; text-decoration: none; } .SOKMKBArticle .hd4 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 12pt; text-decoration: none; } .SOKMKBArticle h4 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 12pt; text-decoration: none; } .SOKMKBArticle .hd5 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: bold; font-size: 10pt; text-decoration: bold; } .SOKMKBArticle h5 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: bold; font-size: 10pt; text-decoration: bold; } .SOKMKBArticle .hd6 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 10pt; text-decoration: underline; } .SOKMKBArticle h6 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 10pt; text-decoration: underline; } .SOKMKBArticle details { font-size: 10pt; } .SOKMKBArticle details[open] summary ~ * { animation: sweep .5s; margin-top: 0; padding-top: 10px; } @keyframes sweep { 0% {opacity: 0; margin-top: -10px} 100% {opacity: 1; margin-top: 0px} } .SOKMKBArticle summary { cursor: pointer; outline: none; margin-bottom: 3px; } .SOKMKBArticle .summary { background-color: #81b5a1; font-size: 10px; color: white; cursor: pointer; padding: 5px; width: 100%; border: none; text-align: left; outline: none; vertical-align: top; } --> Get Well Playbook Use of custom attributes in ITAM A step-by-step guide to analyze and remediate ITAM Custom fields Table of Contents Initial Recommendation Summary Goal of this Playbook Audience Problem Overview Executive Summary How this playbook can help you achieve business goals How this playbook is structured Problem Analysis Upstream Causes Downstream Consequences Impact on Your Business Engagement Questions Remediation Plays Summary Play 1: Review your data Play 2: Analyze your custom records Play 3: Fix Play Data Governance Initial Recommendation Review the Hardware Asset Management Application for possible purchase and adoption. The Asset module is included with a ServiceNow ITSM subscription. Starting with the Paris platform release, a robust Hardware Asset Management product was made available. The HAM product adds a significant number of out-of-box features covering the most common HAM use cases with simple workflow driven processes that streamline your business and increase data accuracy. If your organization has created a number of custom attributes to conform the Asset plugin to your business needs, you may find that the ROI achieved through utilization of the HAM product is worth your consideration. Summary Goal of this Playbook This playbook does not provide specific remediation steps, but general guidance in identifying custom attributes in your IT Asset Management implementation. Excessive custom attributes should be reviewed to ensure they are both relevant and appropriate. Details about this playbook Author Emir EminovicReviewer Daniel SlocumDate 11/02/2021Addresses HSD # HSD0010434Applicable ServiceNow Releases All ReleasesTime Required Approximately 1 to 8 hours Audience Asset Manager or Asset Management teamServiceNow Admin Problem Overview ServiceNow provides an enormous amount of flexibility to meet specific business outcomes. While customizations can often help achieve business value, using customizations inappropriately, either when an out-of-the-box solution exists, or at an incorrect implementation level, should be avoided. Custom attributes provide flexibility to address business needs. In older versions of the ServiceNow Asset Module, some attributes did not exist that are now available out-of-the-box. Whatever the reason to create these as custom attributes (indicated by the u_ prefix of the field name), if platform provided fields are available data should be migrated to make use of the native fields as soon as possible. Using out-of-the-box attributes provides benefit both from ease-of-upgrades, and from ensuring that data is in well-understood attributes used by multiple applications throughout the platform. Where business data resides in custom attributes, visibility and value may be lost in other applications on the ServiceNow platform that also leverage this information in out of the box reports and processes. Executive Summary How this playbook can help you achieve business goals Identification of custom attributes will enable you to review and identify those that can be migrated to out-of-the-box attributes. Documenting existing customizations reduces risk during upgrades and implementation of new modules in the platform How this playbook is structured This Playbook is structured to guide you through an analysis of the current state of Asset custom attributes. This playbook does not offer specific remediation steps as a result of the analysis, but rather we provide some general guidelines. None of the plays are required actions. Good judgement and careful thought should be used in choosing one or more of these plays to guide you towards optimal Asset Management experience and performance. Once analysis and validation are complete, you can determine which custom attributes are to be migrated and/or deleted. These decisions should be based on the out-of-the-box alternatives, business value, and effort required. Doing so will support a cleaner and more maintainable Asset implementation, while avoiding potential data issues that can severely impact Asset and CMDB trust and efficacy. Problem Analysis Upstream Causes At the time of customization there were no appropriate attributes provided for a legitimate and urgent business need, which led to the decision to add a custom fieldA legacy system had a particular attribute defined, and the migration implementation team decided to create a new field rather than advocate for use of out-of-the-box fields Downstream Consequences Data Consequence Unnecessary complexities in data modelCustom Data is not replicated in the CMDBCustom Mapping rules are in place and have to be maintained Operation Consequence CMDB and Asset are not in syncExtra overhead to maintain these additional fields in database, including the time required for new team members to learn custom attribute names App Consequence Overhead of maintaining custom solutions to populate data in non standard fieldsNewer applications and features provided by the platform will expect that data resides in provided fieldsData in custom attributes not used in newer platform provided reports, features, dashboards, notifications etc.. Impact on Your Business Increase Operational Visibility When using baseline fields, there is greater chance of process alignment to well understood practice guidelines which are built into the platformTrustworthy data directly contributes to the reliable operation of your ServiceNow investment Process Automation There are many provided digital workflows throughout the platform and its applications. These can be used immediately when data resides within the provided fields As these workflows evolve, less time will be spent updating customized versions that utilize custom attributes Better User Experience Fewer customizations within the table schema will result in much simpler implementations and workflow developmentWhen data resides within expected fields there is a more reliable and consistent experience for developers, admins and users Engagement Questions: Consider the answers to these questions: Do you have a list of all custom attributes in your Asset Implementation?Does every custom attribute have an identified business reason behind its existence?For each field, is there an owner who needs that attribute? Has that field been populated, maintained, governed and secured or has it been forgotten?Can you verify where the custom attribute is being used? Is it being populated simply because “we’ve always had to populate it”, or because there is actual value being realized?Was a custom field added with the intent to drive a particular user behavior, and is that goal obtainable through any means other than customization?Has the effort of maintaining the customizations outgrown the value of having them?Have custom attributes been reviewed to ensure there are no newer base fields that can be used?How do you decide when to add a new attribute to the Asset Tables? Is there an Architect or governance team helping to make informed decisions?How is this custom field mapped to the CMDB? Remediation Plays SummaryThe table below lists and summarizes each of the remediation plays in the playbook. Play Name Review your data What this play is about Query and Analyze existing schema of your instance to get an idea of the current state Required tasks Review list of custom attributes in your ITAM tables Analyze Play What this play is about Review and document list of custom attributes Required tasks Review and document list of custom attributes Fix Plays What this play is about Guideline on how to approach the cleanup process Required tasks Review guidelines on how to approach the clean-up process Data Governance What this play is about Includes guidelines and processes for managing customizations Required tasks Follow these guidelines and processes to prevent unauthorized customizations Play 1 - Review your data What this Play is about In this play you will review the number of custom attributes on your Asset tables and the specific tables they are on. You will also be provided guidance on what these values can mean and what to do if you have extraneous customizations. Required tasks Download and import the Custom Attributes in CMDB Fix scriptRun the Fix scriptUpon successful completion, review the output from the query Note the actual table names and column names will be different, but a sample of the output is below:In general, we want to reduce the number of custom fields after reviewing the results. In the next section we will analyze each field at a time. Play 2 - Analyze your custom fields What this Play is about Identify the reason behind why these attributes exist. Find out why were they created, who owns them and are they still used. Required tasks Identify the owner of the attribute and who is consuming the data. A team or individual should ultimately be responsible for adding the attribute in the Asset table in the first place. This team or individual often can also be the person consuming the information that is captured here.If an owner cannot be identified, or more importantly, if individuals or teams cannot be identified who are actively using the data, the attribute is a strong candidate for removal (not migration).Is the information used for a business-critical process? While the information captured in the custom attribute may have an identified owner, often the fields additions were to support a legacy business process. Identifying the business value a custom field delivers is an important factor in determining if the attribute should be retained. If the attribute population is done simply because “we've always done it this way” or because it is to maintain historical trend data that otherwise has no current value, then that field is a candidate for removal. Have equivalent base attributes become available in the platform? Many custom attributes were created for good reason: they captured data critical to a business process in a field that was not available in the product at the time of release / implementation. However, with the rapid evolution of the ServiceNow platform, new and improved table structures are introduced with every family release. Forms, reports, dashboards, workflows, notifications, and much more are all built to make use of these provided fields. Are there similar attributes in other tables that could be used via a relationship? Sometimes during an initial implementation, relationships between tables are not leveraged as fully as they could be. If the data for a custom field is already tracked in another table, the existing table and column should always be used rather than creating a new field. More than likely there is a reason the data is in that other table, and there might even be other fields in that table which can be made accessible to increase business value. Establish a relationship between the two records instead of copying and maintaining data in two places.Does the Configuration Item record have information Asset Managers need? There is a bi-directional data sync between the Asset record and its paired CI for the most common attributes. However, it is important to not overlook the inherint value of the ServiceNow platform being built on a relational database management system. An attribute that exists on a CI does not need to be replicated on the Asset record, but rather you can reference the CI attribute through dot walking to display the CI’s attributes to the asset manager in forms, lists, and reports. Play 3 - Fix Play What this Play is about Once you have identified candidate attributes for retirement or migration to a base attribute, you should review the usage of it before carrying out any remediation. This section does not give explicit step-by-step instructions on everything that can be impacted. However, generally, you will need to confirm the people, processes, and platform features/elements that use the custom attributes you have today, and then determine if that usage drives business value greater than the maintenance costs of maintaining each custom field. This effort can require time and careful consideration. When implementing changes, it may be best to align efforts to coincide with platform upgrades when users are already expecting small changes to their experience. You may save time in User Acceptance Testing by doing these in tandem. Remember to not make changes directly in production. Always follow your established development practices such as frequently cloning production down to dev and test instances. Use scripts to migrate existing data from custom fields to any base or equivalent fields. Make sure to check that field types and maximum lengths are the same or appropriate. Required tasks 1. Check for any usage of the custom attribute including: FormsReportsBusiness RulesRelationshipsUI ActionsClient ScriptsEmail ActionsTransform MapsAny other components 2. Once you have identified where any data is used (if at all), you can understand the impact of deleting the custom attributes. Reference ServiceNow docs for more information around deleting table fields Data Governance What this Play is about It is recommended that the Asset Management owner, in partnership with the CMDB Owner, should approve any additions to the baseline Asset attributes that are requested. Not all custom field additions should simply be approved. This play tells you how to set up a process that keeps others from creating custom CMDB attributes without proper review and approval. Required tasks Document an internal policy that prevents the creation of Asset attributes without approval from a qualified person or teamInstitute a code review process that watches for custom attributes in Update SetsCreate a report that shows any custom fields on asset tables created after the last attribute cleanup was performed. Review periodically with Stakeholders.Regularly review IT Asset Management release notes for announcement of new attributes Congratulations You have completed this Get Well Playbook.