1. What is the difference between synchronous and asynchronous IP?
- Synchronous IP: Runs immediately and returns the result to the caller (OmniScript, FlexCard, or another IP) in real time. The user waits for the output.
- Asynchronous IP: Runs in the background and does not return immediate results. It is used for long-running processes where the user doesn’t need to wait.
2. What is the difference between the Integration Procedure and DataRaptor?
| Feature | Integration Procedure (IP) | DataRaptor |
|---|---|---|
| Purpose | Orchestrates multiple actions, transformations, and API calls | Extracts, transforms, or loads Salesforce data |
| Can call Apex/HTTP | Yes | No |
| Use case | Multiple actions in sequence, server-side logic | Read or write Salesforce records |
| Output | JSON (can include multiple sources) | JSON (Salesforce-specific data only) |
3. What is the difference between Integration Procedure and Apex?
| Feature | Integration Procedure (IP) | Apex |
|---|---|---|
| Code | No code (declarative) | Requires coding |
| Use case | Multiple actions, data transformation, API orchestration | Complex business logic, calculations, or actions not possible declaratively |
| Reusability | Reusable in OmniScripts, FlexCards | Can be reusable if Invocable |
| Ease | Easy for non-developers | Requires developer knowledge |
| Call IP | Yes | Yes |
4. Can Integration Procedure call another IP?
Answer: Yes. One IP can call another IP using an Integration Procedure element.
5. Define Integration Procedure – Actions & Groups
Control & Structural Actions
- Set Values – Sets or updates values in the Integration Procedure JSON.
- Conditional Block – Executes actions based on a defined condition.
- Loop Block – Repeats actions for each item in a JSON array.
- Try-Catch Block – Captures and handles runtime errors.
- Response Action – Structures the final response JSON returned to the caller.
Data Actions
- DataRaptor Extract Action – Retrieves Salesforce data using a DataRaptor Extract.
- DataRaptor Load Action – Inserts or updates Salesforce records via DataRaptor Load.
- DataRaptor Transform Action – Converts one JSON structure into another.
- Turbo Extract Action – Fetches fast, single-object Salesforce data.
Integration Actions
- Integration Procedure Action – Invokes another Integration Procedure.
- HTTP Action – Calls an external REST API endpoint.
- Remote Action – Executes Apex logic from an Integration Procedure.
6. Define OmniScript Actions
UI Structure Actions
- Step – Defines a stage in the OmniScript flow.
- Block – Groups multiple UI elements within a step.
- Input Element – Captures user input data.
Data & Logic Actions
- DataRaptor Extract Action – Fetches Salesforce data into OmniScript JSON.
- DataRaptor Load Action – Saves OmniScript data to Salesforce records.
- Integration Procedure Action – Executes server-side processing and integrations.
- Remote Action – Calls Apex logic from OmniScript.
Navigation & Control Actions
- Navigate Action – Controls movement between OmniScript steps.
- Set Values Action – Assigns or updates values in OmniScript JSON.
- Conditional Visibility – Shows or hides elements based on expressions.
Validation & Utility Actions
- Set Errors – Applies validation logic on user inputs.
- Delete Action – Removes specific nodes from OmniScript JSON.
7. What is a Decision Matrix?
Answer: A Decision Matrix evaluates multiple conditions in a table format and returns a value based on the first matching rule. It is used to apply business logic declaratively.
8. Can we call an Apex class in OmniScript?
Answer: Yes. You can call an Apex class in OmniScript using the Apex Action element, passing input parameters and mapping the output back to OmniScript variables.
9. How can you call an Apex class from an Integration Procedure?
Answer: By using the Apex Action element inside the Integration Procedure. You select the Apex class, provide input parameters, and map the output to the Integration Procedure response.
10. How can you call an Integration Procedure from Apex class?
Map < String, Object > output = new Map < String, Object >();
Map < String, Object > input = new Map < String, Object >();
Map < String, Object > options = new Map < String, Object >();
String procedureName = 'Your_IP_Name';
input.put('Your_Input',Input_Value);
output = (Map < String, Object > ) vlocity_cmt.IntegrationProcedureService.runIntegrationService(procedureName, input, options);11. Can you call Apex directly from a FlexCard?
Answer. Yes. A FlexCard can call Apex using the Action element, typically to fetch or update data dynamically when a user interacts with the card.
12. What is a Set Values element in OmniScript?
Answer: A Set Values element assigns static or dynamic values to OmniScript variables during the flow. It is often used to prepopulate fields or update variables based on logic.
13. What is an Action in FlexCard?
Answer: An Action is a task triggered by user interaction (like a click) in a FlexCard. Examples: open OmniScript, call Apex, call Integration Procedure, navigate to a page, or fire an event.
14. What is the difference between a Decision Matrix and a Decision element?
- Decision Matrix: Table-based evaluation of multiple conditions; returns outputs based on the first matching rule.
- Decision Element: Single if/else style conditional logic in an IP or OmniScript.
15. What is an Expression Set?
Answer: An Expression Set calculates or manipulates data dynamically using expressions or formulas. It can handle math, text, dates, or conditional logic.
16. Where is Expression Set used?
Answer: Expression Set is used in Integration Procedures, OmniScripts to compute or transform values dynamically without Apex.
17. What is the advantage of using DataMapper?
Answer: DataMapper allows you to transform or map data between different JSON structures declaratively. It reduces the need for custom Apex code and simplifies data integration.
18. How does DataMapper improve performance?
Answer: It improves performance by handling data transformations server-side in one step, reducing multiple API calls or unnecessary processing, making the flow faster and more efficient.
19. How do you handle dynamic picklist values in OmniScript?
Answer: Using DataRaptor Extract or Apex to fetch picklist options dynamically.
20. How can you optimize IP performance?
Answer Reduce elements, combine DataRaptor calls, use Turbo Extract, and avoid unnecessary loops.
21. How can you transform API response JSON in IP?
Answer: Use DataMapper to restructure or calculate fields.
22. Can FlexCard update Salesforce records?
Answer: Yes, by calling an Integration Procedure/ Action or Apex Action that performs the update.
23. Can OmniScript call multiple Integration Procedures in parallel?
Answer: No, OmniScript executes elements sequentially; parallel execution requires asynchronous IP or multiple API calls.
24. How can OmniScript validate data before proceeding to the next step?
Answer: Use Validation rules in fields or Set Error element to prevent continuation.
25. How can you merge multiple API responses in one Integration Procedure?
Answer: Use DataMapper to combine JSON responses.
26. How do you handle errors in Apex called from IP?
Answer: Use try-catch blocks and return error messages in JSON format.
27. Can DataMapper rename fields during mapping?
Answer: Yes, Data mapper Extract & Data Mapper Transform allows renaming or transforming field names in output.
✅ Final Thoughts
These Salesforce OmniStudio basic interview questions and answers cover the core concepts every beginner or intermediate professional should know. Mastering these fundamentals will help you confidently clear interviews and build scalable, high-performance OmniStudio solutions.
If you want advanced OmniStudio interview questions, real-time use cases, or hands-on practice scenarios, let me know — I can prepare them for you.

