Home / omnistudio / omnistudio-security
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 generic Apex security review when OmniStudio is not the main surface - use apex/apex-security-patterns.
Open the skill folder on GitHub
OmniStudio Security
Use this skill when OmniStudio must be reviewed as a real application boundary, not just as a convenience layer. OmniScripts, DataRaptors, Integration Procedures, and custom Apex or LWC extensions can all expose or mutate data. Security defects usually appear where teams assume the OmniStudio layer is safe by default and skip the same rigor they would apply to a public API or site-exposed application.
The key is to review the whole chain: who the user is, what data the asset can access, which server-side code runs, what gets returned to the client, and what gets sent outside Salesforce. Guest and portal scenarios need the tightest design because broad Apex, permissive DataRaptor contracts, or overexposed HTTP responses become visible faster there than in internal-only use.
Before Starting
Gather this context before working on anything in this domain:
- Is the OmniStudio surface internal, authenticated external, or guest-facing?
- Which OmniStudio assets are in play: OmniScript, Integration Procedure, DataRaptor, FlexCard, or custom component?
- Does the chain call Apex, invoke HTTP actions, or write data through DataRaptor Load?
- What is the minimum data the caller truly needs to see or modify?
Core Concepts
OmniStudio Does Not Replace Platform Security
CRUD, FLS, sharing, Apex execution context, and least-privilege integration design still matter. OmniStudio configuration does not automatically secure a weak server boundary.
External Context Changes The Threat Model
Internal service processes and public or portal flows are not equivalent. Guest and portal users need a narrower data contract, tighter Apex review, and stronger exposure controls.
Outbound And Inbound Data Contracts Need Review
DataRaptor outputs, Integration Procedure responses, and HTTP action payloads should return only what the consumer needs. Avoid treating intermediate data as safe to send simply because OmniStudio generated it.
Custom Apex And LWC Are Security Multipliers
The riskiest OmniStudio assets are often the ones that bridge into Apex or custom client components. Their sharing model, CRUD/FLS enforcement, and external exposure are part of the OmniStudio review. What a class with no sharing keyword and no query clause actually enforces is set by the apiVersion in its .cls-meta.xml, not by the org's release, and both defaults inverted at 67.0 (Summer '26) — so score a guest-facing bridge class against its own pin, not the org's. Canonical table: