[{"data":1,"prerenderedAt":494},["ShallowReactive",2],{"page-\u002Fblog\u002Fservicenow-cmdb-data-quality-rules":3},{"id":4,"title":5,"body":6,"description":468,"extension":469,"meta":470,"navigation":489,"path":490,"seo":491,"stem":492,"__hash__":493},"content\u002Fblog\u002Fservicenow-cmdb-data-quality-rules.md","ServiceNow CMDB Data Quality: 7 Rules Every Admin Should Follow",{"type":7,"value":8,"toc":457},"minimark",[9,13,16,19,24,27,30,36,62,127,131,134,138,153,157,160,163,167,182,186,189,230,233,237,256,260,263,267,290,338,342,345,349,367,371,374,379,397,401,407,440,443,447,450,453],[10,11,12],"p",{},"The Configuration Management Database (CMDB) is the backbone of ITSM in ServiceNow. Every incident, every change request, every problem investigation depends on it. And yet, most organizations treat it like a data dumping ground — full of duplicate records, stale relationships, and CIs that haven't been updated since 2019.",[10,14,15],{},"A bad CMDB isn't just annoying. It actively hurts your ITSM outcomes. Impact analysis becomes a guessing game. Change advisory boards lose confidence. Performance Analytics dashboards show garbage.",[10,17,18],{},"Here's how to fix that. These 7 rules will keep your CMDB healthy, accurate, and genuinely useful.",[20,21,23],"h2",{"id":22},"rule-1-one-ci-one-record-no-exceptions","Rule 1: One CI, One Record — No Exceptions",[10,25,26],{},"The single most common CMDB problem is duplicate configuration items. Same server, three records. Same application, five entries with slightly different names.",[10,28,29],{},"Duplicates break impact analysis. When an incident fires on \"web-prod-03,\" the system may only resolve one of the records, missing half the affected services.",[10,31,32],{},[33,34,35],"strong",{},"How to fix it:",[37,38,39,47,55],"ul",{},[40,41,42,43,46],"li",{},"Enable ",[33,44,45],{},"CI Unique ID"," enforcement in the CMDB properties. This prevents duplicate inserts based on a defined key (hostname, IP, serial number).",[40,48,49,50,54],{},"Run regular deduplication reports using the ",[51,52,53],"code",{},"CmdbCiDuplicate"," table or a scheduled report.",[40,56,57,58,61],{},"Establish a ",[33,59,60],{},"Discovery-first"," policy: any new CI should come from Discovery or ServiceNow IntegrationHub before manual creation is allowed.",[63,64,69],"pre",{"className":65,"code":66,"language":67,"meta":68,"style":68},"language-javascript shiki shiki-themes github-dark","\u002F\u002F Example: Find duplicate CIs by host name in GlideRecord\nvar gr = new GlideRecord('cmdb_ci');\ngr.addAggregate('COUNT', 'name');\ngr.addQuery('name', '!=', '');\ngr.addHaving('COUNT', 'name', '>', '1');\ngr.query();\nwhile (gr.next()) {\n    gs.info('Duplicate CI: ' + gr.name);\n}\n","javascript","",[51,70,71,79,85,91,97,103,109,115,121],{"__ignoreMap":68},[72,73,76],"span",{"class":74,"line":75},"line",1,[72,77,78],{},"\u002F\u002F Example: Find duplicate CIs by host name in GlideRecord\n",[72,80,82],{"class":74,"line":81},2,[72,83,84],{},"var gr = new GlideRecord('cmdb_ci');\n",[72,86,88],{"class":74,"line":87},3,[72,89,90],{},"gr.addAggregate('COUNT', 'name');\n",[72,92,94],{"class":74,"line":93},4,[72,95,96],{},"gr.addQuery('name', '!=', '');\n",[72,98,100],{"class":74,"line":99},5,[72,101,102],{},"gr.addHaving('COUNT', 'name', '>', '1');\n",[72,104,106],{"class":74,"line":105},6,[72,107,108],{},"gr.query();\n",[72,110,112],{"class":74,"line":111},7,[72,113,114],{},"while (gr.next()) {\n",[72,116,118],{"class":74,"line":117},8,[72,119,120],{},"    gs.info('Duplicate CI: ' + gr.name);\n",[72,122,124],{"class":74,"line":123},9,[72,125,126],{},"}\n",[20,128,130],{"id":129},"rule-2-classify-cis-correctly-use-the-right-cmdb-class","Rule 2: Classify CIs Correctly — Use the Right CMDB Class",[10,132,133],{},"CMDB class hierarchy exists for a reason. A CI's class determines what fields are available, how relationships are visualized, and what data appears in Discovery results. Misclassifying a CI — calling a virtual machine a \"hardware server,\" for example — breaks relationship mapping.",[10,135,136],{},[33,137,35],{},[37,139,140,143,150],{},[40,141,142],{},"Document your organization's CMDB class model and make it accessible to anyone creating CIs.",[40,144,145,146,149],{},"Use ",[33,147,148],{},"Reference Qualifiers"," on forms to limit which classes are available for selection based on the user's role or business unit.",[40,151,152],{},"During Discovery runs, verify that detected CIs are being classified correctly. Tune classifiers if they're misrouting.",[20,154,156],{"id":155},"rule-3-keep-relationships-accurate-and-meaningful","Rule 3: Keep Relationships Accurate and Meaningful",[10,158,159],{},"CIs without relationships are isolated islands. They don't support impact analysis, they don't populate the ServiceNow Dependency View, and they make Change Management's job nearly impossible.",[10,161,162],{},"Every significant CI should have at least one of: hosted on, runs on, depends on, used by, or network relationship.",[10,164,165],{},[33,166,35],{},[37,168,169,176,179],{},[40,170,171,172,175],{},"Make relationship creation part of your ",[33,173,174],{},"Discovery schedule"," — ensure MID server runs populate not just CIs but their logical connections.",[40,177,178],{},"After any major change (new server, new application deployment), require relationship updates in the change ticket.",[40,180,181],{},"Audit existing relationships quarterly. Use the relationship analysis report to find CIs with zero relationships — these are your top cleanup candidates.",[20,183,185],{"id":184},"rule-4-populate-the-critical-fields-especially-for-business-services","Rule 4: Populate the Critical Fields — Especially for Business Services",[10,187,188],{},"Not all fields are equal. The most critical fields for ITSM workflows are:",[37,190,191,197,203,209,215,224],{},[40,192,193,196],{},[33,194,195],{},"Name"," (unique identifier)",[40,198,199,202],{},[33,200,201],{},"Class"," (correct CMDB class)",[40,204,205,208],{},[33,206,207],{},"Assignment group"," (who owns it)",[40,210,211,214],{},[33,212,213],{},"Environment"," (Production, Test, Dev)",[40,216,217,220,221],{},[33,218,219],{},"Support group"," and ",[33,222,223],{},"Lifecycle stage",[40,225,226,229],{},[33,227,228],{},"Business criticality"," for Business Services",[10,231,232],{},"A CI with a name but no assignment group is nearly useless during an incident.",[10,234,235],{},[33,236,35],{},[37,238,239,246,253],{},[40,240,241,242,245],{},"Set fields as ",[33,243,244],{},"mandatory"," in the CMDB table definitions for high-priority classes (cmdb_ci_server, cmdb_ci_service_discipline).",[40,247,248,249,252],{},"Create a ",[33,250,251],{},"CMDB Data Quality Dashboard"," using Performance Analytics or reporting to track fill rates per field.",[40,254,255],{},"Prioritize business service CIs — these drive incident prioritization and are most visible to leadership.",[20,257,259],{"id":258},"rule-5-decommission-stale-cis-promptly","Rule 5: Decommission Stale CIs Promptly",[10,261,262],{},"Stale CIs are a silent killer. A server that was decommissioned two years ago but still appears in your CMDB creates false positives in impact analysis. Change Management approves a change thinking it's low-risk, and the \"decommissioned\" server is actually still running a critical dependency.",[10,264,265],{},[33,266,35],{},[37,268,269,276,283],{},[40,270,271,272,275],{},"Set a ",[33,273,274],{},"Retire date"," on any CI that is taken out of service. Don't delete it — ServiceNow's CMDB keeps historical state for auditing.",[40,277,278,279,282],{},"Schedule a ",[33,280,281],{},"quarterly stale CI review",": find CIs with no Discovery updates in 90+ days and no recent incidents or changes associated with them.",[40,284,285,286,289],{},"Use the ",[33,287,288],{},"CMDB Health Dashboard"," to surface CIs with stale data or missing retirement dates.",[63,291,293],{"className":65,"code":292,"language":67,"meta":68,"style":68},"\u002F\u002F Find CIs not updated in 90 days (excluding retired)\nvar gr = new GlideRecord('cmdb_ci');\ngr.addQuery('u_retire_date', '');\ngr.addNotNullQuery('sys_updated_on');\nvar ninetyDaysAgo = new GlideDateTime();\nninetyDaysAgo.setDaysAgo(90);\ngr.addCondition('sys_updated_on', '\u003C', ninetyDaysAgo);\ngr.query();\ngs.info('Stale CIs found: ' + gr.getRowCount());\n",[51,294,295,300,304,309,314,319,324,329,333],{"__ignoreMap":68},[72,296,297],{"class":74,"line":75},[72,298,299],{},"\u002F\u002F Find CIs not updated in 90 days (excluding retired)\n",[72,301,302],{"class":74,"line":81},[72,303,84],{},[72,305,306],{"class":74,"line":87},[72,307,308],{},"gr.addQuery('u_retire_date', '');\n",[72,310,311],{"class":74,"line":93},[72,312,313],{},"gr.addNotNullQuery('sys_updated_on');\n",[72,315,316],{"class":74,"line":99},[72,317,318],{},"var ninetyDaysAgo = new GlideDateTime();\n",[72,320,321],{"class":74,"line":105},[72,322,323],{},"ninetyDaysAgo.setDaysAgo(90);\n",[72,325,326],{"class":74,"line":111},[72,327,328],{},"gr.addCondition('sys_updated_on', '\u003C', ninetyDaysAgo);\n",[72,330,331],{"class":74,"line":117},[72,332,108],{},[72,334,335],{"class":74,"line":123},[72,336,337],{},"gs.info('Stale CIs found: ' + gr.getRowCount());\n",[20,339,341],{"id":340},"rule-6-sync-cmdb-with-your-change-and-incident-processes","Rule 6: Sync CMDB with Your Change and Incident Processes",[10,343,344],{},"The CMDB is not a standalone database. It needs to be in sync with your change management and incident processes to stay accurate. Every change that affects infrastructure should update the CMDB as a direct output.",[10,346,347],{},[33,348,35],{},[37,350,351,358,361],{},[40,352,353,354,357],{},"Add a ",[33,355,356],{},"CMDB update task"," as a mandatory step in your Change workflow. The CAB approval should include a requirement that the requester update or confirm CI and relationship data.",[40,359,360],{},"During incident resolution, if the fix involved modifying or restarting a CI, require that the CI's operational status be updated.",[40,362,145,363,366],{},[33,364,365],{},"Flow Designer"," to auto-update CI status based on incident state changes. When an incident is resolved and the affected CI was restarted, the CI's operational status should reflect that.",[20,368,370],{"id":369},"rule-7-trust-but-verify-use-discovery-as-your-source-of-truth","Rule 7: Trust but Verify — Use Discovery as Your Source of Truth",[10,372,373],{},"Discovery exists so you don't have to maintain the CMDB manually. MID servers scanning your infrastructure should be the primary source of truth for server, network, and cloud CIs. Manual entries should be the exception, not the rule.",[10,375,376],{},[33,377,378],{},"How to enforce this:",[37,380,381,388,391],{},[40,382,383,384,387],{},"Run Discovery on a ",[33,385,386],{},"regular schedule"," — weekly for dynamic environments, bi-weekly for stable ones.",[40,389,390],{},"Compare Discovery results against manual entries. Flag discrepancies for review rather than automatically overwriting.",[40,392,145,393,396],{},[33,394,395],{},"ServiceNow VictorOps"," or integration with your cloud providers (AWS, Azure, GCP) for real-time CI synchronization.",[20,398,400],{"id":399},"measuring-cmdb-health","Measuring CMDB Health",[10,402,403,404,406],{},"ServiceNow provides a built-in ",[33,405,288],{}," (CMDB > Health Dashboard) that scores your CMDB across five dimensions:",[408,409,410,416,422,428,434],"ol",{},[40,411,412,415],{},[33,413,414],{},"Completeness"," — Are required fields populated?",[40,417,418,421],{},[33,419,420],{},"Uniqueness"," — Are there duplicate CIs?",[40,423,424,427],{},[33,425,426],{},"Relationship Quality"," — Do CIs have meaningful relationships?",[40,429,430,433],{},[33,431,432],{},"Timeliness"," — How recently were CIs updated?",[40,435,436,439],{},[33,437,438],{},"Consistency"," — Does data follow defined formats and standards?",[10,441,442],{},"Use this dashboard to set quarterly improvement goals. A jump from 65% to 80% health score will measurably improve your ITSM outcomes.",[20,444,446],{"id":445},"final-thoughts","Final Thoughts",[10,448,449],{},"The CMDB is only as good as the discipline you apply to it. These seven rules aren't complex, but they require consistent process discipline — especially around Discovery schedules, change-to-CMDB updates, and regular audits.",[10,451,452],{},"Pick one rule, implement it this week, and measure the impact. Your incident response team will notice the difference before the quarter ends.",[454,455,456],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":68,"searchDepth":81,"depth":81,"links":458},[459,460,461,462,463,464,465,466,467],{"id":22,"depth":81,"text":23},{"id":129,"depth":81,"text":130},{"id":155,"depth":81,"text":156},{"id":184,"depth":81,"text":185},{"id":258,"depth":81,"text":259},{"id":340,"depth":81,"text":341},{"id":369,"depth":81,"text":370},{"id":399,"depth":81,"text":400},{"id":445,"depth":81,"text":446},"Learn the 7 data quality rules that separate a healthy CMDB from a bloated, unreliable one. Practical steps for ServiceNow ITSM and ITOM admins.","md",{"dqid":471,"headline":472,"date":471,"dateUpdated":471,"author":473,"authorUrl":474,"socialImage":475,"faq":476},"2026-07-13","7 Data Quality Rules That Will Transform Your ServiceNow CMDB","SN-Tricks","https:\u002F\u002Fsn-tricks.com\u002Fabout","\u002Fimages\u002Fblog\u002Fcmdb-data-quality.jpg",[477,480,483,486],{"question":478,"answer":479},"What is a healthy CMDB in ServiceNow?","A healthy CMDB contains accurate, complete, and timely configuration items (CIs) with properly defined relationships. It supports incident, problem, and change management by providing reliable dependency data.",{"question":481,"answer":482},"How does bad CMDB data affect ITSM?","Bad CMDB data leads to incorrect impact analysis during incidents, failed change assessments, unreliable problem root cause identification, and compliance violations during audits.",{"question":484,"answer":485},"What is the CMDB Health Score in ServiceNow?","The CMDB Health Score is a metric available in ServiceNow Performance Analytics that measures data quality across dimensions like completeness, accuracy, timeliness, and consistency of CI records and relationships.",{"question":487,"answer":488},"How often should CI data be reconciled in ServiceNow?","Discovery runs should be scheduled based on your environment's change frequency — weekly for dynamic infrastructure like VMs and cloud resources, monthly for stable hardware. Manual CI updates should follow change management processes immediately.",true,"\u002Fblog\u002Fservicenow-cmdb-data-quality-rules",{"title":5,"description":468},"blog\u002Fservicenow-cmdb-data-quality-rules","gG6pk8Vv20jgx4o-mqnO-WhpBPodubOwDxU4I4DhrRA",1783897767978]