How to create New IRE Rules Focused on Serial Number MatchingIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } CI Identification Logic and IRE Behavior Summary ** Primary Matching is done via sys_object_sourceWhen available, CIs can be uniquely identified using the source_name and source_native_key values found in the sys_object_source_info section of the payload.These values link to the Source [sys_object_source] table. 1. If a match is found here, identification rules are skipped 2. If no match is found, the system applies the standard CMDB Identification Rules configured for the CI class to find a match. Reference Docs: https://www.servicenow.com/docs/bundle/xanadu-servicenow-platform/page/product/configuration-management/concept/ire.html Customer Scenario: In this scenario, customer expectation was to create multiple CIs since the serial numbers differ between incoming payloads Expected Behavior Each payload, with its unique serial number should result in a new CI Actual Behavior No existing CI matched the incoming product instance ID and serial number. However, Identification Rule #4 (matching on name) caused all payloads to match the same CI, since name was same in every payload. Result: The system added new source_native_key values to the sys_object_source table, but only one CI was updated repeatedly. As an example, please refer to the following payload var payload = { "items": [ { "className": "cmdb_ci_handheld_computing", "values": { "name": "SN1.acme.com", "serial_number": "SN01" }, "sys_object_source_info": { "source_native_key": "SN01", "source_recency_timestamp": "2023-01-01 00:00:00" } } ], "relations": []}; var input = new JSON().encode(payload);var output = sn_cmdb.IdentificationEngine.createOrUpdateCIEnhanced('ServiceNow', input);var prettyjson = JSON.parse(output);gs.print(JSON.stringify(prettyjson, null, 2)); CI Class: cmdb_ci_handheld_computing (inherits rules from cmdb_ci_hardware)Payload contains:serial_number = SN01name = SN01.acme.comsource_native_key = SN01 This payload is sent multiple times, but with different serial numbers (e.g., SN01, SN02, SN03) Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } N/A Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } However based on the IRE rules, there is no existing CIs matching the product instance identifier and serial number, since there was match on the name against Identification Rule #4; the system Creates a new entry in the sys_object_source table with the new source_native_key (serial number).Continues updating the existing CI record instead of creating a new CI, since the identification rule matched on device name. Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } To ensure matching is done only based on serial numbers, you need to replace the existing IRE rules with new identification rules that focus exclusively on serial number matching. Note that the Identifier Rules are inherited from Hardware, however if you create a new Identifier Rule for the class it will no longer inherit the other rules so they need to be recreated (if needed) This will prevent matches based on device name or other attributes, ensuring that each unique serial number corresponds to a distinct CI. As demonstrated below, new Identification Rules (IREs) were created, similar to the OOTB rules. However, the key change was skipping Identification Rule #4 (Hardware → Name), which previously matched CIs based on the device name. By omitting this rule, the matching now relies solely on other attributes—such as serial numbers