2 packs: 15% off with code BUY2. 3 or more: 20% off with code BUY3.

Free Salesforce OmniStudio Developer Practice Questions

20 free Salesforce OmniStudio Developer practice questions from the CertStash pack of 80, each with the correct answer and a full explanation. The rule is the same for every exam: ten free on the product page, 20 free here, all 80 in the pack, and each step includes the one before it.

Question 1

On a FlexCard canvas, several fields display with Salesforce data, but one of the fields shows only the label. What could cause this?

  1. In the FlexCard state, the Field type for the field does not match the type in the Salesforce record.
  2. The Field name in the FlexCard state does not match the DataRaptor Extract's Output JSON Path name.
  3. There are No Test Data Test Parameters configured.
  4. In the Setup Panel, {recordId} is misspelled in the Data Source Input Map.
Show answer and explanation

Correct answer: B. The Field name in the FlexCard state does not match the DataRaptor Extract's Output JSON Path name.

When a FlexCard field displays only its label without data, the most common cause is a mismatch between the field name referenced in the FlexCard state and the actual output path from the DataRaptor Extract. If the field name doesn't match the DataRaptor's Output JSON Path, the system cannot bind the data to that field, resulting in an empty display while the label renders correctly.

Why the other options are wrong

  • A. Field type mismatches typically cause rendering or validation errors, not empty data displays.
  • C. Test Data Test Parameters affect preview functionality, not production card rendering.
  • D. A misspelled {recordId} would prevent the entire data source from loading, affecting all fields, not just one.

Question 2

A developer is creating a FlexCard for a new Community page. The FlexCard will display case information along with actions to close the case and update the case, and it will be styled using the Community's theme. What must the developer do to configure the FlexCard for deployment in a Community?

  1. Set the Deployment property in Card Configuration to "Community"
  2. Add the FlexCard's API name to the FlexCard Player component
  3. Configure the Component Visibility in the Custom Component
  4. Set the Target property in Publish Options to "CommunityPage"
Show answer and explanation

Correct answer: D. Set the Target property in Publish Options to "CommunityPage"

To deploy a FlexCard in a Community, the developer must set the Target property in Publish Options to 'CommunityPage'. This configuration ensures the FlexCard is properly packaged and published for use within a Community environment with appropriate theme styling integration.

Why the other options are wrong

  • A. There is no 'Deployment' property set to 'Community' in Card Configuration.
  • B. Adding the API name to the FlexCard Player component is not the deployment configuration step.
  • C. Component Visibility is for controlling when components display, not for Community deployment configuration.

Question 3

In an Integration Procedure, a developer needs to perform a multi-step calculation on every element of an array. Based on best practices, what two methods are recommended? (Choose two.)

  1. Use a Matrix Action to call a Calculation Matrix.
  2. Use a Calculation Action to call a Calculation Procedure.
  3. Use a Set Values Element inside a Loop Block.
  4. Use a List Action to merge the array elements together.
Show answer and explanation

Correct answer: B, C. Use a Calculation Action to call a Calculation Procedure; Use a Set Values Element inside a Loop Block.

For multi-step calculations on array elements in an Integration Procedure, best practices recommend using a Calculation Action to call a Calculation Procedure (which handles complex logic) or using a Set Values Element inside a Loop Block (which iterates through each array element). These approaches allow sequential processing of each element with proper state management.

Why the other options are wrong

  • A. Matrix Actions are for data transformation mapping, not for performing sequential calculations on array elements.
  • D. List Actions merge arrays but do not perform calculations on individual elements.

Question 4

A communications provider wants to enable their customers to troubleshoot mobile devices using a self-service portal. The developer builds an OmniScript to meet this requirement. The OmniScript must retrieve device details stored in the Asset object and then call an external system to send troubleshooting commands via REST API to the device. Which two OmniScript elements should the developer use to configure this functionality?

  1. SOQL Action
  2. HTTP Action
  3. REST API Action
  4. DataRaptor Extract Action
  5. Navigate Action
