omnistudio-vs-flow-decision
Use when choosing between OmniStudio (OmniScript / Integration Procedure / FlexCard / DataRaptor) and Flow / Screen Flow / Apex for a given capability. Triggers: 'omnistudio or flow', 'omniscript vs screen flow', 'integration procedure vs subflow', 'flexcard vs lightning page'. NOT for general automation selection across Workflow/Process Builder/Apex (see automation-selection tree).
Best use case
omnistudio-vs-flow-decision is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when choosing between OmniStudio (OmniScript / Integration Procedure / FlexCard / DataRaptor) and Flow / Screen Flow / Apex for a given capability. Triggers: 'omnistudio or flow', 'omniscript vs screen flow', 'integration procedure vs subflow', 'flexcard vs lightning page'. NOT for general automation selection across Workflow/Process Builder/Apex (see automation-selection tree).
Teams using omnistudio-vs-flow-decision should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/omnistudio-vs-flow-decision/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How omnistudio-vs-flow-decision Compares
| Feature / Agent | omnistudio-vs-flow-decision | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when choosing between OmniStudio (OmniScript / Integration Procedure / FlexCard / DataRaptor) and Flow / Screen Flow / Apex for a given capability. Triggers: 'omnistudio or flow', 'omniscript vs screen flow', 'integration procedure vs subflow', 'flexcard vs lightning page'. NOT for general automation selection across Workflow/Process Builder/Apex (see automation-selection tree).
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# OmniStudio vs Flow Decision The default reflex on Industry Cloud orgs is "use OmniStudio"; the default on core orgs is "use Flow." Both reflexes are wrong about 30% of the time. The right tool depends less on product line and more on four factors: the user surface, the reuse pattern, the team's operational model, and the latency profile. OmniStudio excels when the UI needs multi-step guidance with branching, when shaping JSON for external systems is a first-class concern, and when the same logic serves both LWC and Experience Cloud. Flow excels when the logic is record-centric (triggered by DML), when admins own the surface, and when the capability is a handful of steps rather than a multi-screen journey. Treat this as a layered choice: UI layer (OmniScript, Screen Flow, FlexCard, LWC), orchestration layer (Integration Procedure, Flow, Apex), data layer (DataRaptor, SOQL/DML in Flow, Apex). Each layer can pick a different tool. --- ## Before Starting - State the user surface: internal vs customer vs partner; desktop vs mobile. - State the licensing context: Industry Cloud (OmniStudio included) vs core. - List the reusers: other OmniScripts, Flows, LWCs, external consumers. - List the SLAs: expected latency, scale, concurrency. ## Core Concepts ### Three Layers, Three Decisions | Layer | OmniStudio option | Flow/core option | |---|---|---| | UI | OmniScript, FlexCard | Screen Flow, LWC, Record Page | | Orchestration | Integration Procedure | Flow (autolaunched), Invocable Apex | | Data shaping | DataRaptor | Get/Update/Create Records, Apex | ### When OmniStudio Is Right - Multi-step guided UX with dynamic branching and complex validation. - Reusable JSON shaping for external system integration. - Same capability consumed by both LWC and Experience Cloud site. - Industry Cloud licensed and team is trained. ### When Flow Is Right - Record-triggered automation on core objects. - Short UI interaction (1-3 screens) owned by admins. - Logic that must run in after-save context on save. - Team operates in Flow and has no OmniStudio depth. ### When Apex Is Right - Governor-constrained high-volume processing. - Complex logic that outgrows Flow's expression engine. - Performance-critical callouts. --- ## Common Patterns ### Pattern 1: OmniScript UI + Flow Backend OmniScript owns the user journey; a step invokes an autolaunched Flow that does record-triggered updates. Good when the UI is OmniStudio but the downstream side-effects fit naturally in Flow. ### Pattern 2: Integration Procedure For External Shaping The external system needs a specific JSON shape. Use an IP with DataRaptor Transforms to compose it. Do not try to shape external JSON in Flow formulas. ### Pattern 3: FlexCard On Core Object Industry Cloud orgs sometimes replace the standard record page with a FlexCard even when a Lightning Record Page would serve. Prefer the record page unless FlexCard-specific features (actions from a central designer, IP-powered save chains) are needed. ### Pattern 4: Screen Flow For Admin-Owned Capability If the capability needs to ship monthly and the owners are admins, pick Screen Flow. OmniStudio's deployment model (DataPacks) is harder for a typical admin team to operate at cadence. --- ## Decision Guidance | Situation | Recommended Tool | Reason | |---|---|---| | Multi-step branching UX, customer-facing | OmniScript | Purpose-built for this | | 1-3 step internal UI owned by admins | Screen Flow | Lower operational cost | | Record-triggered side-effects | Flow | Native to the trigger context | | External JSON shaping | Integration Procedure + DataRaptor | Direct composition | | High-volume bulk processing | Apex | Governor control | | Reusable capability across LWC and Experience Cloud | OmniScript | Surface parity | | Lightning Record Page replacement | Lightning Record Page (not FlexCard) unless FlexCard features specifically needed | Simpler ops | | Industry Cloud capability already modeled in OmniStudio | OmniStudio | Match the platform | ## Review Checklist - [ ] Decision is per-layer (UI, orchestration, data). - [ ] Team operating model matches the tool. - [ ] Licensing is considered. - [ ] Reuse pattern is explicit. - [ ] Latency profile is explicit. - [ ] FlexCard vs Lightning Record Page has been considered separately. ## Recommended Workflow 1. Describe the capability in user surface terms. 2. Classify each layer (UI, orchestration, data). 3. Apply the decision table; record rationale per layer. 4. Sanity-check against team and licensing. 5. Call out mixed-tool boundaries and their contracts. 6. Validate against any existing decision-tree doc in the org. --- ## Salesforce-Specific Gotchas 1. OmniStudio DataPacks are not Change Set-compatible; deployment pipeline differs from Flow. 2. Managed OmniScripts can be partially overridden but cannot be branched freely. 3. FlexCard auto-generated LWCs reset on OmniStudio upgrades if customized in-place. 4. Flow with complex loop logic often outperforms a row-by-row Integration Procedure. 5. Industry Cloud licensing can include OmniStudio; confirm before designing. ## Proactive Triggers - Admin-owned 2-screen capability being built in OmniScript → Flag High. Screen Flow likely cheaper. - Flow with multi-callout orchestration and custom JSON shaping → Flag Medium. IP fits better. - FlexCard used to replace a record page with no FlexCard-specific features → Flag Medium. - OmniScript picked without considering Industry Cloud licensing → Flag Critical. ## Output Artifacts | Artifact | Description | |---|---| | Per-layer tool choice | UI / orchestration / data recommendation | | Rationale table | Why this tool at this layer | | Boundary contracts | Interfaces between mixed tools | ## Related Skills - `standards/decision-trees/automation-selection.md` — the full automation tree. - `omnistudio/omniscript-design-patterns` — OmniScript-specific patterns. - `flow/screen-flows` — Screen Flow patterns. - `omnistudio/integration-procedures` — IP patterns.
Related Skills
ip-range-and-login-flow-strategy
Design and implement Salesforce Login Flows (Screen Flows assigned to profiles or Experience Cloud sites) that run post-authentication to enforce conditional MFA, IP-based branching, terms-of-service acceptance, or user data collection. Covers Login Flow creation in Flow Builder, profile/site assignment, IP-aware decision logic, and ConnectedAppPlugin extension points. NOT for static IP allowlisting or profile Login IP Ranges (see network-security-and-trusted-ips), org-wide session policies, or SSO/SAML IdP configuration.
customer-data-request-workflow
Implement GDPR/CCPA data subject rights (access, deletion, rectification) using Salesforce Privacy Center and/or custom workflow. NOT for general backup or org-level data retention policy.
vlocity-to-native-omnistudio-migration
Use when migrating an org from the Vlocity managed package (vlocity_ins, vlocity_cmt, vlocity_ps) to native OmniStudio. Trigger keywords: Vlocity to OmniStudio migration, namespace migration, vlocity_ins to omnistudio, OmniStudio Migration Tool, DataRaptor namespace update, OmniScript JSON export, managed package to native. NOT for new OmniStudio setup in greenfield orgs, nor for migrating between OmniStudio-native orgs, nor for Salesforce CPQ to Industries CPQ migration.
omnistudio-testing-patterns
Use when testing or validating OmniStudio components — OmniScript preview, Integration Procedure step debugging, DataRaptor field-mapping validation, and end-to-end UTAM-based automation. NOT for Apex unit testing or standard Flow debugging.
omnistudio-security
Use when designing or reviewing OmniStudio security across OmniScripts, Integration Procedures, DataRaptors, custom LWCs, Apex actions, guest-user exposure, and outbound HTTP actions. Triggers: 'OmniStudio security', 'guest user omniscript', 'DataRaptor CRUD FLS', 'OmniStudio Apex security', 'HTTP action data exposure'. NOT for general portal identity architecture or generic Apex security reviews when OmniStudio is not the main surface.
omnistudio-remote-actions
Use when configuring, troubleshooting, or choosing between Remote Action types in OmniScript or FlexCard. Triggers: 'remote action', 'OmniScript action', 'IP action', 'Apex action element', 'VlocityOpenInterface2', 'Send/Response JSON Path'. NOT for Integration Procedure internal design (use integration-procedures) or generic Apex callout patterns (use apex integration skills).
omnistudio-performance
Use when diagnosing or improving runtime performance in OmniStudio assets: slow OmniScripts, Integration Procedures with high latency, DataRaptor caching, excessive API call counts, FlexCard rendering delays, or async IP fire-and-forget patterns. Triggers: 'OmniScript slow', 'Integration Procedure timeout', 'DataRaptor cache', 'FlexCard loading too long', 'reduce API calls OmniStudio'. NOT for LWC performance outside of OmniScript runtime (use lwc-performance skill). NOT for OmniScript step design or journey UX (use omniscript-design-patterns skill).
omnistudio-multi-language
Localize OmniScripts, FlexCards, and DataRaptors using Label-based translation, multi-language JSON, and locale-aware number/date formatting. NOT for Salesforce Translation Workbench alone.
omnistudio-lwc-omniscript-migration
Migrate classic Visualforce-based OmniScripts to LWC-based runtime with feature parity and regression testing. NOT for new OmniScript design.
omnistudio-lwc-integration
Use when embedding OmniScripts in Lightning Web Components, registering custom LWC elements inside OmniScript screens, or calling OmniScript/Integration Procedures from LWC. Triggers: embed omniscript in LWC, custom LWC element in OmniScript, call OmniScript from Lightning page, omnistudio-omni-script tag, seed data JSON, OmniScript launch from LWC. NOT for standalone LWC development, standard Flow embedding, or OmniScript-to-OmniScript embedding.
omnistudio-field-mapping-governance
Govern DataRaptor field mappings to prevent runtime errors when source metadata changes: naming, versioning, and dependency tracking. NOT for DataRaptor authoring fundamentals.
omnistudio-error-handling-patterns
Use when designing fault behavior across Integration Procedures, DataRaptors, OmniScripts, and FlexCards — error routing, user-facing messaging, retry semantics, and idempotency. Triggers: 'omnistudio error', 'integration procedure fault', 'dataraptor error handling', 'omniscript retry', 'flexcard action failure'. NOT for general Apex exception design or Flow fault paths.