OmniStudio vs Flow Decision
Route first, then read this
This skill does not re-derive the automation choice. Two canonical trees own
that, and this skill runs after them:
standards/decision-trees/automation-selection.md — the Flow vs Apex vs
Agentforce vs Approvals vs Platform Events routing. Read it top to bottom
first. Its Q1–Q12 will tell you whether the capability is record-triggered
work, a user-facing form, a scheduled job, or an integration — and that
classification is what makes the OmniStudio question answerable at all.
standards/decision-trees/flow-pattern-selector.md — once the first tree
says "Flow", this picks which Flow. Its Q1–Q9 and its transaction-boundary
table are the comparison baseline for anything OmniStudio might replace.
Cite the branch that resolved the choice. If the automation tree lands on
before-save record-triggered Flow, OmniStudio has no equivalent and this skill
has nothing to add — say so and stop.
What this skill adds is the layer the trees do not cover: on an org that has
OmniStudio, for the branches where an OmniStudio artifact could serve, which
one should. It is a per-layer choice, and it is dominated by operational cost
rather than by capability.
Precondition: three questions before any comparison
The answers change the recommendation more than anything about the capability.
1. Does the org actually have OmniStudio, and is anyone trained on it?
An org where one person can maintain an OmniScript has a single point of failure
dressed up as a platform capability. This is a real constraint, not a soft one,
and it should be written down rather than implied.
2. Which runtime? The managed package runtime (the Vlocity lineage, custom
data model, vlocity_* namespaces, DataPacks) or the standard runtime
(Salesforce standard objects, Metadata API). Migration between them is a
documented three-phase project, now assisted by the Omnistudio Migration
Assistant. The runtime changes deployment, Apex entry points, and the extension
model — so "should we use OmniStudio" has two different answers depending on
which one the org is on.
3. Is there already an OmniStudio implementation of this capability's
neighbours? A capability that sits between two existing OmniScripts is a
different proposition from a greenfield one, regardless of which tool is
theoretically better.
Core Concepts
Three layers, three independent decisions
The most common mistake is treating this as one choice. It is three, and mixed
answers are normal and usually correct.
| Layer |
OmniStudio option |
Core option |
The question that decides it |
| UI |
OmniScript, FlexCard |
Screen Flow, LWC, Lightning Record Page |
How many steps, how much branching, and who maintains the surface |
| Orchestration |
Integration Procedure |
Autolaunched Flow, Invocable Apex |
Whether the work is record-triggered, and how much JSON shaping there is |
| Data shaping |
Data Mapper (Extract / Turbo Extract / Transform / Load) |
Get/Update/Create Records, Apex |
Whether the shape crossing the boundary is dictated by an external system |
An OmniScript UI in front of an autolaunched Flow is a legitimate design. So is a
Screen Flow that calls an Integration Procedure for one gnarly external payload.
Insisting on one vendor per capability is an aesthetic preference, not an
architectural one.
What OmniStudio is genuinely better at
Three things, and they are narrower than the enthusiasm suggests:
- Long, branching, guided journeys. A twelve-step application with conditional
sections, save-and-resume, and heavy validation is what OmniScript exists for.
A Screen Flow can do it and becomes hard to reason about well before step
twelve.
- JSON shaping as a first-class artifact. Data Mappers make the payload
contract a named, versionable thing. The Transform type is documented as
performing "intermediate data transformations without reading from or writing
to Salesforce" — an artifact whose entire job is reshaping. Flow has no
equivalent, and expressing a nested-JSON reshape in Flow formulas is genuinely
worse.
- One capability, several surfaces. The same OmniScript serving an internal
console and an Experience Cloud site is real reuse, not a claim.
What Flow is genuinely better at
- Anything record-triggered. OmniStudio has no before-save equivalent, and
before-save is the cheapest automation on the platform: it writes the field in
the save the trigger already pays for. If
automation-selection.md Q2 lands on
before-save, the discussion is over.
- Short admin-owned interactions. One to three screens, changed monthly, by
people who already work in Flow Builder.
- Anything the platform will inspect for you. Flow Trigger Explorer, the
debugger, and the standard automation surfaces know what a Flow is.
The operational tax is the actual decision
Capability comparisons rarely decide this. Operating cost does, and it is
asymmetric in ways that do not show up in a demo.
Deployment. On the managed package runtime, OmniStudio components move as
DataPacks — a mechanism unlike anything else in the org's pipeline. On the
standard runtime they move through the Metadata API as OmniProcess
(OmniScript and Integration Procedure), OmniDataTransform (Data Mapper), and
OmniUiCard (FlexCard) — but only after the Omnistudio Metadata setting is
enabled: "To deploy and retrieve Omnistudio standard objects with Salesforce
Metadata API, enable the Omnistudio Metadata setting."
Setup surface. The standard runtime is governed by a set of switches an
architect should know exist before committing, because several are prerequisites
rather than preferences: Omnistudio Metadata API Support, Managed Package Runtime,
Managed Package Designer, Deploy Custom Lightning Web Components, Omnistudio SLDS
2 Theme, Data Mapper Versioning, Omni Global Auto Number, and Enhanced Runtime
Performance — the last documented as making "Omnistudio communicate[] with the
Salesforce Platform with in-platform capabilities instead of through Apex calls".
Introspection. OmniProcess, OmniDataTransform, and OmniDataTransformItem
are all documented in the Object Reference as "For internal use only… Don't
perform any create, edit, or delete operations on this object." You can read
them for an inventory; you cannot build tooling that rewrites them. Flow metadata
has no such restriction.
Hiring and handover. Flow skills are common and transferable. OmniStudio
skills are neither. On a five-year horizon this is frequently the largest cost in
the comparison and the one least often written down.
Common Patterns
Pattern A — OmniScript UI, Flow side-effects
The journey is OmniStudio; the record-triggered consequences of what it saves are
Flow. This is the default shape on an Industry Cloud org and it respects both
tools' strengths: OmniScript owns the multi-step interaction, and the after-save
work stays where flow-pattern-selector.md Q4–Q5 puts it.
Pattern B — Screen Flow UI, Integration Procedure for one hard payload
The interaction is three screens and admin-owned, so flow-pattern-selector.md
Q7 says Screen Flow. One step needs a nested JSON document shaped for a partner
API. An Integration Procedure with a Transform Data Mapper does that better than
any Flow formula. Mixed, and correct.
Pattern C — Lightning Record Page, not FlexCard, unless a FlexCard feature is needed
Replacing a Lightning Record Page with a FlexCard because the org "is an
OmniStudio org" trades a surface every admin can edit for one that needs an
OmniStudio skillset. Do it when you need FlexCard-specific behaviour — a card
consumed across several surfaces, actions driven from a central designer, an
IP-powered save chain — and not because of house style.
Pattern D — leave the working thing alone
An existing Screen Flow that does the job is not a migration candidate because
the org bought OmniStudio. Rewrites consume the budget that new capability needed
and reintroduce bugs that were fixed years ago. Migrate on the next substantial
change, not on a platform decision.
Pattern E — record the mixed-tool boundary as a contract
Where an OmniScript calls a Flow, or a Flow calls an Integration Procedure, the
interface is where this design will break. Write down the input and output shape,
who owns each side, and what happens when one side changes. A boundary nobody
documented is a boundary nobody tests.
Decision Guidance
Apply after automation-selection.md has classified the capability.
| Situation |
Recommended |
Reason |
| Automation tree lands on before-save record-triggered Flow |
Flow — no discussion |
OmniStudio has no before-save equivalent |
| Automation tree lands on after-save record-triggered Flow |
Flow |
Record-triggered is Flow's native context |
| 1–3 screen internal interaction, admin-owned, changes monthly |
Screen Flow |
Lower operating cost, common skills |
| 8+ step guided journey with branching and save-and-resume |
OmniScript |
What it exists for; Flow gets hard well before this |
| Same journey needed in a console and an Experience Cloud site |
OmniScript |
Genuine surface reuse |
| Nested JSON shaped for an external contract |
Integration Procedure + Transform Data Mapper |
A named, versionable payload artifact |
| Simple record reads and writes |
Flow Get/Update/Create Records |
Data Mapper adds an artifact for no gain |
| High-volume bulk processing |
Apex |
automation-selection.md Q10; neither tool changes this |
| Replacing a Lightning Record Page |
Lightning Record Page, unless a FlexCard feature is required |
Simpler operations, wider skill pool |
| Org has OmniStudio but nobody trained |
Flow, and say why |
One-person capability is a risk, not a platform |
| Managed package runtime, and a migration is planned |
Do not build new OmniStudio into the migration scope |
You would migrate what you just built |
| Existing Screen Flow that works |
Leave it |
Rewrites spend budget and reintroduce bugs |
| Capability sits between two existing OmniScripts |
OmniStudio |
Consistency at the boundary beats tool purity |
| Deployment pipeline cannot carry DataPacks or Omnistudio metadata yet |
Fix the pipeline first |
An artifact you cannot promote is not a solution |
Recommended Workflow
- Route with
automation-selection.md first and record the branch that
resolved it. If it lands on before-save record-triggered Flow, or on Apex for
volume, this skill adds nothing — say so and stop.
- If the answer was Flow, run
flow-pattern-selector.md to get the specific
Flow type. That is the baseline any OmniStudio proposal has to beat, and its
transaction-boundary table is the comparison you will actually be arguing
about.
- Answer the three preconditions — does the org have OmniStudio, which
runtime, and are the capability's neighbours already OmniStudio — before
comparing anything. These change the answer more than the requirement does.
- Split the capability into UI, orchestration, and data-shaping layers and
decide each one separately, allowing mixed answers.
- Price the operational tax explicitly: deployment mechanism, the Setup
switches that are prerequisites, who can maintain it in eighteen months, and
whether the pipeline can promote it today.
- Write the mixed-tool boundaries as contracts — input shape, output shape,
owner per side, and what happens when either changes.
- Record the decision with its citations — the tree branches, the runtime,
and the operational facts — so the next person inherits the reasoning rather
than only the outcome.
Review Checklist
Salesforce-Specific Gotchas
Full detail in references/gotchas.md.
- Two runtimes — half of what is "known" about OmniStudio describes only the managed package.
- DataPacks are not the standard pipeline, and the standard-runtime alternative needs a setting enabled first.
- The Omnistudio standard objects are internal-use-only — read, never write.
- OmniStudio has no before-save equivalent, so the cheapest automation on the platform is Flow-only.
- Enhanced Runtime Performance is a switch, not a property of the product.
- A one-person OmniStudio capability is a staffing risk described as an architecture.
- FlexCard versus Lightning Record Page is a separate decision from OmniScript versus Screen Flow.
- Building new OmniStudio during a runtime migration enlarges the migration you are trying to finish.
- Managed OmniScripts constrain override, so a packaged starting point is not a free head start.
- Mixed-tool boundaries are where this breaks, and they are the part nobody documents.
Output Artifacts
| Artifact |
Description |
| Routing record |
The automation-selection.md branch, and the flow-pattern-selector.md branch where applicable, that classified the capability |
| Precondition record |
OmniStudio present? Which runtime? Migration in flight? Who can maintain it? |
| Per-layer decision table |
UI / orchestration / data shaping, each with its tool and a one-line reason |
| Operational cost note |
Deployment mechanism, prerequisite Setup switches, pipeline readiness, skill availability |
| Boundary contracts |
For every mixed-tool seam: input shape, output shape, owner per side, change protocol |
| Migration note |
If replacing something that exists: what, why now, and what is deliberately being left alone |
Related Skills
standards/decision-trees/automation-selection.md — the canonical Flow vs Apex
routing this skill runs after; read it first, always
standards/decision-trees/flow-pattern-selector.md — which Flow type, once the
first tree says Flow; the baseline any OmniStudio proposal must beat
admin/process-automation-selection — the general automation-selection skill,
for the cases where OmniStudio is not in scope at all
omnistudio/omniscript-design-patterns — once the choice is OmniScript
omnistudio/integration-procedures — once the choice is an Integration Procedure
omnistudio/dataraptor-patterns — once the choice is a Data Mapper
omnistudio/vlocity-to-native-omnistudio-migration — the runtime move, which
the precondition questions above may reveal as the real project
omnistudio/omnistudio-deployment-datapacks — the deployment mechanism whose
cost this skill asks you to price
flow/screen-flows — the Screen Flow patterns this skill compares against
1---2name: omnistudio-vs-flow-decision3description: 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'. NOT for general automation selection (use admin/process-automation-selection) — use architect/omnistudio-vs-standard-decision.4---56# OmniStudio vs Flow Decision78## Route first, then read this910This skill does **not** re-derive the automation choice. Two canonical trees own11that, and this skill runs after them:12131. **`standards/decision-trees/automation-selection.md`** — the Flow vs Apex vs14 Agentforce vs Approvals vs Platform Events routing. Read it top to bottom15 first. Its Q1–Q12 will tell you whether the capability is record-triggered16 work, a user-facing form, a scheduled job, or an integration — and that17 classification is what makes the OmniStudio question answerable at all.182. **`standards/decision-trees/flow-pattern-selector.md`** — once the first tree19 says "Flow", this picks *which* Flow. Its Q1–Q9 and its transaction-boundary20 table are the comparison baseline for anything OmniStudio might replace.2122Cite the branch that resolved the choice. If the automation tree lands on23before-save record-triggered Flow, OmniStudio has no equivalent and this skill24has nothing to add — say so and stop.2526**What this skill adds** is the layer the trees do not cover: on an org that has27OmniStudio, for the branches where an OmniStudio artifact *could* serve, which28one should. It is a per-layer choice, and it is dominated by operational cost29rather than by capability.3031---3233## Precondition: three questions before any comparison3435The answers change the recommendation more than anything about the capability.3637**1. Does the org actually have OmniStudio, and is anyone trained on it?**38An org where one person can maintain an OmniScript has a single point of failure39dressed up as a platform capability. This is a real constraint, not a soft one,40and it should be written down rather than implied.4142**2. Which runtime?** The managed package runtime (the Vlocity lineage, custom43data model, `vlocity_*` namespaces, DataPacks) or the standard runtime44(Salesforce standard objects, Metadata API). Migration between them is a45documented three-phase project, now assisted by the Omnistudio Migration46Assistant. The runtime changes deployment, Apex entry points, and the extension47model — so "should we use OmniStudio" has two different answers depending on48which one the org is on.4950**3. Is there already an OmniStudio implementation of this capability's51neighbours?** A capability that sits between two existing OmniScripts is a52different proposition from a greenfield one, regardless of which tool is53theoretically better.5455---5657## Core Concepts5859### Three layers, three independent decisions6061The most common mistake is treating this as one choice. It is three, and mixed62answers are normal and usually correct.6364| Layer | OmniStudio option | Core option | The question that decides it |65|---|---|---|---|66| **UI** | OmniScript, FlexCard | Screen Flow, LWC, Lightning Record Page | How many steps, how much branching, and who maintains the surface |67| **Orchestration** | Integration Procedure | Autolaunched Flow, Invocable Apex | Whether the work is record-triggered, and how much JSON shaping there is |68| **Data shaping** | Data Mapper (Extract / Turbo Extract / Transform / Load) | Get/Update/Create Records, Apex | Whether the shape crossing the boundary is dictated by an external system |6970An OmniScript UI in front of an autolaunched Flow is a legitimate design. So is a71Screen Flow that calls an Integration Procedure for one gnarly external payload.72Insisting on one vendor per capability is an aesthetic preference, not an73architectural one.7475### What OmniStudio is genuinely better at7677Three things, and they are narrower than the enthusiasm suggests:7879- **Long, branching, guided journeys.** A twelve-step application with conditional80 sections, save-and-resume, and heavy validation is what OmniScript exists for.81 A Screen Flow can do it and becomes hard to reason about well before step82 twelve.83- **JSON shaping as a first-class artifact.** Data Mappers make the payload84 contract a named, versionable thing. The Transform type is documented as85 performing "intermediate data transformations without reading from or writing86 to Salesforce" — an artifact whose entire job is reshaping. Flow has no87 equivalent, and expressing a nested-JSON reshape in Flow formulas is genuinely88 worse.89- **One capability, several surfaces.** The same OmniScript serving an internal90 console and an Experience Cloud site is real reuse, not a claim.9192### What Flow is genuinely better at9394- **Anything record-triggered.** OmniStudio has no before-save equivalent, and95 before-save is the cheapest automation on the platform: it writes the field in96 the save the trigger already pays for. If `automation-selection.md` Q2 lands on97 before-save, the discussion is over.98- **Short admin-owned interactions.** One to three screens, changed monthly, by99 people who already work in Flow Builder.100- **Anything the platform will inspect for you.** Flow Trigger Explorer, the101 debugger, and the standard automation surfaces know what a Flow is.102103### The operational tax is the actual decision104105Capability comparisons rarely decide this. Operating cost does, and it is106asymmetric in ways that do not show up in a demo.107108**Deployment.** On the managed package runtime, OmniStudio components move as109DataPacks — a mechanism unlike anything else in the org's pipeline. On the110standard runtime they move through the Metadata API as `OmniProcess`111(OmniScript and Integration Procedure), `OmniDataTransform` (Data Mapper), and112`OmniUiCard` (FlexCard) — but only after the **Omnistudio Metadata** setting is113enabled: "To deploy and retrieve Omnistudio standard objects with Salesforce114Metadata API, enable the Omnistudio Metadata setting."115116**Setup surface.** The standard runtime is governed by a set of switches an117architect should know exist before committing, because several are prerequisites118rather than preferences: Omnistudio Metadata API Support, Managed Package Runtime,119Managed Package Designer, Deploy Custom Lightning Web Components, Omnistudio SLDS1202 Theme, Data Mapper Versioning, Omni Global Auto Number, and Enhanced Runtime121Performance — the last documented as making "Omnistudio communicate[] with the122Salesforce Platform with in-platform capabilities instead of through Apex calls".123124**Introspection.** `OmniProcess`, `OmniDataTransform`, and `OmniDataTransformItem`125are all documented in the Object Reference as **"For internal use only… Don't126perform any create, edit, or delete operations on this object."** You can read127them for an inventory; you cannot build tooling that rewrites them. Flow metadata128has no such restriction.129130**Hiring and handover.** Flow skills are common and transferable. OmniStudio131skills are neither. On a five-year horizon this is frequently the largest cost in132the comparison and the one least often written down.133134---135136## Common Patterns137138### Pattern A — OmniScript UI, Flow side-effects139140The journey is OmniStudio; the record-triggered consequences of what it saves are141Flow. This is the default shape on an Industry Cloud org and it respects both142tools' strengths: OmniScript owns the multi-step interaction, and the after-save143work stays where `flow-pattern-selector.md` Q4–Q5 puts it.144145### Pattern B — Screen Flow UI, Integration Procedure for one hard payload146147The interaction is three screens and admin-owned, so `flow-pattern-selector.md`148Q7 says Screen Flow. One step needs a nested JSON document shaped for a partner149API. An Integration Procedure with a Transform Data Mapper does that better than150any Flow formula. Mixed, and correct.151152### Pattern C — Lightning Record Page, not FlexCard, unless a FlexCard feature is needed153154Replacing a Lightning Record Page with a FlexCard because the org "is an155OmniStudio org" trades a surface every admin can edit for one that needs an156OmniStudio skillset. Do it when you need FlexCard-specific behaviour — a card157consumed across several surfaces, actions driven from a central designer, an158IP-powered save chain — and not because of house style.159160### Pattern D — leave the working thing alone161162An existing Screen Flow that does the job is not a migration candidate because163the org bought OmniStudio. Rewrites consume the budget that new capability needed164and reintroduce bugs that were fixed years ago. Migrate on the next substantial165change, not on a platform decision.166167### Pattern E — record the mixed-tool boundary as a contract168169Where an OmniScript calls a Flow, or a Flow calls an Integration Procedure, the170interface is where this design will break. Write down the input and output shape,171who owns each side, and what happens when one side changes. A boundary nobody172documented is a boundary nobody tests.173174---175176## Decision Guidance177178Apply *after* `automation-selection.md` has classified the capability.179180| Situation | Recommended | Reason |181|---|---|---|182| Automation tree lands on before-save record-triggered Flow | Flow — no discussion | OmniStudio has no before-save equivalent |183| Automation tree lands on after-save record-triggered Flow | Flow | Record-triggered is Flow's native context |184| 1–3 screen internal interaction, admin-owned, changes monthly | Screen Flow | Lower operating cost, common skills |185| 8+ step guided journey with branching and save-and-resume | OmniScript | What it exists for; Flow gets hard well before this |186| Same journey needed in a console and an Experience Cloud site | OmniScript | Genuine surface reuse |187| Nested JSON shaped for an external contract | Integration Procedure + Transform Data Mapper | A named, versionable payload artifact |188| Simple record reads and writes | Flow Get/Update/Create Records | Data Mapper adds an artifact for no gain |189| High-volume bulk processing | Apex | `automation-selection.md` Q10; neither tool changes this |190| Replacing a Lightning Record Page | Lightning Record Page, unless a FlexCard feature is required | Simpler operations, wider skill pool |191| Org has OmniStudio but nobody trained | Flow, and say why | One-person capability is a risk, not a platform |192| Managed package runtime, and a migration is planned | Do not build new OmniStudio into the migration scope | You would migrate what you just built |193| Existing Screen Flow that works | Leave it | Rewrites spend budget and reintroduce bugs |194| Capability sits between two existing OmniScripts | OmniStudio | Consistency at the boundary beats tool purity |195| Deployment pipeline cannot carry DataPacks or Omnistudio metadata yet | Fix the pipeline first | An artifact you cannot promote is not a solution |196197---198199## Recommended Workflow2002011. **Route with `automation-selection.md` first** and record the branch that202 resolved it. If it lands on before-save record-triggered Flow, or on Apex for203 volume, this skill adds nothing — say so and stop.2042. **If the answer was Flow, run `flow-pattern-selector.md`** to get the specific205 Flow type. That is the baseline any OmniStudio proposal has to beat, and its206 transaction-boundary table is the comparison you will actually be arguing207 about.2083. **Answer the three preconditions** — does the org have OmniStudio, which209 runtime, and are the capability's neighbours already OmniStudio — before210 comparing anything. These change the answer more than the requirement does.2114. **Split the capability into UI, orchestration, and data-shaping layers** and212 decide each one separately, allowing mixed answers.2135. **Price the operational tax explicitly**: deployment mechanism, the Setup214 switches that are prerequisites, who can maintain it in eighteen months, and215 whether the pipeline can promote it today.2166. **Write the mixed-tool boundaries as contracts** — input shape, output shape,217 owner per side, and what happens when either changes.2187. **Record the decision with its citations** — the tree branches, the runtime,219 and the operational facts — so the next person inherits the reasoning rather220 than only the outcome.221222---223224## Review Checklist225226- [ ] `automation-selection.md` was read first, and the resolving branch is cited227- [ ] `flow-pattern-selector.md` was applied where the answer was Flow228- [ ] The decision is per-layer, and mixed answers were allowed229- [ ] Runtime (managed package vs standard) is identified and recorded230- [ ] Whether the org is mid-migration is known, and new build respects it231- [ ] Team capability is stated honestly, including single-person risk232- [ ] Deployment mechanism is named and known to work in this pipeline today233- [ ] Required Setup switches are listed as prerequisites, not discoveries234- [ ] FlexCard vs Lightning Record Page was decided on FlexCard-specific need235- [ ] No existing working artifact is being rewritten without a separate reason236- [ ] Mixed-tool boundaries are documented as contracts with owners237- [ ] Nothing in the design writes to `OmniProcess` / `OmniDataTransform`238- [ ] Latency and volume expectations are stated, not assumed239- [ ] The decision record cites its sources, so it can be revisited rather than re-argued240241---242243## Salesforce-Specific Gotchas244245Full detail in [`references/gotchas.md`](references/gotchas.md).2462471. **Two runtimes** — half of what is "known" about OmniStudio describes only the managed package.2482. **DataPacks are not the standard pipeline**, and the standard-runtime alternative needs a setting enabled first.2493. **The Omnistudio standard objects are internal-use-only** — read, never write.2504. **OmniStudio has no before-save equivalent**, so the cheapest automation on the platform is Flow-only.2515. **Enhanced Runtime Performance is a switch**, not a property of the product.2526. **A one-person OmniStudio capability** is a staffing risk described as an architecture.2537. **FlexCard versus Lightning Record Page** is a separate decision from OmniScript versus Screen Flow.2548. **Building new OmniStudio during a runtime migration** enlarges the migration you are trying to finish.2559. **Managed OmniScripts constrain override**, so a packaged starting point is not a free head start.25610. **Mixed-tool boundaries are where this breaks**, and they are the part nobody documents.257258---259260## Output Artifacts261262| Artifact | Description |263|---|---|264| Routing record | The `automation-selection.md` branch, and the `flow-pattern-selector.md` branch where applicable, that classified the capability |265| Precondition record | OmniStudio present? Which runtime? Migration in flight? Who can maintain it? |266| Per-layer decision table | UI / orchestration / data shaping, each with its tool and a one-line reason |267| Operational cost note | Deployment mechanism, prerequisite Setup switches, pipeline readiness, skill availability |268| Boundary contracts | For every mixed-tool seam: input shape, output shape, owner per side, change protocol |269| Migration note | If replacing something that exists: what, why now, and what is deliberately being left alone |270271---272273## Related Skills274275- `standards/decision-trees/automation-selection.md` — the canonical Flow vs Apex276 routing this skill runs after; read it first, always277- `standards/decision-trees/flow-pattern-selector.md` — which Flow type, once the278 first tree says Flow; the baseline any OmniStudio proposal must beat279- `admin/process-automation-selection` — the general automation-selection skill,280 for the cases where OmniStudio is not in scope at all281- `omnistudio/omniscript-design-patterns` — once the choice is OmniScript282- `omnistudio/integration-procedures` — once the choice is an Integration Procedure283- `omnistudio/dataraptor-patterns` — once the choice is a Data Mapper284- `omnistudio/vlocity-to-native-omnistudio-migration` — the runtime move, which285 the precondition questions above may reveal as the real project286- `omnistudio/omnistudio-deployment-datapacks` — the deployment mechanism whose287 cost this skill asks you to price288- `flow/screen-flows` — the Screen Flow patterns this skill compares against