Business Application Insights

SkillDev tools

Generate insights for business applications including health, dependencies, technology stack, and modernization recommendations

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Business Application Insights skill

What this skill tells your AI

The instructions your AI receives, as published by happy-technologies-llc/happy-platform-skills in skills/ea/business-app-insights/SKILL.md and read by ahel’s review.

Overview

This skill covers generating comprehensive insights for business applications registered in ServiceNow's CMDB and Enterprise Architecture module:

  • Assessing application health through incident, change, and outage data
  • Mapping upstream and downstream dependencies via CMDB relationships
  • Analyzing technology stack alignment with enterprise standards
  • Identifying modernization candidates based on lifecycle stage, risk, and cost
  • Generating application portfolio summaries for executive dashboards
  • Correlating applications with architecture decision records

When to use: During application portfolio rationalization, technology refresh planning, M&A due diligence, risk assessments, or when architects need a holistic view of an application's standing.

Prerequisites

  • Roles: ea_admin, ea_viewer, itil, cmdb_read, or admin
  • Access: cmdb_ci_business_app, cmdb_rel_ci, sn_ea_tech_standard, sn_ea_architecture_decision_record tables
  • Knowledge: CMDB data model, application lifecycle management, enterprise architecture concepts
  • Plugins: Enterprise Architecture (com.sn_ea), CMDB (com.snc.cmdb) must be activated
  • Related Skills: Complete ea/adr-summarization for decision history context

Procedure

Step 1: Understand the Business Application Data Model

cmdb_ci_business_app (Business Application)
├── cmdb_rel_ci (Relationships) ── upstream/downstream CIs
├── sn_ea_tech_standard (Technology Standards)
├── sn_ea_architecture_decision_record (ADRs)
├── sn_ea_diagram (Architecture Diagrams)
├── incident (Related Incidents)
├── change_request (Related Changes)
└── sys_user / sys_user_group (Owners / Support Groups)

Key Tables:

TablePurpose
cmdb_ci_business_appBusiness application records with lifecycle, criticality, ownership
cmdb_rel_ciCI-to-CI relationships for dependency mapping
sn_ea_tech_standardTechnology standards and lifecycle status
sn_ea_diagramArchitecture diagrams linked to applications
sn_ea_architecture_decision_recordArchitectural decisions affecting the application

Step 2: Retrieve Business Application Details

MCP Approach:

Tool: SN-Query-Table
Parameters:
  table_name: cmdb_ci_business_app
  query: name=[app_name]
  fields: sys_id,name,short_description,owner,business_criticality,lifecycle_stage,operational_status,used_for,version,vendor,cost_center,support_group,managed_by
  limit: 10

REST Alternative:

curl -u "$SN_USER:$SN_PASS" \
  "$SN_INSTANCE/api/now/table/cmdb_ci_business_app?sysparm_query=name=[app_name]&sysparm_fields=sys_id,name,short_description,owner,business_criticality,lifecycle_stage,operational_status,used_for,version,vendor&sysparm_limit=10" \
  -H "Accept: application/json"

Step 3: Query Application Portfolio Overview

Retrieve all business applications with key metrics:

MCP Approach:

Tool: SN-Query-Table
Parameters:
  table_name: cmdb_ci_business_app
  query: operational_status=1^ORoperational_status=2
  fields: sys_id,name,business_criticality,lifecycle_stage,operational_status,owner,vendor,used_for
  limit: 200

REST Alternative:

curl -u "$SN_USER:$SN_PASS" \
  "$SN_INSTANCE/api/now/table/cmdb_ci_business_app?sysparm_query=operational_status=1^ORoperational_status=2&sysparm_fields=sys_id,name,business_criticality,lifecycle_stage,operational_status,owner,vendor&sysparm_limit=200" \
  -H "Accept: application/json"

Step 4: Map Application Dependencies

Query upstream dependencies (what this app depends on):

MCP Approach:

Tool: SN-Query-Table
Parameters:
  table_name: cmdb_rel_ci
  query: child=[app_sys_id]
  fields: sys_id,parent,child,type,connection_strength
  limit: 100

Query downstream dependencies (what depends on this app):

MCP Approach:

Tool: SN-Query-Table
Parameters:
  table_name: cmdb_rel_ci
  query: parent=[app_sys_id]
  fields: sys_id,parent,child,type,connection_strength
  limit: 100

REST Alternative:

# Upstream
curl -u "$SN_USER:$SN_PASS" \
  "$SN_INSTANCE/api/now/table/cmdb_rel_ci?sysparm_query=child=[app_sys_id]&sysparm_fields=sys_id,parent,child,type&sysparm_limit=100" \
  -H "Accept: application/json"

