Last updated: May 2026
Plat-Con-201 — Salesforce Certified OmniStudio Consultant
Test your knowledge with official exam-style questions
Questions and options are shuffled each attempt
▶Salesforce Certified Omnistudio Consultant — Practice Exam Set 1: All Questions & Explanations
Full question text, answer options, and explanations for this practice set — a spoiler-free alternative is the interactive quiz above for scored, shuffled practice.
1. What is Salesforce OmniStudio?
- A. A reporting and analytics platform for Salesforce data
- B. A suite of declarative, no-code/low-code tools for building customer-facing guided interactions, data integration, and UI components(correct)
- C. A third-party middleware platform for Salesforce integrations
- D. A Salesforce marketing automation tool for email campaigns
Explanation: OmniStudio (originally Vlocity) is Salesforce's suite of industry-specific, declarative digital engagement tools: OmniScripts (guided user interactions), DataRaptors (data mapping), FlexCards (contextual UI components), and Integration Procedures (server-side orchestration). It is primarily used in industries like Communications, Insurance, Healthcare, and Financial Services for complex guided selling, service, and onboarding processes.
2. Which OmniStudio tool is used to build a guided, multi-step digital interaction for users (such as a quote wizard or service request form)?
- A. FlexCard
- B. Integration Procedure
- C. OmniScript(correct)
- D. DataRaptor
Explanation: OmniScript is the OmniStudio tool for building guided, multi-step digital interactions — wizards, forms, and processes that walk users (or customers in self-service portals) through complex workflows step by step. OmniScripts can include conditional logic, data lookups, validation, and integration calls. They render as responsive HTML UI components.
3. OmniStudio tools work together to deliver guided processes. Which two OmniStudio components can be called from within an OmniScript? (Choose 2)
- A. DataRaptor — to read from or write to Salesforce records as part of the OmniScript flow(correct)
- B. Integration Procedure — to orchestrate multiple server-side data operations (Apex, DataRaptor, REST API calls) as a single action(correct)
- C. FlexCard — to display data contextually inside an OmniScript step
- D. Salesforce Report — to embed a tabular data report within an OmniScript step
Explanation: Within an OmniScript, you can invoke: DataRaptors (using the DataRaptor Extract/Transform/Load action elements) to read and write Salesforce data; Integration Procedures (using the Integration Procedure action element) to run complex server-side orchestrations involving multiple data sources. FlexCards are standalone UI components embedded in Lightning pages, not called within OmniScript steps. Salesforce Reports are not callable from OmniScript.
4. OmniStudio uses a JSON data model internally. What does this mean for data passed between OmniScript steps?
- A. Data must be converted from Salesforce objects to relational tables before being used in OmniScript
- B. All data within an OmniScript is maintained in a single JSON object (the DataJSON) that accumulates inputs, outputs, and context throughout the process(correct)
- C. OmniStudio only supports flat, non-nested data structures
- D. Each OmniScript step creates a new separate JSON object that is not accessible in other steps
Explanation: OmniStudio uses a centralized JSON object (often called DataJSON or the OmniScript data store) that persists throughout the entire OmniScript session. User inputs, DataRaptor outputs, and Integration Procedure responses all accumulate in this JSON structure. Later steps can reference values from earlier steps using JSON path notation (e.g., `%SomeStep:fieldName%`). This unified JSON model makes data flow between steps seamless.
5. Which Salesforce product introduced OmniStudio capabilities to the Salesforce platform?
- A. Salesforce Industries (acquired Vlocity)(correct)
- B. Salesforce Marketing Cloud
- C. MuleSoft Anypoint Platform
- D. Salesforce Platform Events
Explanation: OmniStudio originated as a product called Vlocity, which was built on Salesforce and specialized in industry-specific cloud applications (Communications, Insurance, Healthcare, Government). Salesforce acquired Vlocity in 2020 and rebranded its toolset as OmniStudio, incorporating it into Salesforce Industries products. Today OmniStudio is available across multiple Salesforce Industries clouds.
6. What is a 'Step' in an OmniScript?
- A. A server-side data query operation
- B. A page or screen in the OmniScript wizard that groups related UI elements and is presented to the user as a distinct stage of the process(correct)
- C. A saved checkpoint that allows the user to resume the process later
- D. An integration call to an external REST API
Explanation: A Step in OmniScript represents one page or screen in the guided interaction. Each Step groups related input elements (text fields, dropdowns, checkboxes, lookups) and is presented to the user as a distinct stage in the process wizard. Steps can have conditional visibility and navigation logic. A typical OmniScript might have steps like 'Customer Information', 'Product Selection', 'Review', and 'Confirmation'.
7. In an OmniScript, which element type allows the user to select from a list of options that are dynamically fetched from a Salesforce object?
- A. Select (picklist) with hardcoded values
- B. Lookup — a dynamic search-as-you-type element that queries Salesforce records(correct)
- C. Type Ahead — searches a pre-populated set of static values
- D. Multi-Select — allows selecting multiple values from a static list
Explanation: The Lookup element in OmniScript provides a dynamic search field that queries Salesforce records (or custom DataRaptor extracts) as the user types, displaying matching results. It is equivalent to a Salesforce lookup field and allows selecting related records (e.g., selecting an Account when creating a Case in an OmniScript). The Type Ahead element also provides search but works with locally cached or pre-fetched options.
8. An OmniScript Step should only appear when the user selects 'Yes' to a Yes/No question on a previous Step. Which feature implements this?
- A. Step Navigation rules using the OmniScript's Conditional View property
- B. A JavaScript function that programmatically shows/hides the step
- C. A Condition Rule on the Step element that evaluates the value of the Yes/No element and controls the step's visibility(correct)
- D. Creating separate OmniScripts for Yes and No paths
Explanation: OmniScript Steps and Elements support Condition Rules (also called Conditional View) — declarative rules that show or hide a step/element based on the current value of another element in the DataJSON. For example, a Condition Rule on Step 2 can check: 'Show when `%Step1:eligibleForUpgrade%` equals true'. This enables conditional navigation without code. Note: Steps shown/hidden via conditions may still appear in the step indicator unless navigation conditions are also configured.
9. An OmniScript needs to pre-populate a field with the current Account's Name when launched from an Account record page. Which two configurations achieve this? (Choose 2)
- A. Pass the Account record Id as an input parameter to the OmniScript when it is launched(correct)
- B. Use a DataRaptor Extract action at the start of the OmniScript to fetch the Account Name using the passed-in Id(correct)
- C. The OmniScript automatically inherits all page record fields when embedded in a Lightning page
- D. Use a hard-coded formula element to display the Account Name
Explanation: To pre-populate an OmniScript with record context: (1) Configure the OmniScript launch to receive the record ID as an input parameter (e.g., via FlexCard action, Quick Action, or Experience Site); (2) At the start of the OmniScript, add a DataRaptor Extract action that uses the received Account ID to query the Account Name and other fields, pre-populating the relevant elements. OmniScripts do not automatically inherit page record data — it must be explicitly passed.
10. In an OmniScript, what is the purpose of the 'Set Values' element?
- A. To save the current step's data to Salesforce records
- B. To programmatically set the value of OmniScript element data nodes without user input(correct)
- C. To display computed values as read-only text to the user
- D. To pass values from the OmniScript to an external REST API
Explanation: The Set Values element in OmniScript is used to programmatically assign values to data nodes in the DataJSON without requiring user input. This is useful for setting default values, computing derived values, transforming data formats, or copying values between different nodes in the JSON. It runs as an action (server-side or client-side) and does not display anything to the user.
11. An OmniScript needs to repeat a group of elements (like line items in an order) for a variable number of entries. Which element supports this repeatable section?
- A. A Group element nested inside a Loop element
- B. A Repeat element that wraps the group of fields and allows dynamic addition/removal of rows(correct)
- C. Multiple copies of the same Step for each possible line item
- D. A DataTable element that renders editable rows in a table
Explanation: The Repeat (or Group and Repeat) element in OmniScript creates a dynamic, user-expandable group of elements — similar to an editable row in a table. Users can add new rows (instances of the element group) or remove existing ones. The data is stored as a JSON array. This is the standard way to handle variable-length collections (order line items, contacts to add, products selected) in an OmniScript without knowing the count in advance.
12. What are the four types of DataRaptor?
- A. Extract, Transform, Load, Turbo Extract(correct)
- B. Read, Write, Update, Delete
- C. Query, Insert, Update, Upsert
- D. Get, Post, Put, Delete
Explanation: The four DataRaptor types are: Extract (reads data from Salesforce objects using SOQL-like configuration), Transform (transforms data between JSON structures without Salesforce I/O), Load (writes data to Salesforce objects — insert, update, upsert, or delete), and Turbo Extract (a faster, read-only extract that directly queries Salesforce for simple data retrieval without the full DataRaptor engine overhead).
13. When would you use a DataRaptor Turbo Extract instead of a regular DataRaptor Extract?
- A. When you need to write data to multiple related objects simultaneously
- B. When you need a faster, lightweight read of Salesforce data with simple SOQL-like queries (without complex field mapping transformations)(correct)
- C. When you need to transform data between two JSON structures without any Salesforce I/O
- D. When you need to query external systems outside of Salesforce
Explanation: DataRaptor Turbo Extract is optimized for speed on simple read operations. It directly executes SOQL and returns results with minimal processing, making it significantly faster than a full DataRaptor Extract for straightforward record retrieval use cases. Use Turbo Extract for read-only operations where you don't need complex field mapping or data transformation. Use regular Extract when you need to traverse relationships, apply transformations, or map fields to a different JSON structure.
14. A DataRaptor Load is being configured to create a new Case and related CaseComment in a single operation. Which two features of DataRaptor Load support writing to multiple related objects? (Choose 2)
- A. Using Bundle Bundles to define parent-child relationships within a single DataRaptor Load
- B. Configuring multiple Output Objects in a single DataRaptor Load, with the child object's foreign key referencing the parent object's created ID(correct)
- C. DataRaptor Load can only write to one object at a time; a separate DataRaptor for each object is required
- D. Using the Save Action field on each Output Object to specify Insert for the parent and Insert for the child with the parent's ID reference(correct)
Explanation: DataRaptor Load supports multiple Output Objects in a single configuration for writing to parent and child objects in sequence. The child object's Output Object configuration can reference the parent object's generated record ID using a special key reference. The Save Action on each Output Object (Insert, Update, Upsert, or Delete) determines the DML operation. This allows a single DataRaptor Load to create the Case and its related CaseComment in one execution.
15. A DataRaptor Transform is used to:
- A. Read data from a Salesforce object and transform the JSON structure
- B. Convert data from one JSON structure to another without any Salesforce database I/O(correct)
- C. Transform Salesforce record data into a CSV format for export
- D. Transform an OmniScript's DataJSON into a Salesforce Report format
Explanation: DataRaptor Transform operates purely on JSON data — it takes input JSON (from an OmniScript DataJSON, Integration Procedure output, or other source) and maps/transforms it to a different output JSON structure. It performs NO Salesforce DML or SOQL. Common uses include restructuring API response data before displaying it, reformatting OmniScript data before calling a DataRaptor Load, or aggregating data from multiple sources into a single structured output.
16. A DataRaptor Extract is configured with a filter on the Account object: 'Id = :recordId'. The `:recordId` notation means:
- A. The literal string ':recordId' is used as the filter value
- B. ':recordId' is a runtime input parameter — its value is supplied when the DataRaptor is called from an OmniScript or Integration Procedure(correct)
- C. recordId is a global Salesforce variable containing the current page's record ID
- D. ':recordId' triggers the DataRaptor to automatically use the logged-in user's ID
Explanation: In DataRaptor Extract filter conditions, the `:parameterName` notation (colon prefix) indicates a runtime input parameter. The actual value is passed to the DataRaptor when it is called from an OmniScript action, Integration Procedure, or FlexCard. For example, an OmniScript passes `recordId` from its context (or input parameters) to the DataRaptor, which uses it to filter records. This parameterization makes DataRaptors reusable across different contexts.
17. A consultant is designing an OmniScript that saves data to multiple Salesforce objects on the final step. Which two approaches minimize the number of DML operations and improve performance? (Choose 2)
- A. Use a single DataRaptor Load configured to write to all required objects in one execution(correct)
- B. Use an Integration Procedure that orchestrates multiple DataRaptor Loads server-side in a single round trip from the client(correct)
- C. Use one DataRaptor Load per object, called sequentially from separate OmniScript steps
- D. Call Apex classes directly from the OmniScript for each object write
Explanation: Performance best practices for multi-object writes: (1) A single DataRaptor Load can write to multiple objects (parent-child) in one call, reducing round trips; (2) An Integration Procedure orchestrates multiple server-side operations (DataRaptor Loads, Apex calls) in a single server call from the client OmniScript, dramatically reducing client-server round trips compared to sequential client-side action elements. Multiple sequential DataRaptor Loads from OmniScript steps make multiple round trips. Direct Apex calls are available but bypass OmniStudio's declarative model.
18. What is a FlexCard in OmniStudio?
- A. A credit card payment processing component
- B. A configurable, data-driven UI component that displays contextual information and provides action buttons for a specific record(correct)
- C. A card-based layout template for OmniScript steps
- D. A scheduling component for field service appointments
Explanation: A FlexCard is an OmniStudio UI component that displays contextual data for a record or set of records and provides quick action buttons. FlexCards can be stacked (child FlexCards within parent FlexCards), use DataRaptor or Integration Procedure data sources, and launch OmniScripts or other actions from their buttons. They are placed on Lightning record pages (or Experience Cloud sites) to give agents a contextual 360-degree view with actionable options.
19. A FlexCard needs to display Account and related Contact data simultaneously. What is the recommended data source approach?
- A. Two separate DataRaptor Extracts, one for Account and one for Contact, called sequentially
- B. A single DataRaptor Extract that uses relationship traversal to retrieve both Account and related Contact fields in one query(correct)
- C. A Salesforce Report embedded in the FlexCard
- D. Two separate FlexCards side-by-side on the Lightning page
Explanation: A DataRaptor Extract can traverse Salesforce relationships to retrieve fields from parent and child objects in a single query configuration. For a FlexCard showing Account and related Contact data, a single DataRaptor Extract that joins Account and Contact (using relationship traversal in the Field Mapping configuration) retrieves all needed data in one server call. This is more performant than two separate DataRaptor calls.
20. A FlexCard is configured to show a list of related orders for an Account. Which two FlexCard features support displaying multiple records as a list? (Choose 2)
- A. Child FlexCard — a nested FlexCard that iterates over a collection of records from the parent's DataSource(correct)
- B. State styling — conditionally changes the card's visual style based on field values in each record row
- C. FlexCard Data Table state — displays the collection data in a tabular format within the FlexCard(correct)
- D. A Repeat section in the FlexCard template that loops over each record in the data collection
Explanation: FlexCards support displaying collections of records in two primary patterns: (1) Child FlexCards — nested FlexCards that iterate over a collection from the parent's data source, rendering one card instance per record; (2) FlexCard states — one state can be configured as a Data Table (list/grid view) that renders the collection in tabular format with columns. State styling is for visual formatting of individual records, not collection display. Repeat sections are an OmniScript concept.
21. A FlexCard action button should launch an OmniScript to capture additional information when clicked. Which action type on the FlexCard button supports this?
- A. Navigate action — navigates to the OmniScript URL
- B. OmniScript action type on the FlexCard button — launches the specified OmniScript in a modal or panel(correct)
- C. Apex action — calls an Apex method that opens the OmniScript
- D. A Quick Action configured separately on the object page layout
Explanation: FlexCard action buttons have an 'OmniScript' action type that directly launches a specified OmniScript. The FlexCard automatically passes the current record's ID and other context as input parameters to the OmniScript. The OmniScript opens in a modal or slide-out panel (configurable). This is the native, no-code way to connect FlexCards to guided OmniScript interactions — no custom Apex or navigation configuration needed.
22. What is the primary advantage of using an Integration Procedure instead of calling individual DataRaptors sequentially from an OmniScript?
- A. Integration Procedures support more Salesforce objects than DataRaptors
- B. Integration Procedures execute all their steps server-side in a single round-trip from the client, reducing network latency and improving performance(correct)
- C. Integration Procedures can write to external systems; DataRaptors can only write to Salesforce
- D. Integration Procedures provide a visual UI for end users to monitor the execution
Explanation: Integration Procedures are server-side orchestration tools. When called from an OmniScript, all the Integration Procedure's steps (DataRaptor calls, Apex calls, HTTP actions, conditional logic) execute in a single server-side process with a single client-to-server round trip. In contrast, calling individual DataRaptors sequentially from an OmniScript client creates a round trip per action, introducing significant latency. This is the primary architectural advantage of Integration Procedures.
23. Which Integration Procedure element is used to call an external REST API endpoint?
- A. DataRaptor Action element
- B. HTTP Action element(correct)
- C. Apex Remote element
- D. External Service element
Explanation: The HTTP Action element in Integration Procedures is used to make outbound HTTP calls to external REST APIs. It supports GET, POST, PUT, PATCH, DELETE methods and can pass input data as request body or URL parameters, and map the response JSON to the Integration Procedure's data context. Named Credentials can be used to manage authentication for the external endpoint. This enables OmniStudio to integrate with third-party APIs without custom Apex callouts.
24. An Integration Procedure needs to retrieve Account data, call a pricing API, and save the result. If the pricing API call fails, the saved data should not be written. Which two features enable transactional control? (Choose 2)
- A. Use a Conditional element after the HTTP Action to check for error response and branch to a Response element that returns an error without executing the DataRaptor Load(correct)
- B. Enable 'Throw Error on Fault' on the HTTP Action so any non-200 response throws an exception, preventing subsequent DataRaptor Load from executing(correct)
- C. Integration Procedures automatically roll back all changes if any step fails
- D. Use a Try element wrapping the HTTP Action and DataRaptor Load, with a Catch element to handle errors and skip the DataRaptor Load
Explanation: Integration Procedures do NOT automatically rollback Salesforce DML if a step fails mid-execution. Transactional control requires explicit design: (1) Using a Conditional element to check the HTTP response status and branch to an error response path BEFORE executing the DataRaptor Load; (2) Configuring the HTTP Action to throw an error on non-200 responses, which stops execution of subsequent steps (including the DataRaptor Load). Both approaches prevent the write from occurring after an API failure.
25. An Integration Procedure needs to call an Apex class for custom business logic that cannot be performed with DataRaptors or HTTP Actions. Which element type enables this?
- A. HTTP Action element with the Salesforce Apex REST endpoint URL
- B. Apex Remote element — calls an @InvocableMethod or @AuraEnabled Apex method directly from the Integration Procedure(correct)
- C. DataRaptor Load with a custom trigger that calls the Apex method
- D. Integration Procedures cannot call Apex; only DataRaptors and HTTP Actions are supported
Explanation: The Apex Remote element in Integration Procedures (and OmniScript action elements) allows calling Apex class methods decorated with @InvocableMethod or @AuraEnabled directly from within the Integration Procedure's execution. This provides an escape hatch for complex custom logic that exceeds the capabilities of DataRaptors and HTTP Actions. The Apex method receives input from the Integration Procedure's data context and returns results back into the context.