Show answer and explanation

Correct answer: B, D. HTTP Action; DataRaptor Extract Action

To retrieve device details from the Asset object and send REST API commands to an external system, the developer needs a DataRaptor Extract Action (or equivalent data retrieval method) to fetch Asset information and an HTTP Action to call the external REST API for sending troubleshooting commands.

Why the other options are wrong

  • A. SOQL Action could retrieve data but HTTP Action is the standard for REST API calls in OmniScript.
  • C. REST API Action is not a standard OmniScript element; HTTP Action is the correct component.
  • E. Navigate Action is for page navigation, not for data retrieval or external API communication.

Question 5

A developer is creating a FlexCard and needs to display additional information using a Flyout. Which two types of components can the developer embed in the flyout? (Choose two.)

  1. A DataRaptor
  2. An Integration Procedure
  3. An OmniScript
  4. A child FlexCard
Show answer and explanation

Correct answer: C, D. An OmniScript; A child FlexCard

FlexCard flyouts support embedding child FlexCards and OmniScripts. These components allow developers to display additional interactive content and capture user input within the flyout context while maintaining the FlexCard experience.

Why the other options are wrong

  • A. DataRaptors cannot be directly embedded in flyouts; they are data retrieval tools used by other components.
  • B. Integration Procedures are backend orchestration tools and cannot be directly embedded as flyout components.

Question 6

A developer creates a new FlexCard to display customer data and actions, such as updating billing information and changing the primary contact for the customer account. The FlexCard contains 10 fields and 5 actions. During testing, several fields display with the correct data, but one of the fields shows only the label. What could cause this?

  1. There are no test parameters configured.
  2. The field is null in the Salesforce record.
  3. {recordId} is misspelled in the Data Source Input Map.
  4. The fields have exceeded the maximum number allowed on the card.
Show answer and explanation

Correct answer: B. The field is null in the Salesforce record.

When a field displays only its label without data during testing, the field is null in the Salesforce record. The FlexCard correctly renders the field label but has no value to display because the source data contains a null value for that field.

Why the other options are wrong

  • A. Missing test parameters would prevent the card from loading any data at all, not display partial data.
  • C. A misspelled {recordId} would prevent the entire data source from loading and cause broader data retrieval failures.
  • D. FlexCards support more than 10 fields and 5 actions without hitting display limits.

Question 7

What OmniStudio tool pre-populates the data in a PDF used by an OmniScript?

  1. A Data Raptor Extract
  2. A Data Raptor Transform
  3. A DataRaptor Load
  4. A SOQL Query
Show answer and explanation

Correct answer: B. A Data Raptor Transform

A DataRaptor Transform pre-populates data in a PDF used by an OmniScript. The Transform component reshapes and maps data from various sources into the structure required by the PDF template, enabling automatic data population when the PDF is generated.

Why the other options are wrong

  • A. DataRaptor Extract retrieves data from source systems but does not format it for PDF population.
  • C. DataRaptor Load pushes data to external systems; it does not populate PDFs.
  • D. SOQL Query retrieves data but does not handle the transformation and formatting needed for PDF population.

Question 8

A developer is building an OmniScript and needs to retrieve data from many fields in a Salesforce record. Which OmniScript element does this?

  1. Lookup
  2. HTTP Action
  3. Select
  4. DataRaptor Extract Action
Show answer and explanation

Correct answer: D. DataRaptor Extract Action

DataRaptor Extract Action is the OmniScript element specifically designed to retrieve data from multiple fields in a Salesforce record. It queries the record and extracts the specified fields, making it the correct choice for bulk field retrieval.

Why the other options are wrong

  • A. Lookup elements retrieve data from a single field or limited related records, not multiple fields comprehensively.
  • B. HTTP Action calls external APIs rather than retrieving data from Salesforce records.
  • C. Select elements present options to users for selection, they do not retrieve record data.

Question 9