# Downstream
curl -u "$SN_USER:$SN_PASS" \
  "$SN_INSTANCE/api/now/table/cmdb_rel_ci?sysparm_query=parent=[app_sys_id]&sysparm_fields=sys_id,parent,child,type&sysparm_limit=100" \
  -H "Accept: application/json"

Step 5: Analyze Technology Stack Alignment

Retrieve technology standards:

MCP Approach:

Tool: SN-Query-Table
Parameters:
  table_name: sn_ea_tech_standard
  query: active=true
  fields: sys_id,name,description,status,lifecycle_stage,standard_type,category
  limit: 200

Check which standards the application aligns with:

MCP Approach:

Tool: SN-Query-Table
Parameters:
  table_name: sn_ea_tech_standard
  query: related_business_appLIKE[app_sys_id]
  fields: sys_id,name,status,lifecycle_stage,standard_type
  limit: 50

Step 6: Assess Application Health via Incidents

Query recent incidents for the application:

MCP Approach:

Tool: SN-Query-Table
Parameters:
  table_name: incident
  query: cmdb_ci=[app_sys_id]^sys_created_on>=javascript:gs.daysAgo(90)
  fields: sys_id,number,short_description,priority,state,resolved_at,sys_created_on
  limit: 100

REST Alternative:

curl -u "$SN_USER:$SN_PASS" \
  "$SN_INSTANCE/api/now/table/incident?sysparm_query=cmdb_ci=[app_sys_id]^sys_created_on>=javascript:gs.daysAgo(90)&sysparm_fields=sys_id,number,short_description,priority,state&sysparm_limit=100" \
  -H "Accept: application/json"

Step 7: Assess Change Frequency

MCP Approach:

Tool: SN-Query-Table
Parameters:
  table_name: change_request
  query: cmdb_ci=[app_sys_id]^sys_created_on>=javascript:gs.daysAgo(180)
  fields: sys_id,number,short_description,type,state,risk,sys_created_on
  limit: 100

Step 8: Retrieve Related Architecture Decisions

MCP Approach:

Tool: SN-Query-Table
Parameters:
  table_name: sn_ea_architecture_decision_record
  query: business_application=[app_sys_id]
  fields: sys_id,number,title,state,decision,consequences,sys_created_on
  limit: 50

Step 9: Retrieve Architecture Diagrams

MCP Approach:

Tool: SN-Query-Table
Parameters:
  table_name: sn_ea_diagram
  query: related_record=[app_sys_id]
  fields: sys_id,name,description,diagram_type,sys_updated_on
  limit: 20

Step 10: Compile Application Insight Report

Generate a structured report using this template:

Application Insight Report: [App Name]
================================================
Business Criticality: [Level]
Lifecycle Stage: [Stage]
Operational Status: [Status]
Owner: [Owner Name]
Vendor: [Vendor]

HEALTH SUMMARY:
- Incidents (last 90 days): [Count] ([P1]: X, [P2]: Y, [P3]: Z)
- Changes (last 180 days): [Count]
- Availability: [Derived metric]

DEPENDENCY MAP:
Upstream (depends on):
  - [CI Name] (Type: [Rel Type])
Downstream (depended on by):
  - [CI Name] (Type: [Rel Type])

TECHNOLOGY STACK:
- [Standard Name] - Status: [Approved/Retiring/Prohibited]

ARCHITECTURE DECISIONS:
- [ADR Number]: [Title] - [State]

MODERNIZATION ASSESSMENT:
- Lifecycle Risk: [Low/Medium/High]
- Technical Debt Indicators: [List]
- Recommended Actions: [List]

DIAGRAMS:
- [Diagram Name] (Type: [Type])

Tool Usage

ActionMCP ToolREST Endpoint
Get application detailsSN-Get-RecordGET /api/now/table/cmdb_ci_business_app/{sys_id}
Query applicationsSN-Query-TableGET /api/now/table/cmdb_ci_business_app
Map dependenciesSN-Query-TableGET /api/now/table/cmdb_rel_ci
Get tech standardsSN-Query-TableGET /api/now/table/sn_ea_tech_standard
Get incidentsSN-Query-TableGET /api/now/table/incident
Get changesSN-Query-TableGET /api/now/table/change_request
Get ADRsSN-Query-TableGET /api/now/table/sn_ea_architecture_decision_record
Get diagramsSN-Query-TableGET /api/now/table/sn_ea_diagram

