OmniStudio-Developer Practice Test Questions

116 Questions


A developer needs to transform contact data into a JSON array.

 

Given the input JSON shown above, what are two ways a developer could configure a DATARaptor transform to achieve the expected Output JSON? (Choose 2 answers)


A. Use a formula LIST(Contact), and add the output of the formula as the input in the Transform tab.


B. Set the Input JSON path as List(Contact) and the OutputJSON Path as Contact.


C. Set the Input JSON Path as Contact the out JSON Path as contact and output Data type as List.


D. Set the input JSON Path as Contact and the OutPut JSON Path as List (Contact)





B.
  Set the Input JSON path as List(Contact) and the OutputJSON Path as Contact.

C.
  Set the Input JSON Path as Contact the out JSON Path as contact and output Data type as List.

Explanation:

To transform contact data into a JSON array, the DataRaptor must structure the output as a list.

Option B works by explicitly defining the input as a list (List(Contact)) and mapping it to a single output node (Contact), which ensures array output.

Option C achieves the same by setting the output data type to List, forcing the result into an array format.

Options A and D are incorrect because LIST(Contact) in a formula (A) is not a valid DataRaptor syntax, and List(Contact) in the Output JSON Path (D) is invalid.

A developer needs to configure a calculation procedure to calculate a subtotal using two different formulas depending on whether the input Boolean variable isCustomer is set to true or false. How should a developer configure the calculation procedure to conditionally execute the correct formula?


A. Use two separate Calculation Steps with the Conditional Step property selected: use the ISTRUE(isCustomer) and NOT (ISTRUE) (isCustomer) functions in the Condition syntax.


B. Use two separate Calculation Steps with the Conditional Step property selected: reference just the isCustomer variable in the Conditional syntax (no comparison necessary)


C. Use two separate Calculation Steps with the Conditional Step property selected: compare the isCustomer variable directly to the literal true and false values in the Condition syntax.


D. Use a single Calculation Steps with IF statement directly in the formula definition to reference the isCustome variable and conditionally perform the appropriate calculation.





B.
  Use two separate Calculation Steps with the Conditional Step property selected: reference just the isCustomer variable in the Conditional syntax (no comparison necessary)

Explanation:

When you need two different calculations based on a Boolean isCustomer flag, the best practice is to use two separate Calculation Steps, each with the Conditional Step property enabled, and simply reference the Boolean variable directly in each step’s condition:

One step’s condition is isCustomer (executes when true).
The other step’s condition is NOT(isCustomer) or simply omit the condition (executes when false).

Referencing the variable directly is sufficient—no explicit ISTRUE() wrapper or comparison to literal true/false is required—and keeps your procedure cleaner and more maintainable.

Refer to the exhibit below. A developer has configured an Integration Procedure element with SEND/RESPONSE TRANSFORMATIONS as shown.


Alternatively, how could the developer configure Additional Input to send exactly the same data? Assume that the developer checked Send Only Additional Input.


A. Key Value - SecondaryAccount DRExtractAction:Account


B. Key Value - SecondaryAccount %DRExtractAction:Account%


C. Key Value - DRExtractAction:Account SecondaryAccount


D. Key Value - %DRExtractAction:Account% SecondaryAccount





B.
  Key Value - SecondaryAccount %DRExtractAction:Account%

Explanation:

With Send Only Additional Input checked, the Integration Procedure ignores its regular request body and sends only the key/value pairs defined under Additional Input. To pass the same data originally being sent via a DataRaptor Extract named DRExtractAction, you configure:

Key: SecondaryAccount
Value: %DRExtractAction:Account%

Here, the merge code %DRExtractAction:Account% pulls the already-extracted Account node, and assigning it to SecondaryAccount recreates the original structure.

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 2 answers)


A. Use a ListAction to merge the array elements together.


B. Use a Calculation Action to call a Calculation Procedure.


C. Use a Set Values Element inside a Loop Block.


D. Use a Matrix Action to call a Calculation Matrix.





A.
  Use a ListAction to merge the array elements together.

B.
  Use a Calculation Action to call a Calculation Procedure.

Explanation:

To apply a complex, multi-step calculation to every element in an array within an Integration Procedure, the recommended patterns are:

A. Matrix Action – If your logic can be expressed as a lookup table (Calculation Matrix), use a Matrix Action to call that matrix for each element.

B. Calculation Action – For more general formulas and arithmetic, use a Calculation Action to invoke a Calculation Procedure that you’ve defined separately.

Both actions can be placed inside a Loop or combined with a List Action to process each record. These declarative, reusable building blocks keep your IP clean and performant.

A developer is configuring an integration Procedure Action in an OmniScript. The Omniscript needs a JSON response from the Integration Procedure but does not need to wait for the response for the user to proceed. Which feature should the developer enable?


A. Toast Completion


B. Use Future


C. Invoke Mode Fire and Forget


D. Invoke Mode Non-Blocking





D.
  Invoke Mode Non-Blocking

Explanation:

When an OmniScript calls an Integration Procedure and you want the script to continue immediately—without waiting for the IP to finish—yet still capture its JSON response when ready, enable Invoke Mode : Non-Blocking. This setting submits the IP call in parallel, lets the user proceed, and then returns the response asynchronously for any follow-up logic.

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


A. FetchCart


B. Response


C. ResponseCartDebug