An OmniScript displays data from an API using an Integration Procedure, but all of the data is missing. What two errors could cause this? (Choose two.)

  1. The API url is not allowlisted in Salesforce.
  2. The JSON sent from the Integration Procedure Action does not match any of the Original Input for the Integration Procedure.
  3. The OmniScript has no active version.
  4. The Integration Procedure Preview Input Parameters do not match the JSON sent from the OmniScript.
Show answer and explanation

Correct answer: B, D. The JSON sent from the Integration Procedure Action does not match any of the Original Input for the Integration Procedure; The Integration Procedure Preview Input Parameters do not match the JSON sent from the OmniScript.

Option B is correct because mismatched JSON structure between the Integration Procedure Action output and the Integration Procedure's Original Input definition will prevent data from flowing correctly. Option D is correct because the Preview Input Parameters must match the JSON the OmniScript sends; if they don't match, the Integration Procedure won't receive the expected data structure. Both cause missing data in the OmniScript display.

Why the other options are wrong

  • A. API URL allowlisting affects connectivity but the question states the Integration Procedure is executing; missing data typically indicates data mapping issues rather than network-level problems.
  • C. An inactive OmniScript version would prevent the OmniScript from running entirely, not cause partial data loss from a functioning Integration Procedure.

Question 10

An Integration Procedure uses an HTTP action to make a REST API call. The response from the REST API must be converted into a specific XML structure before sending it as an input to another external web service. How should the developer configure the Integration Procedure to meet this requirement?

  1. Use a DataRaptor Transform to convert JSON to XML
  2. Use a Remote Action that calls the XMLStreamReader class
  3. Use a DataRaptor Extract and check the XML checkbox on the Output JSON Path
  4. Use a Remote Action that calls the XMLStreamWriter class
Show answer and explanation

Correct answer: A. Use a DataRaptor Transform to convert JSON to XML

DataRaptor Transform is the correct tool for converting JSON responses into different structures including XML. It provides mapping capabilities to restructure the HTTP response into the required XML format before passing it to the next external service.

Why the other options are wrong

  • B. XMLStreamReader is a Java class used for parsing XML, not for creating XML output from JSON.
  • C. DataRaptor Extract with XML checkbox is for outputting extracted data as XML, not for transforming incoming JSON to XML structures.
  • D. XMLStreamWriter is a Java class for writing XML streams, not the appropriate Integration Procedure configuration for this transformation task.

What people say about the full OmniStudio Developer pack 5.0 from 1

Thanks for your great Salesforce study materials.
BishopOmniStudio Developer

Question 11

A developer is troubleshooting an Integration Procedure with two elements: a Remote Action named FetchCart and a Response Action named ResponseCart. In Preview, what JSON node shows the data sent to the Remote Action?

  1. ResponseCart
  2. ResponseCartDebug
  3. FetchCartDebug
  4. FetchCart
Show answer and explanation

Correct answer: C. FetchCartDebug

In Integration Procedure Preview, the Debug node corresponding to each element shows the data relevant to that element. FetchCartDebug shows the data that was output by the FetchCart Remote Action, which represents what was sent to or processed by that Remote Action.

Why the other options are wrong

  • A. ResponseCart is the final output of the Response Action, not the data sent to the Remote Action.
  • B. ResponseCartDebug shows debug information for the Response Action, not the Remote Action input data.
  • D. FetchCart is the element name, not a debug node that displays data in Preview.

Question 12

A developer creates an Integration Procedure with a Set Values and a DataRaptor Extract Action that requires AccountId as a key. When the developer previews the Integration Procedure, the developer enters the AccountId correctly and executes the preview. The developer sees the data extracted by the DataRaptor in the Debug Log, but the response is empty. What is the likely cause of this issue?

  1. The Response cannot be previewed directly.
  2. A Response Action was not added to the Integration Procedure.
  3. The AccountId used for the preview is Invalid.
  4. The DataRaptor Action did not have the Add Response To Response JSON property set to true.
Show answer and explanation

Correct answer: B. A Response Action was not added to the Integration Procedure.

