Back to Standard CMDB

Standard CMDB Automation Examples

Enterprise-grade automation patterns for maintaining CMDB accuracy and supporting ITSM processes. Each automation includes AQL queries, implementation guidance, and real-world scenarios designed for mid-size IT organizations.

📖 40 min read 🖥️ Standard CMDB v2.0 💼 Paid Tier

Overview

CMDB automation addresses the fundamental challenge of data currency: without automation, CMDB data degrades rapidly as infrastructure changes outpace manual updates. These automation patterns ensure proactive data quality management, lifecycle tracking, and integration with ITSM processes.

Prerequisites: JSM Assets Premium or Enterprise license, global automation rule permissions, familiarity with AQL syntax.

Stale CI Detection

Stale CIs (Configuration Items not updated within expected timeframes) undermine CMDB reliability. These automations identify and flag stale records for investigation.

SC-01 Stale Server Detection

Scheduled Daily at 06:00

Identify servers that haven't been seen by discovery tools within 30 days.

objectType = "Server" AND Status = "Operational" AND Updated < now(-30d)

Actions:

  1. Lookup stale servers matching the query
  2. Group by Location for consolidated notification
  3. Send notification to Infrastructure team
  4. Create investigation task assigned to Infrastructure Lead

Escalation Path: 30 days (alert) → 45 days (escalate) → 60 days (governance) → 90 days (auto-status change)

SC-02 Stale Application Detection

Scheduled Weekly (Monday 08:00)

Identify applications without recent updates that may be deprecated or abandoned.

objectType = "Application" AND Status = "Operational" AND Updated < now(-90d)

Actions: Group by service, notify Application Owner or Service Owner, request verification.

SC-03 Stale Database Detection

Scheduled Weekly (Tuesday 08:00)

Identify databases without recent updates that may have been migrated or decommissioned.

objectType = "Database" AND Status = "Operational" AND Updated < now(-60d)

License Expiry Automation

License expiry automation ensures timely renewal and prevents compliance gaps or service disruption.

LE-01 License Expiry Alert (90 Days)

Scheduled Weekly (Monday 09:00)

Provide early warning for licenses expiring within 90 days to allow procurement planning.

objectType = "Software License" AND Status = "Active" AND "Expiry Date" < now(90d) AND "Expiry Date" > now()

Actions:

  1. Lookup expiring licenses
  2. Group by Vendor
  3. Send consolidated renewal planning notice to IT Asset Manager
  4. Create renewal planning task for each license

LE-02 License Expiry Alert (30 Days)

Scheduled Daily (09:00)

Escalate licenses expiring within 30 days that haven't been addressed.

objectType = "Software License" AND Status = "Active" AND "Expiry Date" < now(30d) AND "Expiry Date" > now()

Actions: Check if renewal task exists, escalate to IT Asset Manager and IT Operations Director if no action.

LE-03 License Expiry Status Update

Scheduled Daily (00:01)

Automatically update license status when expiry date passes.

objectType = "Software License" AND Status = "Active" AND "Expiry Date" < now()

Actions: Update Status to "Expired", notify IT Asset Manager and Application Owner.

Vendor Contract Renewal

VC-01 Contract Renewal Reminder (90 Days)

Scheduled Weekly (Monday 09:00)

Alert procurement of vendor contracts approaching renewal date.

objectType = "Vendor" AND Status = "Active" AND "Contract End Date" < now(90d) AND "Contract End Date" > now()

Orphan CI Detection

Orphan CIs lack required ownership or team assignment, creating accountability gaps.

OC-01 Servers Without Ownership

Scheduled Weekly (Wednesday 08:00)

Identify production servers without assigned owner or support team.

objectType = "Server" AND Status = "Operational" AND Environment = "Production" AND (Owner is EMPTY OR "Support Team" is EMPTY)

OC-02 Applications Without Service Linkage

Scheduled Weekly (Thursday 08:00)

Identify production applications not linked to any Business Service.