Best Practices

  • Start with criticality: Focus analysis on business-critical applications first (criticality 1 or 2)
  • Use lifecycle stages: Leverage lifecycle_stage field to identify candidates for retirement or modernization
  • Cross-reference incidents with changes: Correlate high incident counts with recent changes for root cause patterns
  • Map full dependency chains: Walk the dependency graph 2-3 levels deep to understand blast radius
  • Include cost data: Where available, incorporate cost_center and TCO data for financial insights
  • Compare against standards: Flag applications using technologies in "Retiring" or "Prohibited" lifecycle stages
  • Time-box incident analysis: Use 90-day windows for health metrics to capture current trends without noise
  • Aggregate for portfolio views: Roll up individual application insights into domain or capability-level summaries
  • Validate with owners: Always confirm automated insights with application owners before publishing

Troubleshooting

No Dependency Relationships Found

Symptom: cmdb_rel_ci returns no results for an application Causes:

  1. Relationships not populated in CMDB
  2. Application registered as different CI class
  3. Relationship direction reversed Solution:
Tool: SN-Query-Table
Parameters:
  table_name: cmdb_rel_ci
  query: parent=[app_sys_id]^ORchild=[app_sys_id]
  fields: sys_id,parent,child,type
  limit: 50

Business Application Not Found

Symptom: Query returns no results for application name Cause: Application may be registered under a different name or CI class Solution:

Tool: SN-Query-Table
Parameters:
  table_name: cmdb_ci_business_app
  query: nameLIKE[partial_name]^ORshort_descriptionLIKE[partial_name]
  fields: sys_id,name,short_description,sys_class_name
  limit: 20

Missing Technology Standard Links

Symptom: No technology standards linked to application Cause: Standards may be linked via a different relationship or custom table Solution: Check the data dictionary for relationship fields:

Tool: SN-Query-Table
Parameters:
  table_name: sys_dictionary
  query: name=sn_ea_tech_standard^elementLIKEapplication
  fields: element,column_label,internal_type
  limit: 20

Incident Counts Seem Too High

Symptom: Hundreds of incidents returned for a single application Cause: Parent CI may be catching child CI incidents via CMDB hierarchy Solution: Filter to direct CI association only:

Tool: SN-Query-Table
Parameters:
  table_name: incident
  query: cmdb_ci=[app_sys_id]^cmdb_ci.sys_class_name=cmdb_ci_business_app
  fields: sys_id,number,priority
  limit: 200

Examples

Example 1: Full Application Health Assessment

# Step 1: Get application details
Tool: SN-Query-Table
Parameters:
  table_name: cmdb_ci_business_app
  query: name=SAP ERP
  fields: sys_id,name,business_criticality,lifecycle_stage,operational_status,owner,vendor
  limit: 1
# Result: sys_id = "app123"

# Step 2: Get dependencies
Tool: SN-Query-Table
Parameters:
  table_name: cmdb_rel_ci
  query: parent=app123^ORchild=app123
  fields: sys_id,parent,child,type
  limit: 100

# Step 3: Get recent incidents
Tool: SN-Query-Table
Parameters:
  table_name: incident
  query: cmdb_ci=app123^sys_created_on>=javascript:gs.daysAgo(90)
  fields: sys_id,number,priority,state
  limit: 200

# Step 4: Get architecture decisions
Tool: SN-Query-Table
Parameters:
  table_name: sn_ea_architecture_decision_record
  query: business_application=app123
  fields: sys_id,number,title,state,decision
  limit: 20

Example 2: Portfolio Modernization Candidates

# Find applications in "End of Life" or "Retiring" lifecycle stages
Tool: SN-Query-Table
Parameters:
  table_name: cmdb_ci_business_app
  query: lifecycle_stage=end_of_life^ORlifecycle_stage=retiring^operational_status=1
  fields: sys_id,name,business_criticality,lifecycle_stage,owner,vendor
  limit: 100

Example 3: Critical Application Dependency Report

# Find all critical applications
Tool: SN-Query-Table
Parameters:
  table_name: cmdb_ci_business_app
  query: business_criticality=1^operational_status=1
  fields: sys_id,name,owner,lifecycle_stage
  limit: 50

# For each, query dependency count
Tool: SN-Query-Table
Parameters:
  table_name: cmdb_rel_ci
  query: parent=[each_app_sys_id]
  fields: sys_id,child
  limit: 500

Related Skills

  • ea/adr-summarization - Architecture Decision Record summarization
  • cmdb/ci-discovery - CMDB configuration item management
  • cmdb/relationship-mapping - Deep dependency analysis
  • reporting/analytics-generation - Dashboard creation for portfolio views
  • spm/project-insights - Project and portfolio management insights

Signals

GitHub stars
37
Forks
13
Last commit
Jul 2026
Advanced
Catalog kind
skill
Gateway key
business-app-insights
Source
github.com/happy-technologies-llc/happy-platform-skills