sf-industry-commoncore-omnistudio-analyze: OmniStudio Cross-Component Analysis
Expert OmniStudio analyst specializing in namespace detection, dependency mapping, and impact analysis across the full OmniStudio component suite. Perform org-wide inventory of OmniScripts, FlexCards, Integration Procedures, and Data Mappers with automated dependency graph construction and Mermaid visualization.
Core Responsibilities
- Namespace Detection: Identify whether an org uses Core (Industries), vlocity_cmt (Communications, Media & Energy), or vlocity_ins (Insurance & Health) namespace
- Dependency Analysis: Build directed graphs of cross-component dependencies using BFS traversal with circular reference detection
- Impact Analysis: Determine which components are affected when a given OmniScript, IP, FlexCard, or Data Mapper changes
- Mermaid Visualization: Generate dependency diagrams in Mermaid syntax for documentation and review
- Org-Wide Inventory: Catalog all OmniStudio components by type, status, language, and version
CRITICAL: Orchestration Order
When multiple OmniStudio skills are involved, follow this dependency chain:
sf-industry-commoncore-omnistudio-analyze→sf-industry-commoncore-datamapper→sf-industry-commoncore-integration-procedure→sf-industry-commoncore-omniscript→sf-industry-commoncore-flexcardThis skill runs first to establish namespace context and dependency maps that downstream skills consume.
Key Insights
Workflow (4-Phase Pattern)
Phase 1: Namespace Detection
Purpose: Determine which OmniStudio namespace the org uses before querying any component metadata.
Detection Algorithm — Probe objects in order until a successful COUNT() returns:
-
Core (Industries namespace):
If this succeeds, the org uses the Core namespace (API 234.0+ / Spring '22+).
-
vlocity_cmt (Communications, Media & Energy):
-
vlocity_ins (Insurance & Health):
If none succeed, OmniStudio is not installed in the org.
CLI Commands for namespace detection:
Evaluate results: A successful query (exit code 0 with totalSize in JSON) confirms the namespace. A query failure (INVALID_TYPE or sObject type not found) means that namespace is not present.
See: references/namespace-guide.md [blocked] for complete object/field mapping across all three namespaces.
Phase 2: Component Discovery
Purpose: Build an inventory of all OmniStudio components in the org.
Using the detected namespace, query each component type:
OmniScripts (Core example):
Integration Procedures (Core example):
FlexCards (Core example):
IMPORTANT: The
OmniUiCardobject does NOT have aDefinitionfield. UseDataSourceConfigfor data source bindings andPropertySetConfigfor card layout/states configuration.
Data Mappers (Core example):
Data Mapper Items (for object dependency extraction):
IMPORTANT: The foreign key field is
OmniDataTransformationId(full word "Transformation"), NOTOmniDataTransformId.
CLI Command pattern:
Phase 3: Dependency Analysis
Purpose: Parse component metadata to build a directed dependency graph.
Algorithm: BFS with Circular Detection
Element Type → Dependency Extraction
OmniScript and IP elements store references in the PropertySetConfig JSON field. Parse each element to extract dependencies:
Parsing PropertySetConfig:
FlexCard Data Source Parsing
FlexCards store their data source configuration in the DataSourceConfig JSON field (NOT Definition — that field does not exist on OmniUiCard):
IMPORTANT: The data source type for IPs is
IntegrationProcedures(plural with capital P), notIntegrationProcedure.
Data Mapper Object Dependencies
Data Mappers reference Salesforce objects via their items:
See: references/dependency-patterns.md [blocked] for complete dependency extraction rules and examples.
Phase 4: Visualization & Reporting
Purpose: Generate human-readable output from the dependency graph.
Output Format 1: Mermaid Dependency Diagram
Color scheme:
Output Format 2: JSON Summary
Output Format 3: Human-Readable Report
Namespace Object/Field Mapping
Complete mapping of OmniStudio objects and fields across all three namespaces:
Primary Objects
Key Fields
See: references/namespace-guide.md [blocked] for the complete reference including metadata type names for deployment.
CLI Commands Reference
Namespace Detection
Component Inventory (Core Namespace)
Dependency Data Extraction (Core Namespace)
Cross-Skill Integration
Edge Cases
Notes
- Dependencies: Requires
sfCLI with org authentication. Optional: sf-diagram-mermaid for styled visualization. - Namespace must be detected first: All downstream queries depend on knowing the correct object and field API names.
- PropertySetConfig is the key: Nearly all dependency information lives in this JSON field on OmniProcessElement records.
- DataSourceConfig for FlexCards: Data sources are in
DataSourceConfig, NOT aDefinitionfield (which does not exist onOmniUiCard). Card layout/states are inPropertySetConfig. - Data Mapper items contain object references: InputObjectName and OutputObjectName on OmniDataTransformItem records reveal which sObjects a Data Mapper reads from and writes to. The foreign key to the parent is
OmniDataTransformationId(full "Transformation"). - IsIntegrationProcedure is the discriminator:
OmniProcessuses a booleanIsIntegrationProcedurefield, not aTypeCategoryfield (which does not exist). TheOmniProcessTypepicklist is computed from this boolean and is useful for filtering reads but cannot be set directly on create. - sf data create record limitations: The
--valuesflag cannot handle JSON strings in textarea fields (e.g., PropertySetConfig). Usesf api request rest --method POST --body @file.jsoninstead for records with JSON configuration. - Install related skills:
/plugin install github:Jaganpro/sf-skills/sf-industry-commoncore-datamapper,/plugin install github:Jaganpro/sf-skills/sf-industry-commoncore-integration-procedure,/plugin install github:Jaganpro/sf-skills/sf-industry-commoncore-omniscript,/plugin install github:Jaganpro/sf-skills/sf-industry-commoncore-flexcard
License
MIT License. Copyright (c) 2026 David Ryan (weytani)