D. ResponseCart





D.
  ResponseCart

Explanation:

In Preview Mode, the Response Action’s output is stored under its element name (ResponseCart). The Debug node (C) shows intermediate data, while FetchCart (A) contains the request payload.

This aligns with OmniStudio’s debugging hierarchy, where each action’s results are isolated under their named nodes. Developers must inspect ResponseCart (D) to validate the final transformed data, as documented in Salesforce’s Integration Procedure troubleshooting guide.

A developer is configuring the API URL in an HTTP Action element within an Integration Procedure. What is the merge code syntax for passing a Date node from an element named SetValues in the URL?


A. %SetValues:Date%


B. ['SetValues']['Date']


C. %SetValues.Date%


D. {{SetValues.Date}}





A.
  %SetValues:Date%

Explanation:

Integration Procedure merge fields use the syntax %ElementName:NodeName% to inject values into URLs, request bodies, or headers at runtime. Here, SetValues is the element name, and Date is the node under it, so %SetValues:Date% correctly resolves to that node’s value. Other formats—dot notation with %…%, JavaScript-style indexing, or double curly braces—are not supported in Integration Procedure HTTP Action properties.

Refer to the exhibit below. In this Integration Procedure structure, what Send JSON Path would you use to send the output of the ActionZ element to a Response Action?


A. BlockX.BlockYActionZ


B. ActionZ:BlockY:BlockX


C. ActionZ:BlockY:BlockX


D. BlockX:BlockY:ActionAZ





D.
  BlockX:BlockY:ActionAZ

Explanation:

Send JSON Path uses colon : notation to traverse nested blocks in Integration Procedures. To send the output of ActionZ (nested inside BlockY, inside BlockX), you list the hierarchy in root-to-leaf order separated by colons: BlockX:BlockY:ActionZ. Dot notation is invalid in the Send JSON Path field, and reversed orders won’t map correctly. This path tells the Response Action exactly which node in the Data JSON to include.

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?


A. Build the Input JSON node by node in an editor.


B. Build the Input JSON node by node in the DataRaptor Designer.


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


D. Copy the Input JSON from the DataRaptor Action Debug node.





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

Explanation:

When a DataRaptor Load is invoked through an Integration Procedure from an OmniScript, the {Data} modal in the OmniScript Preview shows the exact shape of the Data JSON being passed into the IP (and thus into the DataRaptor). Copying that JSON ensures the Load’s input mapping matches the transaction context precisely, avoiding errors caused by mismatched node names or missing fields. Building JSON by hand or relying on the DataRaptor’s debug output can lead to drift from the actual OmniScript data model.

A customerhas anew 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?


A. Relationship Query


B. Linked Mapping


C. Lookup Mapping


D. Lookup Key





D.
  Lookup Key

Explanation:

A DataRaptor Load uses Lookup Key mapping to associate the new Engagement Manager (Contact) as the Primary Contact for the Account. The Lookup Key ensures the system identifies the correct Account record to update by matching a unique identifier (e.g., Account ID). Once the Contact is created, the DataRaptor links it to the Account using this key, then updates the Account's Primary Contact field. This method avoids duplicates and maintains data integrity.

Official Reference:

Salesforce OmniScript and DataRaptor Documentation states that Lookup Keys are used for associating records during data transformations (Salesforce Help, 2023).

A developer creates a FlexCard with five state elements. For of the stateshave a condition. To test the FlexCard, the developer previews it using sample data that causes two of the states to have true conditions. In this scenario, how will the developer know which state will display?


A. The first state with true conditions sequence closest to the top of the FlexCard canvas will display.


B. The first state with true nested condition, regardless of sequence in the FlexCard canvas, will display


C. The state sequenced first in the FlexCard canvas will display.


D. The first state witha true AND condition, regardless of sequence in the FlexCard canvas, will display.





A.
  The first state with true conditions sequence closest to the top of the FlexCard canvas will display.

Explanation:

In a FlexCard, when multiple states have conditions that evaluate to true, the system prioritizes the first state (in top-down order on the canvas) whose conditions are met. This means the state positioned highest in the FlexCard's layout takes precedence. The developer will see this state rendered in the preview, even if other states below it also evaluate to true.

Official Reference:

According to Salesforce FlexCard Documentation, states are evaluated sequentially, and the first valid state (based on vertical order in the designer) is displayed.

A developer builds a new OmniScript. It contains aSet Values element with a ContextId key/value pair that was used during testing. What should the developer do before moving the OmniScript to a production org?


A. Update the ContextId value to specify an id from the Production org.


B. Add a Show/Hide condition on the Set Values element.


C. Delete or Deactivate the Set Values element.


D. Deactivate the contextId key/value pair





C.
  Delete or Deactivate the Set Values element.

Explanation:

Before moving an OmniScript to production, the developer should remove or deactivate the Set Values element containing a hardcoded ContextId (e.g., a record ID from testing). Hardcoding IDs is not recommended because:

1. Test IDs won’t exist in production, causing errors.
2. Security risks: Exposing internal IDs can lead to data leaks.
3. Best practice: Dynamic references (e.g., URL parameters, runtime variables) should replace hardcoded values.

Official Reference:

Salesforce OmniScript Best Practices advise against hardcoding record IDs and recommend removing test configurations before deployment.


Page 1 out of 10 Pages