<h2>How the Lenovo Hardware Warranty Integration Works in HAM</h2><br/><div style="overflow-x:auto"><article><div ><h3 >Summary</h3><section><style type="text/css"><!-- /*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: ; } } </style> <div class="ns-kb-css-body-editor-container"> <div><span style="font-size: 10pt;"><strong>ServiceNow HAM automatically retrieves hardware warranty data from Lenovo's external API and stores it against each eligible hardware asset record. The integration runs on a weekly schedule without any manual trigger.</strong></span></div> <div> </div> <div><span style="font-size: 12pt;"><strong>1) Prerequisites</strong></span></div> <div> </div> <div><strong>All three of the following must be in place before warranty data can populate.</strong></div> <div> </div> <div>Hardware Asset Management plugin (sn_hamp) must be active.</div> <div> </div> <div>Lenovo Asset Warranty Spoke (sn_lenovo_spoke) must be installed.</div> <div> </div> <div>A valid Lenovo API credential must be configured under the sn_lenovo_spoke.Lenovo connection alias using the Client ID and Client Secret issued by Lenovo.</div> <div> </div> <div><span style="font-size: 12pt;"><strong>2) How It Runs</strong></span></div> <div> </div> <div>The scheduled job is named "<strong>Download Asset Warranty Information - Lenovo</strong>" and runs on a weekly frequency. It triggers the Lenovo Asset Warranty Flow (sn_itam_common.lenovo_asset_warranty_flow), which calls the Lenovo Warranty API and writes the results back to ServiceNow. The job logs each run to the <strong>asset_job_log</strong> table. Detail-level entries per asset are written to asset_job_log_detail.</div> <div> </div> <div><span style="font-size: 12pt;"><strong>3) Which Assets Are Included</strong></span></div> <div> </div> <div>The flow queries the alm_hardware table and applies four filters. An asset must pass all four to be included in the API call. Assets that fail any one filter are silently skipped with no error logged.</div> <div> </div> <div><strong>Filter 1:</strong> The asset's model manufacturer name must contain "lenovo".</div> <div> </div> <div><strong>Filter 2:</strong> The install status must not be 7 (Retired) or 8 (Missing).</div> <div> </div> <div><strong>Filter 3:</strong> The serial number field must not be empty.</div> <div> </div> <div><strong>Filter 4:</strong> The excluded_from_ham field must be false or empty.</div> <div> </div> <div><span style="font-size: 12pt;"><strong>4) How Serial Numbers Are Sent to the API</strong></span></div> <div> </div> <div>Eligible serial numbers are batched into URL query strings. Each batch is capped at 2,048 characters to stay within the Lenovo API's URL length limit. If the total number of eligible serials exceeds what fits in one request, the flow automatically splits them across multiple API calls.</div> <div> </div> <div><strong><span style="font-size: 12pt;">5) What the API Returns and What Gets Written</span></strong></div> <div> </div> <div>The Lenovo API returns warranty entitlements keyed by serial number. For each serial in the response, the flow looks up the matching asset record in ServiceNow. If a match is found, warranty records are written to the sn_itam_common_asset_warranty table, one record per warranty entitlement returned for that serial.</div> <div> </div> <div>The fields written are: External Warranty ID (the ID from Lenovo, used as part of the upsert key), Asset (reference to the alm_asset record), Name, Description, Type (for example BASE or CONTRACT), Start Date, End Date, Active (boolean from Lenovo), Status, and Country.</div> <div> </div> <div>All fields on <strong>sn_itam_common_asset_warranty</strong> are strictly read-only. They cannot be manually edited in the UI and are written exclusively by the integration job.</div> <div> </div> <div>The upsert key is the combination of asset and external_warranty_id. If a record with that combination already exists it is updated. If not, a new record is created.</div> <div> </div> <div>If the Lenovo API returns no data for a serial number, for example because the warranty has expired or the serial is unknown to Lenovo, no record is written and no error is logged. This is expected behaviour and means Lenovo has no warranty data to provide for that serial.</div> <div><br /><span style="font-size: 12pt;"><strong>6) Why Warranty Data May Be Missing for a Specific Asset</strong></span></div> <div> </div> <div>There are four reasons a Lenovo asset may have no warranty records in ServiceNow.</div> <div> </div> <div><strong>First</strong>, the asset does not meet the eligibility filters. Verify the asset's manufacturer, install status, serial number, and excluded_from_ham field against the four filters described above.</div> <div> </div> <div><strong>Second</strong>, the serial number was added or corrected after the last job run. The job runs weekly. If a serial number is blank or incorrect when the job fires, no API call is made for that asset. Warranty data will not appear until the next weekly run after the serial is populated. There is no on-demand trigger.</div> <div> </div> <div><strong>Third</strong>, Lenovo's API returned no data for that serial. If the warranty is expired or the serial is not recognised by Lenovo, the API returns an empty response and ServiceNow writes nothing. To confirm this, check whether the warranty is visible in the Lenovo customer portal directly. If it is not visible there either, the serial may be incorrect or the asset may not be registered with Lenovo.</div> <div> </div> <div><strong>Fourth</strong>, the job has not yet run since the asset became eligible. Check the most recent job run date in asset_job_log. If the last run pre-dates when the asset became eligible, the data will appear after the next weekly run.</div> <div> </div> <div><span style="font-size: 12pt;"><strong>7) How to Check the Job Run History</strong></span></div> <div> </div> <div>Navigate to asset_job_log.LIST . Filter by job name "Download Asset Warranty Information - Lenovo". Each log entry shows the run date, status (Completed or Failed), and duration.</div> <div> </div> <div><span style="font-size: 12pt;"><strong>8) Where Warranty Records Are Visible</strong></span></div> <div> </div> <div>On a hardware asset record, warranty data is shown in the Asset Warranties related list (table: sn_itam_common_asset_warranty). Multiple warranty entitlement records may exist for a single asset, one per entitlement returned by Lenovo, such as a base warranty, battery warranty, or contract extension.</div> <span id="ns-kb-css-end-div-identifier" style="display: none; pointer-events: none;"></span></div></section></div></article></div>