What field do you use for historical software install dates?

pavan Punna
Tera Contributor

Hi everyone,
Our SAM team needs to find the historical installation dates of software to validate against older vendor invoices (e.g., verifying if a user installed an app in 2024 vs 2026). The  install_date  field is mostly empty since discovery tools (like Tanium) don’t pull historical registry dates out of the box.
I initially suggested using the  sys_created_on  (Created) date on the  cmdb_sam_sw_install  table. However, we found this is unreliable because if an endpoint drops off the network or misses a scan, ServiceNow deletes the install record. When the machine is scanned again later, it creates a brand new record, resetting the Created date to “today.”
Since we can’t rely on  install_date  or  sys_created_on , what fields or data points are you using to accurately compare installed software against historical invoice dates? Are there any out-of-the-box ServiceNow fields we might be overlooking for this use case?

1 REPLY 1

pr8172510
Tera Guru

Hey @pavan Punna,

 You're right that neither install_date (often empty) nor sys_created_on (resets on rediscovery) works for historical validation against old invoices.

 

the cmdb_sam_sw_install table is designed as an operational snapshot table, not a permanent historical audit log . fields like install_date, install_location, and uninstall_string "may require additional configuration of a discovery application" ServiceNow itself doesn't populate them. Your discovery tool has to send that data .

sys_created_on gets recreated when records are re-inserted  which is exactly what you're seeing .

the cmdb_sam_sw_install table is meant for:

  • Reconciliation calculations (matching installs to entitlements) 

  • License consumption tracking (not historical auditing) 

  • Active install management - only one record per install is kept active, duplicates get marked inactive 

ServiceNow acknowledges there's no built-in field that reliably preserves historical installation dates. The official guidance is organizations should rely on :

  • Discovery source historical data (SCCM DB, Tanium archives, etc.)

  • External inventory systems

  • Snapshot/archive strategies (build your own)

  • Custom historical tracking (add fields, enable auditing)

  1. For current compliance: Use the cmdb_sam_sw_install table as designed - for active licenses 

  2. For historical audit: Implement a monthly snapshot schedule using a custom table 

  3. For last used date: Look at samp_sw_usage table - OOTB discovery doesn't populate last_used on the install table 

  4. For better data: Configure your discovery tool (Tanium, SCCM) to map registry install dates to a custom field 

There's no OOTB field that does what you need reliably.