When the Debug Log shows data was extracted by the DataRaptor but the response is empty, the most likely cause is that a Response Action was not added to the Integration Procedure. The Response Action is required to format and return the extracted data as the output of the Integration Procedure.

Why the other options are wrong

  • A. Responses can be previewed directly in Integration Procedure previews when properly configured.
  • C. If the AccountId were invalid, the DataRaptor would not have extracted data as shown in the Debug Log.
  • D. While the Add Response To Response JSON property is important, the absence of a Response Action entirely is the more fundamental issue when the response is empty.

Question 13

A developer needs to configure a DataRaptor to retrieve data from a single object. The structure of the output data does not need to be changed. Following best practices, which type of DataRaptor should the developer use?

  1. DataRaptor Turbo Extract
  2. DataRaptor Extract
  3. DataRaptor Transform
  4. DataRaptor Load
Show answer and explanation

Correct answer: A. DataRaptor Turbo Extract

DataRaptor Turbo Extract is the best practice choice for retrieving data from a single object without needing to transform or restructure the output. It provides optimized performance for simple extraction scenarios.

Why the other options are wrong

  • B. DataRaptor Extract requires more configuration and is used when additional flexibility is needed beyond Turbo Extract capabilities.
  • C. DataRaptor Transform is used when the output data structure needs to be changed or reformatted from the source.
  • D. DataRaptor Load is used for writing or updating data in Salesforce objects, not for retrieving data.

Question 14

A customer has a new Engagement Manager who is going to be the new Primary Contact for the Account. What type of mapping does a DataRaptor Load use to create the new contact and then add it as the new Primary Contact?

  1. Lookup Key
  2. Relationship Query
  3. Lookup Mapping
  4. Linked Mapping
Show answer and explanation

Correct answer: D. Linked Mapping

Linked Mapping in a DataRaptor Load is used to establish relationships between records during creation. It allows the DataRaptor to create the new contact and then link it to the Account by establishing the relationship mapping that designates it as the Primary Contact.

Why the other options are wrong

  • A. Lookup Key is used to identify and match existing records for updates, not to establish new relationships during creation.
  • B. Relationship Query is used to retrieve related records in read operations, not to establish relationships during load operations.
  • C. Lookup Mapping is used to find and match records, not to create new relationship links between records.

Question 15

A developer is building an OmniScript and needs to retrieve data from a single field in a Salesforce record. Which OmniScript element does this?

  1. HTTP Action
  2. Lookup
  3. Select
  4. DataRaptor Post Action
Show answer and explanation

Correct answer: B. Lookup

The Lookup element in OmniScript is specifically designed to retrieve data from a single field in a Salesforce record. It performs a query against a specified object and field to return the requested value.

Why the other options are wrong

  • A. HTTP Action is used to call external APIs or web services, not to retrieve single Salesforce record fields.
  • C. Select is a user interface element for displaying dropdown options, not for retrieving data from records.
  • D. DataRaptor Post Action is used to send data to DataRaptors for more complex data operations, not simple single-field retrieval.

Question 16

Why would you version an Integration Procedure instead of cloning it?

  1. The new Integration Procedure will be used independently.
  2. The new Integration Procedure is Chainable.
  3. The new Integration Procedure will replace the existing one.
  4. The new Integration Procedure uses a Cache Block.
Show answer and explanation

Correct answer: C. The new Integration Procedure will replace the existing one.

Versioning an Integration Procedure is used when you need the new version to replace the existing one while maintaining version history and control. This allows you to manage updates to the same Integration Procedure across environments without losing the original.

Why the other options are wrong

  • A. If the new Integration Procedure is used independently, cloning would be more appropriate than versioning.
  • B. Whether an Integration Procedure is Chainable does not determine whether to version or clone it.
  • D. The presence of a Cache Block does not influence the decision to version versus clone an Integration Procedure.

Question 17

A developer creates a FlexCard that displays a contact's mailing address and passes the contact's postal code to a child FlexCard. When configuring text elements in the child FlexCard, what syntax should a developer use to refer to the contact s postal code?

  1. {postalcode}
  2. {Params.postalcode}
  3. {Parent.postalcode}
  4. {Records.postalcode}