objectType = "Application" AND Status = "Operational" AND Environment = "Production" AND "Part Of Service" is EMPTY

OC-03 Teams Without Members

Scheduled Monthly (First Monday, 09:00)

Identify teams that have no Person records assigned.

objectType = "Team" AND NOT inboundReferences(objectType = "Person" AND "Member Of")

Lifecycle Management

LM-01 Server Decommission Workflow

Event Object updated

When a server status changes to "Decommissioned", trigger cleanup of related records.

Trigger: Server.Status changed to "Decommissioned"

Actions:

  1. Query applications hosted on this server
  2. Notify Application Owners
  3. Query databases hosted on this server
  4. Notify DBA team
  5. Send decommission confirmation

LM-02 Business Service Retirement Workflow

Event Object updated

When a Business Service is retired, notify stakeholders and identify dependencies.

Trigger: Business Service.Status changed to "Retired"

objectType = "Application" AND "Part Of Service" = "{{object.Key}}"

LM-03 Application Deprecation Reminder

Scheduled Weekly (Friday 09:00)

Send periodic reminders for deprecated applications approaching migration deadlines.

objectType = "Application" AND Status = "Deprecated"

Data Quality Automation

DQ-01 Daily Data Quality Score

Scheduled Daily (07:00)

Calculate and report overall CMDB data quality score.

Quality Check Queries:

objectType = "Server" AND Status = "Operational" AND "IP Address" is EMPTY
objectType = "Application" AND Status = "Operational" AND "Hosted On" is EMPTY
objectType = "Business Service" AND Status = "Operational" AND "Service Owner" is EMPTY

Calculation: Quality Score = ((Total CIs - Issues) / Total CIs) * 100

DQ-02 Duplicate Detection

Scheduled Weekly (Sunday 06:00)

Identify potential duplicate CIs for consolidation.

Duplicate Criteria:

  • Servers: Same Hostname or IP Address
  • Applications: Same Application Name + Environment
  • Databases: Same Database Name + Environment
  • Persons: Same Email

DQ-03 Reference Validation

Scheduled Weekly (Saturday 06:00)

Identify broken references (CIs referencing deleted or archived objects).

objectType = "Application" AND "Hosted On".Status != "Operational" AND Status = "Operational"
objectType = "Software License" AND Status = "Active" AND "For Application".Status = "Deprecated"

Change Impact Support

CI-01 High-Impact Change Notification

Event Issue created

When a change is submitted for a critical CI, automatically notify stakeholders.

Trigger: Change Request linked to CI with Criticality = "Critical"

Actions:

  1. If CI is critical Business Service: Notify Service Owner and Support Team
  2. If CI is Production server: Query dependent applications and services
  3. Notify all Service Owners of potentially impacted services

CI-02 Dependency Chain Notification

Event Object updated

When infrastructure changes, notify owners of dependent applications and services.

Trigger: Server.Status changed from "Operational" to "Maintenance" or "Non-Operational"

objectType = "Application" AND "Hosted On" = "{{object.Key}}"

AQL Quick Reference

Operator Example Description
= Status = "Active" Equals
!= Status != "Inactive" Not equals
IN Environment IN ("Production", "Staging") In list
is EMPTY Owner is EMPTY Attribute has no value
is NOT EMPTY Owner is NOT EMPTY Attribute has value
< "Expiry Date" < now(30d) Less than (dates)
> Created > now(-7d) Greater than (dates)
LIKE Hostname LIKE "PROD-%" Pattern match

Date Functions

  • now() - Current date/time
  • now(30d) - 30 days from now
  • now(-7d) - 7 days ago
  • now(-1m) - 1 month ago

Recommended Frequencies

CI Type Detection Frequency Stale Threshold
Servers Daily 30 days
Network Devices Daily 30 days
Cloud Resources Daily 7 days
Applications Weekly 90 days
Databases Weekly 60 days
Static CIs (Location, Vendor) Monthly 180 days