Business Application Insights
SkillDev toolsGenerate insights for business applications including health, dependencies, technology stack, and modernization recommendations
Available today. Use it from your connected AI after setup.
No other account needed.
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, oradmin - 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-summarizationfor 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:
| Table | Purpose |
|---|---|
| cmdb_ci_business_app | Business application records with lifecycle, criticality, ownership |
| cmdb_rel_ci | CI-to-CI relationships for dependency mapping |
| sn_ea_tech_standard | Technology standards and lifecycle status |
| sn_ea_diagram | Architecture diagrams linked to applications |
| sn_ea_architecture_decision_record | Architectural 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
| Action | MCP Tool | REST Endpoint |
|---|---|---|
| Get application details | SN-Get-Record | GET /api/now/table/cmdb_ci_business_app/{sys_id} |
| Query applications | SN-Query-Table | GET /api/now/table/cmdb_ci_business_app |
| Map dependencies | SN-Query-Table | GET /api/now/table/cmdb_rel_ci |
| Get tech standards | SN-Query-Table | GET /api/now/table/sn_ea_tech_standard |
| Get incidents | SN-Query-Table | GET /api/now/table/incident |
| Get changes | SN-Query-Table | GET /api/now/table/change_request |
| Get ADRs | SN-Query-Table | GET /api/now/table/sn_ea_architecture_decision_record |
| Get diagrams | SN-Query-Table | GET /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:
- Relationships not populated in CMDB
- Application registered as different CI class
- 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 summarizationcmdb/ci-discovery- CMDB configuration item managementcmdb/relationship-mapping- Deep dependency analysisreporting/analytics-generation- Dashboard creation for portfolio viewsspm/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