Show answer and explanation

Correct answer: C. {Parent.postalcode}

When a parent FlexCard passes data to a child FlexCard, the child references that passed data using the {Parent.fieldname} syntax. The Parent object contains all parameters passed from the parent FlexCard, so the postal code would be accessed as {Parent.postalcode}.

Why the other options are wrong

  • A. Bare field names like {postalcode} do not access parent-passed parameters in child FlexCards.
  • B. The Params object syntax is not the standard way to reference parent FlexCard data in Salesforce.
  • D. The Records object references data from the current record context, not from parent FlexCard parameters.

Question 18

In an OmniScript, a developer needs to configure a Disclosure element to require user input only if the user already checked a Non-Disclosure Agreement checkbox. How should the developer configure the conditional view to meet this requirement?

  1. Set element to required if true
  2. Show element if true
  3. Set element to optional if false
  4. Disable read only if true
Show answer and explanation

Correct answer: A. Set element to required if true

To make a Disclosure element required only when a checkbox is checked, you configure the conditional view with 'Set element to required if true' and bind this condition to the checkbox value. When the checkbox is true, the element becomes required; when false, it is not required.

Why the other options are wrong

  • B. Show element if true controls visibility, not whether an element is required or optional.
  • C. Setting an element to optional if false is the inverse logic and does not directly configure the required state based on the checkbox.
  • D. Disable read only if true controls the read-only state of an element, not its required status.

Question 19

A developer needs to display the following information together on one FlexCard: account name, address, phone number, website primary contact first name, contact last name, address, phone number, email The account information must always be visible, and the contact information should only be visible as needed by the user. What approach should the developer use to display the contact Information on the card?

  1. Set the collapsible property on the block element
  2. Use a Datatable element
  3. Use a conditional FlexCard State
  4. Set the class="collapsible" on the block element
Show answer and explanation

Correct answer: A. Set the collapsible property on the block element

Setting the collapsible property on a block element allows account information in one block to always display while contact information in another collapsible block can be hidden or expanded as needed by the user. This provides the required visibility control.

Why the other options are wrong

  • B. Datatable elements display tabular data and don't provide the account-always-visible, contact-collapsible behavior needed.
  • C. Conditional FlexCard States show or hide entire card states; they don't allow selective collapsing of sections while keeping other sections permanently visible.
  • D. CSS class properties do not provide native FlexCard collapsible functionality; the collapsible property is the correct configuration.

Question 20

A developer is building a DataRaptor Load for an Integration Procedure used in an OmniScript. Based on best practices, how should the developer configure the Input JSON?

  1. Build the Input JSON node by node in an editor.
  2. Build the Input JSON node by node in the DataRaptor Designer.
  3. Copy the Input JSON from the OmniScript {Data} modal.
  4. Copy the Input JSON from the DataRaptor Action Debug node.
Show answer and explanation

Correct answer: C. Copy the Input JSON from the OmniScript {Data} modal.

Best practice is to copy the Input JSON from the OmniScript {Data} modal because this ensures the JSON structure exactly matches what the OmniScript will send to the Integration Procedure. This prevents mapping errors and guarantees compatibility between the OmniScript and DataRaptor.

Why the other options are wrong

  • A. Building node by node in an editor lacks the context of actual OmniScript data structure and is error-prone.
  • B. The DataRaptor Designer is for mapping and transform logic, not for initial Input JSON configuration.
  • D. The DataRaptor Action Debug node shows output results, not the input structure needed for configuration.

That was 20 of 80.

The full Salesforce OmniStudio Developer pack has all 80 questions, each with the answer, the explanation and why the other options are wrong, plus a questions-only copy for timed runs. US$39, paid once, with free monthly updates and a pass-or-your-money-back guarantee.

Get the full pack

Not ready yet? Get the first 37 free as one PDF by email. Get the Half Pack →