OmniStudio Developer Mock Test
Salesforce Certified OmniStudio Developer — Free Practice Exam with Explanations
About This OmniStudio Developer Practice Test
These 50 original practice questions were written to mirror the way the Salesforce Certified OmniStudio Developer exam asks about building declarative, industry-style applications. You will work through OmniScript design and validation, FlexCard states and actions, the four Data Mapper types, server-side orchestration with Integration Procedures, embedding components on Lightning and external pages, and the tooling used to move OmniStudio metadata between orgs.
Every question includes a written explanation covering why the correct answer is right and why the distractors are not, so a wrong answer teaches you something rather than just costing a point. Questions are weighted to follow the published exam domain percentages, which means roughly a third of the test is OmniScripts.
Note: these are original practice questions written by the A2Z Salesforce team. They are not real Salesforce exam questions, and no exam content is reproduced here.
Last updated:
Official Exam Format
- 60 Multiple Choice Questions
- 65% Passing Score
- 105 Minutes
- Proctored / Online
- No prerequisite certification
Domain Weighting
- OmniScripts — 32%
- FlexCards — 16%
- Data Tools / Data Mappers — 16%
- Integration Procedures — 16%
- Web Page Integration — 12%
- OmniStudio Tools — 8%
OmniStudio Developer Practice Questions
Show explanation & topic
Correct answer: A. An OmniScript is the OmniStudio component built specifically for guided, multi-step user interactions. It renders a series of Steps containing input elements, applies validation, calls server-side actions, and can write results back to Salesforce.
Why the other options are wrong: A FlexCard is a read-oriented display component, not a data-entry wizard. A Data Mapper Load only writes data — it has no user interface. An Integration Procedure runs server-side with no UI at all.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: B. OmniScript merge fields are wrapped in percent signs — %FirstName% — and resolve against the element name in the OmniScript data JSON at runtime.
Why the other options are wrong: {!FirstName} is Visualforce/Flow merge syntax. $FirstName$ and [[FirstName]] are not recognised by the OmniScript runtime and would render as literal text.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: C. OmniScripts follow a versioned activate/deactivate model. Only an activated version is served at runtime, and activating a new version deactivates the previously active one. A draft version is visible only in the designer preview.
Why the other options are wrong: OmniScripts are not compiled to Visualforce. They are fully supported on Lightning pages. A permissions problem would normally produce an error, not silently serve an older version.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: D. The Set Values element assigns values to one or more JSON nodes at runtime using its element value map. It has no visible input, so it is the standard way to stage derived or constant data for later actions.
Why the other options are wrong: A Text Block only displays static content. There is no OmniScript element called Formula Field. An Edit Block groups editable input elements for the user.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: A. Conditional views are the declarative mechanism for showing or hiding OmniScript elements — including Steps — based on data already captured in the data JSON. The condition is re-evaluated as the user moves through the script.
Why the other options are wrong: Splitting into two OmniScripts duplicates maintenance for a single branch. CSS hiding leaves the element active and its data still collected and validated. There is no supported way to delete elements at runtime from an action.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: B. A Turbo Extract targets a single sObject and bypasses the heavier processing of a standard Extract, which makes it the fastest option when no formulas, multi-object joins, or complex output restructuring are required.
Why the other options are wrong: A standard Extract works but carries unnecessary overhead here. An HTTP Action adds a network round trip to retrieve data that is already in the org. A Remote Action introduces custom Apex to maintain for something fully declarative.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: C. A Type Ahead Block is configured against a server-side data source — typically a Data Mapper (often a Turbo Extract for speed) or an Integration Procedure, which can in turn aggregate several sources.
Why the other options are wrong: Static picklists belong on Select or Radio elements. The element does not accept raw SOQL inline, and it is not limited to external endpoints.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: D. An OmniScript flagged as reusable can be embedded inside other OmniScripts through the OmniScript element. The sequence is then maintained once, and every parent picks up the change on redeploy.
Why the other options are wrong: Copy and paste creates four copies to keep in sync. FlexCards display data rather than host a validated input sequence. A Data Mapper Transform only reshapes JSON and holds no UI.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: A. Save For Later is an OmniScript-level setting that persists the in-progress data JSON so the user can return and continue. Without it, progress is held only for the life of the session.
Why the other options are wrong: Persistence is opt-in, not automatic. Saving on every keystroke would be an expensive custom workaround for a supported feature. Chainable is an Integration Procedure concept, not an OmniScript type.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: B. A repeatable Block lets the user add and remove instances at runtime, and stores the results as an array node in the data JSON — which downstream Data Mappers and Integration Procedures can iterate over.
Why the other options are wrong: Pre-building hidden pairs imposes an arbitrary ceiling and bloats the script. Set Values assigns data, it does not collect it. One OmniScript per dependant breaks the single-transaction flow.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: C. A Navigate Action sends the user to a configured destination when it fires — commonly another OmniScript, a record detail page, or a custom component — and can pass context parameters along.
Why the other options are wrong: Movement between Steps is handled by the built-in Next and Previous controls. It is not an anchor-scroll utility, and JSON traversal is done with JSON paths in element configuration.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: D. Text elements support client-side pattern validation with a developer-supplied error message, so the user is corrected immediately rather than after a server round trip.
Why the other options are wrong: A Data Mapper Load validates only at save time, after the user has moved on. There is no trigger context for in-flight OmniScript input. Try-Catch blocks belong to Integration Procedures.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: A. Delegating the work to a single Integration Procedure keeps the multi-step logic server-side, executes it in one round trip, and lets the developer add shared error handling — the recommended pattern for composite save operations.
Why the other options are wrong: Three separate Load Actions mean three round trips and no shared error handling. Repeated HTTP Actions to the org's own API add latency and authentication overhead. Set Values only writes to the data JSON.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: B. The most common cause is a path mismatch: the Data Mapper writes the value into a nested node, while the merge field references it as a top-level name. Comparing the action's response JSON to the merge field path resolves it.
Why the other options are wrong: The LWC setting affects rendering technology, not JSON paths. A permissions problem would usually surface as an action error, not an empty merge field. Merge resolution happens in the OmniScript runtime, not the browser's HTML parser.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: C. A Step is the unit of navigation: it groups elements into a single screen, appears in the progress chevron, can be shown or hidden conditionally, and blocks Next until its required elements validate.
Why the other options are wrong: Steps do not create server transactions — actions do. Compilation is a separate activation-time process. Steps are required for every OmniScript, on or off platform.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: D. Caching the action's input means a repeated call with the same inputs is served from cache instead of hitting the server again, which is the standard remedy for redundant reference-data lookups in a navigable script.
Why the other options are wrong: Fire and Forget suppresses the response, which is wrong when the data is needed. A repeatable Block would multiply the calls. An HTTP Action does not reduce the number of calls.
Exam domain: OmniScripts
Show explanation & topic
Correct answer: A. FlexCard states are evaluated in sequence against the card's data. The first state whose condition evaluates true is rendered; if none match, the default state is used. Ordering the states therefore controls precedence.
Why the other options are wrong: States are mutually exclusive at render time, not stacked. Element count and user selection play no part in state resolution.
Exam domain: FlexCards
Show explanation & topic
Correct answer: B. The FlexCard designer exposes several data source types — Data Mapper, Integration Procedure, Apex remote class, SOQL, SOSL, REST, and custom — so the same display component can be bound to on-platform or external data.
Why the other options are wrong: Restricting the answer to a single source type understates the designer's options. Parent-supplied data is one input among several, not the only one.
Exam domain: FlexCards
Show explanation & topic
Correct answer: C. Activation compiles the FlexCard definition into a Lightning web component and registers it so it becomes available as a target in Lightning App Builder, Experience Builder, and other FlexCards or OmniScripts.
Why the other options are wrong: FlexCards compile to LWC, not Aura. They are not exported to static HTML by activation, and activation does far more than lock editing.
Exam domain: FlexCards
Show explanation & topic
Correct answer: D. A Flyout renders a child FlexCard or an OmniScript in an overlay or inline region while the parent card stays on screen — exactly the in-place drill-down described.
Why the other options are wrong: A Navigate action takes the user away from the page. Update and Delete act on records and do not present a detail view.
Exam domain: FlexCards
Show explanation & topic
Correct answer: A. When a FlexCard is placed on a record page, the page supplies the record Id as context. The developer maps it into the data source input with a merge field so the Data Mapper or Integration Procedure filters on the right record.
Why the other options are wrong: There is no implicit 'most recent record' behaviour. Hard-coding an Id would break the card for every other record. URL parameters are one possible source, not the only one.
Exam domain: FlexCards
Show explanation & topic
Correct answer: B. FlexCards support a publish/subscribe event model. Having the child publish an event that the parent card listens for lets the card re-run its data source and re-render without a full page reload.
Why the other options are wrong: A full page reload works but discards user context and is a poor experience. Changing the data source type does not affect refresh timing. Disabling cache does not by itself trigger a re-fetch.
Exam domain: FlexCards
Show explanation & topic
Correct answer: C. Marking the card repeatable and pointing it at the list node causes the runtime to render one card instance per item in the array, which is the supported pattern for variable-length collections.
Why the other options are wrong: Creating a state per count is unmaintainable. Flattening to a string loses structure and interactivity. Loop Blocks are Integration Procedure elements, not FlexCard elements.
Exam domain: FlexCards
Show explanation & topic
Correct answer: D. A Turbo Extract removes processing overhead for simple single-object reads, and caching avoids repeating the call for data that is effectively static within the caching window — together they target the actual cost.
Why the other options are wrong: Extra states do not reduce the server call. An OmniScript is a different component type and would not be faster. Repositioning the card changes perceived order, not load time.
Exam domain: FlexCards
Show explanation & topic
Correct answer: A. OmniStudio provides four Data Mapper types: Extract and Turbo Extract read Salesforce data, Transform reshapes JSON without touching the database, and Load writes data back to Salesforce.
Why the other options are wrong: The other groupings describe generic CRUD or invented categories and do not correspond to OmniStudio Data Mapper types.
Exam domain: Data Mappers (DataRaptors)
Show explanation & topic
Correct answer: B. Turbo Extract is deliberately narrow: one sObject, no formula processing, minimal output restructuring. That restriction is what makes it noticeably faster than a standard Extract.
Why the other options are wrong: Multi-object retrieval requires a standard Extract. Writing is the Load type's job. Field-level security handling is not unique to Turbo Extract.
Exam domain: Data Mappers (DataRaptors)
Show explanation & topic
Correct answer: C. A Transform takes an input JSON structure and maps it to a different output structure — renaming nodes, changing nesting, applying formulas — with no database interaction at all.
Why the other options are wrong: Extract and Turbo Extract both read Salesforce data. Load writes to Salesforce. Neither is needed for a pure JSON-to-JSON reshape.
Exam domain: Data Mappers (DataRaptors)
Show explanation & topic
Correct answer: D. A Load definition supports linking a child object's lookup field to a parent created in an earlier step of the same definition, so the runtime resolves the new parent Id and stamps it on the children.
Why the other options are wrong: Two separate Data Mappers add a round trip and manual Id plumbing. A post-insert automation is unnecessary. Load definitely supports related-record creation.
Exam domain: Data Mappers (DataRaptors)
Show explanation & topic
Correct answer: A. Formula support is available in Extract, Transform, and Load definitions, allowing derived values such as concatenations, conditionals, and date arithmetic to be produced inside the Data Mapper.
Why the other options are wrong: Turbo Extract is the type that omits formula support. Restricting formulas to Transform, or to Integration Procedures, understates where they are available.
Exam domain: Data Mappers (DataRaptors)
Show explanation & topic
Correct answer: B. Data Mapper Extract definitions map each source field to an output JSON path. Setting that path to customerName produces the expected structure directly and keeps the contract in one place.
Why the other options are wrong: A Set Values workaround duplicates logic in every consumer. Renaming a standard field is not possible and would affect the whole org. A formula field adds unnecessary metadata for a presentation concern.
Exam domain: Data Mappers (DataRaptors)
Show explanation & topic
Correct answer: C. Data Mapper reads run in the context of the calling user, so fields the user cannot see are omitted. Differences between two users almost always trace back to object permissions and field-level security.
Why the other options are wrong: Data Mappers are not gated by an activation step in the way OmniScripts are. A Transform cannot read records at all. The OmniScript version does not change which fields a user can see.
Exam domain: Data Mappers (DataRaptors)
Show explanation & topic
Correct answer: D. A standard Extract can define multiple extract steps across related objects, nest the results, and apply a formula to compute the total — none of which Turbo Extract supports.
Why the other options are wrong: Turbo Extract is single-object and formula-free. Load writes rather than reads. Transform has no ability to query Salesforce data in the first place.
Exam domain: Data Mappers (DataRaptors)
Show explanation & topic
Correct answer: A. Integration Procedures run entirely on the server. Consolidating several actions into one call cuts network round trips, which is the main performance lever available to OmniStudio developers.
Why the other options are wrong: Step count is a UI design choice. Activation is still required for the OmniScript. Nothing about Integration Procedures elevates a user's field access.
Exam domain: Integration Procedures
Show explanation & topic
Correct answer: B. The Response Action defines the payload sent back to the caller, letting the developer return a trimmed, purpose-built structure rather than every intermediate node the procedure produced.
Why the other options are wrong: Set Values stages data internally. A Remote Action calls Apex. A Cache Block stores results for reuse; it does not shape the response.
Exam domain: Integration Procedures
Show explanation & topic
Correct answer: C. A Try-Catch Block lets the developer wrap the risky call and define what happens when it fails — returning a default payload, logging, or raising a friendly message — instead of letting the error propagate.
Why the other options are wrong: A Loop Block iterates over collections. A Cache Block stores results. An Assert element checks a condition and stops execution rather than recovering from failure.
Exam domain: Integration Procedures
Show explanation & topic
Correct answer: D. A Cache Block stores the result of the elements it contains for a configured duration and scope, so subsequent executions reuse the stored value instead of repeating the underlying work.
Why the other options are wrong: Loop, Try-Catch, and Response Actions serve iteration, error handling, and output shaping respectively — none of them avoids the repeat call.
Exam domain: Integration Procedures
Show explanation & topic
Correct answer: A. A Loop Block iterates over a list node and executes its child elements once per item, which is exactly the per-item action invocation described.
Why the other options are wrong: A Matrix Action reads a calculation matrix. A List Action manipulates list structures rather than driving repeated child execution. Chainable relates to returning results incrementally.
Exam domain: Integration Procedures
Show explanation & topic
Correct answer: B. Chainable execution breaks the work into linked transactions so partial results can be returned as they become available, which keeps long-running procedures responsive and reduces the risk of hitting per-transaction limits.
Why the other options are wrong: It is not a mechanism for unbounded recursion, it does not restrict who may call the procedure, and no OmniStudio setting removes platform governor limits.
Exam domain: Integration Procedures
Show explanation & topic
Correct answer: C. Each Integration Procedure element accepts an execution conditional formula. When the formula evaluates false the element is skipped, which is the declarative way to branch server-side logic.
Why the other options are wrong: Try-Catch handles errors, not conditions. Cache Blocks control reuse. Navigate Actions are OmniScript UI elements and cannot branch server-side execution.
Exam domain: Integration Procedures
Show explanation & topic
Correct answer: D. Configuring the call as non-blocking — fire and forget — dispatches the request and lets the OmniScript continue immediately, which is appropriate when the caller has no use for the response.
Why the other options are wrong: Chainable still returns results to the caller. A Cache Block does not change blocking behaviour. Clearing a JSON path does not stop the client from waiting.
Exam domain: Integration Procedures
Show explanation & topic
Correct answer: A. OmniOut packages LWC-based OmniScripts and FlexCards so they can be built and hosted on a non-Salesforce web server while still communicating with the Salesforce org for data.
Why the other options are wrong: Data Mapper export and org-to-org migration are handled by DataPacks and IDX tooling. PDF generation is a separate document-generation capability.
Exam domain: Web Page Integration
Show explanation & topic
Correct answer: B. OmniOut only supports the LWC runtime, the component must be activated to be packaged, and because the hosting domain is external, cross-origin access to the Salesforce org has to be explicitly authorised.
Why the other options are wrong: There is no Visualforce conversion involved. Reusability is unrelated to off-platform hosting. Data Mappers continue to work through the authenticated connection.
Exam domain: Web Page Integration
Show explanation & topic
Correct answer: C. Lightning App Builder exposes a component for embedding OmniScripts. The administrator identifies the target script through its type, sub-type, and language, and the active version is served at runtime.
Why the other options are wrong: There is no XML-paste mechanism. An iframe wrapper is unnecessary and loses page context. Lightning pages are configured declaratively, not by hand-editing Aura markup.
Exam domain: Web Page Integration
Show explanation & topic
Correct answer: D. Activated FlexCards are available as components in Experience Builder. Because the site runs under its own user context, the developer must also confirm the relevant profile can read the objects and fields the card's data source touches.
Why the other options are wrong: Rebuilding as static HTML loses the data binding. OmniOut targets non-Salesforce hosts and is unnecessary here. A public REST endpoint would bypass the platform's sharing model.
Exam domain: Web Page Integration
Show explanation & topic
Correct answer: A. Newport is the design system intended for customer-facing, externally styled experiences where inheriting Lightning Experience's look is undesirable. Inside Lightning Experience, SLDS is the natural choice.
Why the other options are wrong: Repeatable blocks and data source type are functional concerns and have no bearing on which design system is applied.
Exam domain: Web Page Integration
Show explanation & topic
Correct answer: B. An OmniScript placed on a record page receives that record's Id as context. Mapping it into the Data Mapper Extract input lets the script seed itself with the correct record's data.
Why the other options are wrong: There is no automatic last-viewed-record behaviour. A hard-coded Id breaks the page for every other record. URL parameters are one possible source but not the mechanism used on a record page.
Exam domain: Web Page Integration
Show explanation & topic
Correct answer: C. IDX Workbench is the desktop tool provided for moving OmniStudio metadata between orgs and between an org and a source-control repository, with a companion build tool for automated pipelines.
Why the other options are wrong: Data Loader moves record data, Schema Builder visualises the data model, and Setup Audit Trail records configuration changes — none migrate OmniStudio components.
Exam domain: OmniStudio Tools
Show explanation & topic
Correct answer: D. DataPacks serialise OmniStudio component definitions — and their dependencies — into a portable form that can be exported from one org and imported into another, typically through IDX tooling.
Why the other options are wrong: DataPacks are not a licensing construct, a cache partition, or a sample data set.
Exam domain: OmniStudio Tools
Show explanation & topic
Correct answer: A. Standard Runtime executes OmniStudio components against native platform metadata instead of the managed package's custom objects, which brings OmniStudio closer to core platform tooling.
Why the other options are wrong: The point of Standard Runtime is to move away from managed-package dependency. It is not FlexCard-only, and versioning behaviour is retained.
Exam domain: OmniStudio Tools
Show explanation & topic
Correct answer: B. Integration Procedures, like OmniScripts and FlexCards, must be activated in the target org before the runtime will serve them. Deployment alone leaves the component inactive, so calls to it fail.
Why the other options are wrong: Components are deployable and do not need rebuilding. Integration Procedures migrate normally. Licensing is not granted per Data Mapper.
Exam domain: OmniStudio Tools
Answered 0 of 50 questions. You can submit at any time.
How to Study for the OmniStudio Developer Exam
Build, don't just read
OmniStudio questions tend to describe a requirement and ask which component or setting satisfies it. That is hard to answer from notes alone. Build a small end-to-end flow in a developer org — a FlexCard that launches an OmniScript, an OmniScript that reads with a Data Mapper Extract and saves through an Integration Procedure — and the distinctions between the components stop being abstract.
Know where each type of logic belongs
A recurring theme in the exam is choosing the right home for a piece of logic: a conditional view versus a branch, a Turbo Extract versus a full Extract, a chain of client-side actions versus one Integration Procedure. Whenever you learn a new element, note what it is cheaper or safer than, and under what conditions.
Practise the activation and migration lifecycle
Several scenario questions hinge on versioning and activation, or on what has to travel with a component when it moves to another org. Deploy a component with IDX Workbench at least once so the dependency and activation steps are familiar rather than theoretical.