Vlocity/OminiStudio

Find-Components-with-Salesforce-OmniStudio-Explorer

Find Components with Salesforce OmniStudio Explorer

Salesforce OmniStudio Explorer is a critical tool for developers and administrators working with OmniStudio components like OmniScripts, FlexCards, DataRaptors, and Integration Procedures. As Salesforce orgs grow, tracking and managing hundreds of components can become challenging. OmniStudio Explorer solves this problem by providing a centralized interface to locate, analyze, and manage components efficiently. Using OmniStudio Explorer ensures that developers and admins can maintain a clear overview of their org, avoid duplication, and minimize errors when modifying components. For large-scale implementations or projects with multiple developers, this tool becomes indispensable for keeping workflows organized and efficient. Why Use OmniStudio Explorer? OmniStudio Explorer offers several advantages for managing Salesforce components: Quick Component Search: Search across OmniScripts, FlexCards, DataRaptors, and Integration Procedures by name, type, or API name. Find components instantly without manually navigating multiple folders. Analyze Dependencies: View which components are linked to others. Identify dependencies between OmniScripts, DataRaptors, and FlexCards to avoid breaking workflows. Simplify Debugging: Quickly locate the source of errors by tracing components and their connections. Reduces time spent searching for the origin of issues in complex orgs. Maintain Organized Architecture: Track active, inactive, or archived components. Ensure consistent naming conventions and structured organization across the org. Step-by-Step Guide to Find Components Step 1: Access OmniStudio Explorer Log into your Salesforce org with the required permissions. Navigate to OmniStudio Explorer via the App Launcher or Lightning tab. Step 2: Search for a Component Use the search bar to enter the component name, API name, or type. Filter results by component type (OmniScript, FlexCard, DataRaptor, etc.) to narrow down the search. Step 3: Inspect Component Details Click on a component to view details such as configuration, inputs, outputs, and associated dependencies. Check linked components to understand relationships and impact before making changes. Step 4: Verify Dependencies Ensure that changes to a component do not break other connected components. Document any dependencies or modifications for team visibility. Step 5: Maintain Logs and Documentation Keep a record of components accessed and changes made. Use internal documentation to track updates, especially in large projects with multiple developers What It Does This extension supports the development of Salesforce OmniStudio applications by allowing you to easily locate: Cards (AngularJS) FlexCards OmniScripts (AngularJS & LWC) Custom Lightning Web Components How to Use Add the OmniStudio Explorer browser extension. Open any Salesforce or Experience Cloud page. Click the “Find Components!” button in the extension. It will automatically detect all OmniStudio components on the page. Hover over a listed component to highlight it on screen. Benefits Quickly identify OmniStudio components on any page Save time during debugging and development Understand page structure without backend access Best Practices Use Clear Naming Conventions: Ensure component names are descriptive and consistent to simplify search and identification. Regular Cleanup: Periodically review and deactivate unused components to keep the org clean and reduce clutter. Document Dependencies: Track which OmniScripts or FlexCards depend on a particular DataRaptor or Integration Procedure. Version Control: Maintain backups of critical components before making changes. Consider using sandbox environments for testing modifications. Collaboration: Share component updates and changes with the team to ensure alignment and prevent accidental overwrites. Conclusion OmniStudio Explorer is an indispensable tool for managing Salesforce components efficiently. By providing search, dependency analysis, and organization features, it ensures that developers and admins can maintain a high-performing, error-free org. Implementing best practices like naming conventions, dependency documentation, and regular cleanups further enhances productivity and reduces the risk of errors.

Find Components with Salesforce OmniStudio Explorer Read More »

How to count record in omniscript.

OmniScript is a powerful tool used to create guided, dynamic user experiences by integrating data from various Salesforce sources. Often, data fetched through OmniScript comes from DataRaptors, which can return one or multiple records depending on the query. In many real-time scenarios, it becomes important to count how many records are returned and display or use that count within the OmniScript flow. In this article, we will learn how to count records in OmniScript data coming from a DataRaptor using a Formula element. This approach is useful when you need to validate data presence, control screen visibility, or simply display the total number of records to the user. Understanding the Use Case Consider a scenario where an OmniScript fetches account records using a DataRaptor Extract. Based on the result, you may want to: Display how many records were returned Handle situations where no records are found Drive conditional logic in the OmniScript flow Improve user awareness by showing record counts on screen To achieve this, OmniScript provides a Formula element, which can be used to apply functions like COUNT() on the incoming data. Example Overview In this example, we will: Create an OmniScript Use a DataRaptor Extract as a data source Count the number of records returned Display the record count using a Text Block This method works for any object, as long as the data is returned in a node from the DataRaptor.   Step 1: Create an OmniScript and Add a DataRaptor. Start by creating a new OmniScript based on your business requirement. Once the OmniScript is created: Drag a DataRaptor Extract element onto the OmniScript canvas. Configure the DataRaptor to fetch the required records (for example, Account records). Map all the fields that you want to retrieve from Salesforce. Ensure that the DataRaptor is correctly configured and returns data successfully. Next, add the following elements to the OmniScript: A Formula element (to count records) A Text Block element (to display the result) Once added, select the DataRaptor element on the OmniScript page and map the fields properly as required. Step 2: Identify the Data Node Returned by DataRaptor After configuring the DataRaptor, preview the OmniScript to inspect the data structure. To identify the node where records are coming from: Use a Text Block Pass the node name inside double percentage signs (%%) Example: %%Account%% This will render the data on the screen and help you understand the exact node name returned by the DataRaptor. This step is critical because the COUNT function depends on the correct node reference. Step 3: Add a Formula to Count Records Once you know the node name (for example, Account), you can create a Formula to count the records. Add a Formula element and write the following formula: IF(COUNT(%Account%) <= 0, “0”, COUNT(%Account%))   Explanation of the Formula: COUNT(%Account%) calculates the number of records returned in the Account node The IF condition checks whether the count is zero or less If no records are returned, it explicitly displays 0 Otherwise, it displays the actual count This approach ensures that the OmniScript handles both scenarios—when records exist and when no records are returned. Step 4: Preview the OmniScript and Verify the Output After configuring the formula: Preview the OmniScript Run the DataRaptor Observe the count displayed in the Text Block If the DataRaptor returns records, the formula displays the correct count. If the DataRaptor returns zero records, the formula safely displays 0 instead of blank or undefined values. This ensures a clean and user-friendly experience. Why Use a Formula to Count Records? Using a Formula element to count records in OmniScript offers several benefits: Avoids custom Apex logic Improves performance and simplicity Enables dynamic UI behavior Helps in decision-making and validations Works seamlessly with DataRaptor Extract results This method is especially useful in guided flows where data availability affects navigation or screen visibility. Conclusion Counting records in OmniScript using a DataRaptor and Formula element is a simple yet powerful technique. By identifying the correct data node and applying the COUNT() function, you can dynamically determine how many records are returned and use that information throughout the OmniScript. This approach helps improve data handling, enhances user experience, and ensures your OmniScript behaves intelligently based on real-time data. Whether you are displaying information or driving logic, record counting is an essential skill when working with OmniScript and DataRaptors.

How to count record in omniscript. Read More »

How to use SOSL in FlexCard (Vlocity)

FlexCards in OmniStudio provide a powerful way to display Salesforce data dynamically on the UI. While FlexCards commonly use DataRaptors and Integration Procedures as data sources, there are scenarios where SOSL (Salesforce Object Search Language) is more effective. SOSL is particularly useful when you need to search across multiple records or perform text-based searches efficiently. In this article, we will walk through how to use SOSL in a FlexCard to retrieve Account data and display it on the screen. Why Use SOSL in FlexCard? SOSL is designed for searching text across multiple objects or fields quickly. Using SOSL in a FlexCard is beneficial when: You need fast text-based searching You want to retrieve records based on search terms You need to fetch data without complex filters Performance is a priority SOSL works well when searching by names, keywords, or other text fields. Use Case Overview In this example, we will create a FlexCard that uses SOSL as its data source to retrieve Account records. The fetched data will then be displayed on the FlexCard canvas using standard UI elements. Step 1: Create a FlexCard and Select SOSL as Data Source Start by creating a new FlexCard. Open FlexCard Designer Create a new FlexCard Navigate to the Data Source section Set Data Source Type to SOSL After selecting SOSL, configure the SOSL query based on your requirement to retrieve Account data. Once configured: Click on Save & Fetch Verify that the data is successfully returned This step confirms that the SOSL query is working correctly. Step 2: Build the FlexCard UI After fetching the data, move to the Build section of the FlexCard. Navigate to Build > Fields Drag required fields onto the FlexCard canvas Bind the fields to the SOSL response data For example, you can display: Account Name Industry Phone Number The dragged fields automatically map to the returned SOSL data nodes. Step 3: Configure Field Mapping Ensure the fields are correctly mapped to the SOSL response. Verify the data path for each field Use the data tree to confirm field availability Adjust field labels and formatting as required Proper mapping ensures that the FlexCard displays accurate and consistent data. Step 4: Preview the FlexCard Once the UI configuration is complete: Click Preview Validate that Account data appears correctly Confirm that the SOSL query returns expected results Check for performance and formatting issues Previewing helps catch mapping or query errors early. Best Practices for Using SOSL in FlexCard When using SOSL in FlexCards, follow these best practices: Keep SOSL queries efficient and focused Avoid retrieving unnecessary fields Use SOSL for search-based use cases only Test performance with large datasets Ensure proper field-level security access These practices help maintain optimal performance and user experience. Common Use Cases SOSL in FlexCards is commonly used for: Global search functionality Keyword-based record lookup Quick customer or account searches Lightweight data retrieval for dashboards Fast UI response scenarios Conclusion Using SOSL as a data source in FlexCards is a simple yet powerful way to retrieve Salesforce data efficiently. By selecting SOSL in the data source configuration and binding fields to the UI, you can quickly build responsive FlexCards for search-based use cases. This approach reduces complexity while delivering fast and accurate results, making it an excellent option for scenarios where text-based searching is required.

How to use SOSL in FlexCard (Vlocity) Read More »

How to use Blank Card State In Flexcard.

FlexCards in OmniStudio provide a dynamic way to display data fetched from different sources such as DataRaptors and Integration Procedures. However, there are situations where a data source returns zero records. In such cases, showing a blank screen or broken UI can confuse users. To handle this gracefully, FlexCards provide a feature called Blank Card State. In this article, we will learn how to use the Blank Card State of a State element in FlexCard and understand how it helps manage scenarios where no data is returned. What Is Blank Card State? The Blank Card State is used when a FlexCard’s data source returns no records. Instead of showing empty fields or no UI at all, the Blank Card State allows you to display a custom message or layout, informing the user that no data is available. This improves user experience by clearly indicating that: No records were found The search returned no results Input parameters may be missing or incorrect Use Case Overview In this example, we will: Use a FlexCard State element Configure a DataRaptor Extract as the data source Display data when records are available Show a custom message when zero records are returned using the Blank Card State Step 1: Create a FlexCard and Configure DataRaptor Start by creating a new FlexCard. Open FlexCard Designer Create a new FlexCard In the Setup section, select DataRaptor as the data source Next, create a DataRaptor Extract that will fetch Account data. Map all the required fields such as Name, Phone, or other relevant fields Ensure the DataRaptor is correctly configured and tested This DataRaptor will act as the main data source for the FlexCard. Step 2: Configure Interface Name and Input Mapping Move to the Setup section of the FlexCard. In the Interface Name field, search for and select the DataRaptor name Navigate to the Input Map section Add a new input mapping with the following values: Key: AccName Value: Rec This configuration allows the FlexCard to pass a test parameter dynamically. The value entered in the test parameter will be used to search records in the DataRaptor. After completing the mapping: Click Save & Fetch Verify whether records are returned correctly Step 3: Build the FlexCard UI and Configure Blank Card State Now move to the Build section of the FlexCard. Drag the required fields from the Fields panel onto the canvas Add a State element (or clone an existing one) Enable the Blank Card State option in the State element Next, map the same DataRaptor name and input configuration used earlier to this State element. To display a message when no records are found: Drag a Text element inside the Blank Card State Enter a custom message in the Text property, such as: “No records found. Please provide valid input to search.” This message will be displayed whenever the DataRaptor returns zero records. Step 4: Preview and Test the FlexCard Preview the FlexCard to validate the functionality. Test Case 1: With Input Parameter Click Add Test Params Enter an Account name (for example, “Acme”) in the value field If a matching record exists, the FlexCard will display the record details Test Case 2: Without Input Parameter Leave the test parameter blank The DataRaptor query executes with an empty value, similar to: SELECT Id, Name, Phone WHERE Name = ”   This query returns null data The Blank Card State is triggered The custom message is displayed on the screen If we leave it without filling the parametere it will  get the query like “Select id ,Name ,phone where name = ” ”.  with this it return null data. Why Use Blank Card State? Using Blank Card State offers several benefits: Improves user experience Avoids empty or broken UI Clearly communicates no-data scenarios Supports dynamic search-based use cases Reduces confusion during testing and runtime It is especially useful when working with search parameters, filters, or optional inputs. Best Practices Always provide a meaningful message in the Blank Card State Keep the UI simple and informative Test both data and no-data scenarios Ensure input mappings are consistent across states Avoid complex logic inside the Blank Card State Conclusion The Blank Card State in FlexCard is a simple yet powerful feature that helps handle zero-record scenarios effectively. By configuring a State element with a Blank Card State, you can display custom messages and maintain a clean, user-friendly interface even when no data is returned. This approach ensures that FlexCards behave predictably and provide clear feedback to users, making your OmniStudio implementations more robust and professional.

How to use Blank Card State In Flexcard. Read More »

How to delete record in OmniScript through Integration Procedures

OmniScript is widely used to build guided, interactive user experiences in Salesforce. While OmniScript handles user interaction effectively, actions such as deleting records are executed using Integration Procedures. This approach ensures secure, controlled, and reusable logic for data manipulation. In this article, we will learn how to delete a record in OmniScript using Integration Procedures, step by step, with a practical example. Why Use Integration Procedures for Deleting Records? Integration Procedures provide a structured way to perform backend operations from OmniScript. Using them to delete records offers several advantages: Centralized business logic Better security and control Reusability across multiple OmniScripts Clear separation between UI and data operations Improved error handling OmniScript does not directly delete records; instead, it triggers Integration Procedures that perform the delete action. Use Case Overview In this example, we will: Create an Integration Procedure Use a Delete Action to remove a record Pass the record ID from OmniScript Trigger the delete operation from the OmniScript UI Step 1: Create an Integration Procedure Start by creating a new Integration Procedure. Open Integration Procedures Create a new Integration Procedure Drag a Delete Action element onto the canvas Configure the Delete Action In the Delete SObject configuration: Type: Enter the object API name (for example, Account) Path to Id: Provide the path where the record ID will be received This ID will be passed from OmniScript during runtime. Delete Action an Integration Procedures  Note:– We use Response Action for send data an omniscript.   – Drag a response action for send data in response an omniscript. Activate the Integration Procedures. Response Actin in Integration Procedures Step 2: Add a Response Action To send a response back to OmniScript, add a Response Action. Drag a Response Action element onto the canvas Configure it to return success or status information Important Note The Response Action is required so OmniScript can: Confirm whether the delete action was successful Handle UI behavior after deletion After completing the configuration: Activate the Integration Procedure Integration Procedures An OmniScript On preview tab.  – In Context Id – we pass AccountId for send id  an Integration Procedures for delete               account record. Click on Button. On Preview Tab Step 3: Create an OmniScript Now create a new OmniScript. Open OmniScript Designer Create a new OmniScript Drag an Integration Procedure Action element onto the canvas Select the Integration Procedure created earlier. Step 4: Pass Record ID from OmniScript To delete a specific record, OmniScript must send the record ID to the Integration Procedure. In the Integration Procedure Action element Navigate to Remote Properties In Extra Payload, pass the record ID This ID is used by the Integration Procedure to identify which record to delete. Step 5: Test the OmniScript Preview the OmniScript and test the functionality. In the Context ID, pass the AccountId (or relevant record ID) Click the action button to trigger the Integration Procedure Once executed: The Integration Procedure receives the ID The Delete Action deletes the record The Response Action sends confirmation back to OmniScript Best Practices for Deleting Records via OmniScript Always confirm user intent before deleting records Use Response Action for success or error messages Validate record ID before passing it Avoid hardcoding IDs Implement proper access control Test thoroughly in a sandbox environment These practices help prevent accidental data loss and ensure secure operations. Common Use Cases Deleting records via OmniScript is commonly used in: Guided record cleanup flows Customer self-service portals Admin or support workflows Conditional record deletion scenarios Data maintenance processes Conclusion Deleting records in OmniScript through Integration Procedures is a clean and efficient approach that separates UI logic from backend operations. By using a Delete Action within an Integration Procedure and triggering it from OmniScript, you ensure better control, security, and reusability. This method is especially useful when building guided user flows that require controlled data deletion while maintaining a smooth user experience.

How to delete record in OmniScript through Integration Procedures Read More »

How to know Difference between Use Of DataRaptor And Integration Procedures In Omniscript.

Here we see difference between use Of dataraptor And integration procedures in omniscript. Data Raptor in omniscript :-  When working with Salesforce OmniStudio, especially while building OmniScripts, two components are used most frequently for backend operations: DataRaptors and Integration Procedures (IPs). Although both are used to fetch, transform, and send data, their purpose and usage are quite different. In this article, we will clearly understand when to use DataRaptor and when to use Integration Procedures in OmniScript, along with real use-case explanations. Understanding DataRaptor in OmniScript DataRaptor is primarily used for simple data operations such as extracting, inserting, updating, or transforming Salesforce records. It directly interacts with Salesforce objects and is lightweight in nature. DataRaptor Extract Action in OmniScript The DataRaptor Extract Action is used when we want to fetch data from Salesforce objects and display it in OmniScript. Key Characteristics: In Input Parameters, the data source comes directly from OmniScript. Multiple input nodes can be sent from OmniScript to DataRaptor. You can send all Step Data or selected fields. In Response Transformation, the Response JSON Path is used to map extracted data back to OmniScript. Use Case: When you want to retrieve account, contact, or custom object data without any complex business logic, DataRaptor Extract is the best choice. In OmniScript DataRaptor Post Action in OmniScript The DataRaptor Post Action is used to insert or update records in Salesforce. Key Points: You can send specific fields or entire step data. Ideal for simple create or update operations. No complex conditional logic is supported. Example: Submitting a form in OmniScript to create or update an Account or Case record. In DataRaptorPostAction DataRaptor Transform Action The DataRaptor Transform Action is mainly used for data mapping and transformation. Highlights: You can send either all step data or a single field using the Send JSON Path. Useful when the output format needs to be modified before saving or displaying. Example: Transforming user input into a structure required by another OmniScript step. DataRaptorTransformAction DataRaptor Turbo Action DataRaptor Turbo is an optimized version of DataRaptor that works faster but with some limitations. Important Characteristics: Only specific data can be passed in Input Parameters. Works only with single Salesforce objects. Does not support complex mappings or formulas. When to Use: When performance is critical and the data structure is simple. DataRaptorTurboAction DataRaptorTurboAction Response Understanding Integration Procedures in OmniScript Integration Procedures (IPs) are used for complex data orchestration. They are more powerful than DataRaptors and support advanced logic, multiple data sources, and external system integrations. Integration Procedure Action in OmniScript In OmniScript, Integration Procedures are invoked using the Integration Procedure Action. Key Features: In Remote Properties > Extra Payload, only specific data is passed to the Integration Procedure. In Send/Response Transformation, you can send all Step Data or only required fields. Integration Procedures use a Response Action to send data back to OmniScript or FlexCard. Example: Fetching data from Salesforce, applying conditional logic, calling an external API, and returning a combined response. IntegrationProcedureAction Why Integration Procedures Are More Powerful Integration Procedures support: Multiple DataRaptors inside one flow Conditional logic Looping mechanisms External REST API calls Response aggregation Because of these capabilities, Integration Procedures are preferred when business logic becomes complex. When to Use DataRaptor in OmniScript Use DataRaptor when: You need quick data access Logic is minimal Only Salesforce objects are involved Performance is a priority Simple CRUD operations are required When to Use Integration Procedures in OmniScript Use Integration Procedures when: You need to combine data from multiple sources Business logic is complex External systems are involved Data transformation is extensive Error handling and orchestration are required Conclusion Both DataRaptor and Integration Procedures are essential building blocks of OmniScript, but they serve different purposes. DataRaptors are lightweight and perfect for straightforward operations, while Integration Procedures provide flexibility and power for complex integrations. Choosing the right tool not only improves performance but also keeps your OmniScript scalable and easy to maintain. Understanding this difference is critical for building efficient OmniStudio solutions.

How to know Difference between Use Of DataRaptor And Integration Procedures In Omniscript. Read More »

How to Pass Data Parent FlexCard to Child FlexCard

How to Pass Data from Parent FlexCard to Child FlexCard in OmniStudio In this post, we will learn how to pass data from a Parent FlexCard to a Child FlexCard in OmniStudio (Vlocity). We will create two FlexCards—one parent and one child—where the child FlexCard queries Account records and displays the data inside the parent FlexCard. This approach is commonly used to build modular, reusable, and dynamic UI components in Salesforce OmniStudio. Ways to Pass Data to a Child FlexCard in Vlocity There are two primary ways to pass data from a parent FlexCard to a child FlexCard: 1. Using Data Nodes Data Nodes are used to query Salesforce data and pass the results to a child FlexCard. Data Nodes fetch records using SOQL, DataRaptors, or Integration Procedures The queried data is automatically available to the child FlexCard Best suited when the child FlexCard needs record-based or structured data 2. Using Attributes Attributes act as input parameters passed from the parent FlexCard to the child FlexCard. Attributes enable dynamic customization Specific values can be passed directly to the child FlexCard Useful when the child FlexCard needs filtered or contextual data from the parent Using attributes allows us to pass specific values from the parent FlexCard to the child FlexCard efficiently. Step 1: Create the Child FlexCard to Query Account Data In this step, we create the child FlexCard that will query Account records. Create a new FlexCard with a proper Name and Description Configure a Data Source (SOQL, DataRaptor, or Integration Procedure) Query the required Account fields such as Name, Phone, or Industry Save and Fetch the data Drag the required fields from the Build section to the canvas This child FlexCard will be responsible for displaying Account-related information. In Child FlexCard Step 2: Enable Child Card Settings in the Child FlexCard To establish a parent-child relationship: Open the child FlexCard settings Set “Is Child Card” = true Save and Activate the FlexCard This step is mandatory; without enabling the child card option, the FlexCard cannot be embedded inside a parent FlexCard. In Parent Card On Parent Setup Panel On parent flexcard preview tab  On preview tab Step 3: Configure Parent FlexCard Now, create the parent FlexCard: Create a new FlexCard with a proper name and description If required, define Attributes that will be passed to the child FlexCard These attributes can include Account Name, Record Id, or other parameters Step 4: Access Parent Data in Child FlexCard To access data from the parent FlexCard inside the child FlexCard, use the following syntax: {Parent.attributeName}   Replace attributeName with the actual attribute or data node name defined in the parent FlexCard. This allows the child FlexCard to dynamically use values coming from the parent. Step 5: Add Child Card Component to Parent FlexCard In the parent FlexCard: Go to the Build section Drag and drop the CHILD CARD component onto the canvas Select the child FlexCard name Map attributes or data nodes as required Once configured, the child FlexCard will render inside the parent FlexCard and display Account data accordingly. Conclusion Passing data from a parent FlexCard to a child FlexCard is a powerful feature in OmniStudio that helps build scalable and reusable UI components. By using Data Nodes or Attributes, you can control how data flows between FlexCards and create flexible user experiences. This pattern is especially useful when working with Account details, related records, or contextual views within Salesforce.

How to Pass Data Parent FlexCard to Child FlexCard Read More »

How To Use Flexcard Context Variables(salesforce)

FlexCards are one of the most powerful UI components in Salesforce OmniStudio. They allow developers to build dynamic, data-driven user interfaces with minimal code. One of the key concepts that makes FlexCards flexible and reusable is the use of context variables. In this article, we will take a deep dive into FlexCard context variables, understand what they are, why they are important, and how to use them effectively in real-world Salesforce implementations. Understanding Context Variables in Salesforce In Salesforce, context variables are variables that store information related to the current execution context. These variables help determine how a component behaves, what data it retrieves, and how that data is displayed. Context variables are widely used across Salesforce features such as: OmniStudio FlexCards OmniScripts DataRaptors Integration Procedures Flows and Apex Within FlexCards, context variables act as connectors between: Data sources and UI components Parent and child FlexCards Runtime parameters and backend logic All context variables in FlexCards are case-sensitive, and incorrect casing can result in blank data or unexpected behavior. Why Context Variables Are Important in FlexCards Context variables allow FlexCards to: Dynamically adapt based on the current record Reuse the same FlexCard across multiple objects Pass data between parent and child components Control data queries without hardcoding values Improve maintainability and scalability Without context variables, FlexCards would be static and tightly coupled to specific records or objects. Types of Context Variables Available in FlexCards FlexCards support several global context variables that can be accessed anywhere within the card, including data sources, actions, and UI elements. Let’s explore each one in detail. 1. Label Context Variable What Is the Label Variable? The Label context variable is used to reference Salesforce Custom Labels inside a FlexCard. Custom labels help avoid hard-coded text and support localization. Syntax {Label.LabelName}   How It Works When a FlexCard is rendered, Salesforce retrieves the value of the custom label and displays it wherever the variable is used. When to Use Display static instructional text Support multi-language UI Maintain consistency across multiple FlexCards Using labels ensures that content changes do not require FlexCard edits. 2. Params Context Variable What Is Params? The Params variable stores parameters passed to the FlexCard at runtime. These values may come from: Test parameters in the FlexCard preview Parent components Navigation actions Embedded contexts Syntax {Params.parameterName}   Example {Params.Id}   Although {Params.Id} can return a record identifier, Salesforce recommends using {recordId} for accessing the current record context. Use Cases Passing search parameters Dynamic filtering Controlling behavior during preview 3. Parent Context Variable What Is Parent? The Parent context variable is used only inside child FlexCards. It allows the child card to reference attributes defined on the parent FlexCard. Syntax {Parent.attributeName}   Example {Parent.AccountId}   This retrieves the AccountId attribute defined on the parent FlexCard. Important Rules The child FlexCard must have Is Child Card = true Attributes must be explicitly defined on the parent The Parent variable cannot access undeclared attributes This mechanism enables strong parent-child communication without duplicating data queries. 4. recordId Context Variable What Is recordId? The recordId variable represents the current Salesforce record context in which the FlexCard is being used. Syntax {recordId}   Why recordId Is Recommended Salesforce strongly recommends using {recordId} instead of {Params.Id} because: It is always available in record-based contexts It improves clarity and consistency It reduces dependency on manually passed parameters Common Use Case When using a DataRaptor to fetch related records: Key: AccountId Value: {recordId} For previewing: Add a test parameter with Key: recordId Value: a valid Salesforce record Id 5. records Context Variable What Is records? The records variable holds all records returned by a data source, such as: SOQL queries DataRaptors Integration Procedures Syntax Examples Get all records: {records}   Get the first record: {records[0]}   Get a field from the first record: {records[0].Name}   Why records Is Important The records variable enables: Iteration through data lists Conditional rendering Display of dynamic datasets Access to individual records without extra queries Understanding records is essential for building data-rich FlexCards. Best Practices for Using Context Variables Always verify case sensitivity Prefer {recordId} for record context Define parent attributes explicitly Use labels instead of hard-coded text Test with real data using test parameters Avoid overloading child FlexCards with multiple queries Conclusion Context variables are the backbone of dynamic behavior in FlexCards. They allow developers to build reusable, scalable, and intelligent UI components that respond to real-time data and user context. By mastering variables like Label, Params, Parent, recordId, and records, you gain full control over how data flows through your FlexCards and how users experience your OmniStudio applications. A solid understanding of context variables is essential for anyone working with Salesforce OmniStudio, FlexCards, DataRaptors, and Integration Procedures.

How To Use Flexcard Context Variables(salesforce) Read More »

How to use Response Action In Integration

Integration Procedures play a critical role in Salesforce OmniStudio by enabling data exchange between Salesforce, external systems, and OmniScripts. One of the most important elements inside an Integration Procedure is the Response Action, which controls how response data is captured, transformed, and sent back to an OmniScript or FlexCard. In this article, we will learn how to use Response Action in an Integration Procedure, how data flows through it, and how it is finally returned to an OmniScript. Why Response Action Is Important When an Integration Procedure interacts with: External APIs Salesforce objects DataRaptors Other integration steps it always produces a response. The Response Action determines: What data is captured from the response How the response is transformed What data is sent back to OmniScript Whether full or partial data is returned Without a Response Action, OmniScript cannot reliably consume data from the Integration Procedure. Sending Integration Procedure Data to OmniScript The basic flow looks like this: OmniScript calls an Integration Procedure Integration Procedure executes its steps Response Action captures and maps response data Data is sent back to OmniScript This makes Response Action the bridge between Integration Procedures and OmniScripts. Step 1: Adding Response Action in Integration Procedure Design the Integration Procedure Open OmniStudio → Integration Procedures Open or create an Integration Procedure Add your required integration steps (DataRaptor, HTTP Action, etc.) Configure the Response Action Drag a Response Action into the Integration Procedure Place it after the integration step whose data you want to return This defines what happens before the Integration Procedure completes The Response Action ensures the response is captured and prepared for output. Response Action Configuration Key configuration options include: Return Full Data JSON When set to True, the entire response JSON is returned Useful for debugging or when OmniScript needs all data Send JSON Path Used to send only a specific node from the response Send JSON Node Allows selection of a specific response node for downstream steps If Return Full Data JSON is enabled, all response data is visible in the Preview tab. Response Action In Integration Procedure Execute Integration Procedure Go to the Preview tab Click Execute Review the response output This confirms whether the Response Action is correctly configured. On Preview Tab Step 2: Using Send/Response Transformations Understanding Send/Response Transformations Send/Response Transformations define: What data is sent into the Integration Procedure What data is passed between steps What data is returned to OmniScript They allow precise control over JSON structures. Send JSON Path in Response Action If you want to pass only a specific part of the response to the next step or OmniScript, configure: Send JSON Path in the Integration Step Send JSON Node in the Response Action Example Response structure: {   “result”: {     “data”: {       “Id”: “001xx”,       “Name”: “Test Account”     }   } }   Configuration: Send JSON Path: $.result Send JSON Node: data This sends only the data node forward. Passing Data to OmniScript From the Response Action: All required data is passed back to OmniScript OmniScript can consume this data using: Integration Procedure Action JSON Path mappings Set Values elements Using Set Values in Response Action A common practice is: Create Set Values Map response data to custom output nodes Return only structured, required values This avoids sending unnecessary data to OmniScript.  Note :– We create a setvalues and pass data in response action. In Response Action On Preview Tab After Click Execute   On Preview Tab Step 3: Additional Output Response Configuration What Is Additional Output Response? Additional Output Response allows you to define custom output nodes that OmniScript will receive from the Integration Procedure. Return Only Additional Output When this option is set to True: OmniScript receives only the defined additional output Full response JSON is excluded Payload becomes cleaner and easier to manage This is recommended for production implementations. Defining Additional Output You can specify: Individual fields Custom objects Structured JSON nodes These outputs are explicitly mapped and returned to OmniScript. How OmniScript Consumes the Response In OmniScript: Drag an Integration Procedure Action Map inputs using Extra Payload Capture response using Response JSON Path Use data in: Text blocks Decision elements Set Values Navigation logic This enables real-time UI updates and backend interactions. In Response Action On Preview Tab After Click On Execute   On Preview Tab Best Practices for Response Action Always use a Response Action when returning data Avoid returning full JSON unless necessary Use Send JSON Path to control payload size Use Set Values for clean output structures Enable Return Only Additional Output for production Test Integration Procedures using Preview before OmniScript integration Conclusion The Response Action is a core component of Integration Procedures in OmniStudio. It ensures that response data is properly captured, transformed, and delivered to OmniScript in a structured and reliable manner. By understanding how to configure Response Actions, Send/Response Transformations, and Additional Output Responses, you can build scalable, maintainable, and efficient integrations within Salesforce OmniStudio. Mastering this concept is essential for anyone working with OmniScripts, Integration Procedures, DataRaptors, and FlexCards.

How to use Response Action In Integration Read More »

How to Make Set Value and Response Action in IP.

  Integration Procedures (IP) in Salesforce OmniStudio are used to process, transform, and exchange data between Salesforce, OmniScripts, FlexCards, and external systems. Two very important elements inside an Integration Procedure are Set Values and Response Action. In this article, we will learn how to use Set Values and Response Action in an Integration Procedure, why they are needed, and how they work together to send clean, structured data to OmniScript or FlexCard. Why Set Values and Response Action Are Important Set Values helps you create or modify data inside the Integration Procedure Response Action controls what data is returned to OmniScript or FlexCard Together, they help avoid sending unnecessary or unstructured data They improve performance, readability, and maintainability These elements are commonly used in real-time integrations and UI-driven processes. What Is Set Values in Integration Procedure? Set Values is used to: Create new JSON nodes Assign values to variables Transform response data Prepare output data for OmniScript or FlexCard Set Values does not fetch data; it only manipulates existing data. What Is Response Action in Integration Procedure? Response Action defines: What happens at the end of the Integration Procedure Which data is sent back to the calling component Whether full JSON or selected output is returned Without a Response Action, data cannot be reliably consumed by OmniScript. Step 1: Create an Integration Procedure Go to OmniStudio → Integration Procedures Create or open an Integration Procedure Add required steps (DataRaptor, HTTP Action, etc.) Save the Integration Procedure Step 2: Use Set Values in Integration Procedure Add Set Values Element Drag Set Values onto the Integration Procedure canvas Place it after the step whose data you want to transform Configure Set Values Inside Set Values: Define Key (output field name) Define Value (source data path or static value) Example If your response contains: response.Account.Name You can map it as: Key: AccountName Value: {response.Account.Name} This creates a clean output node called AccountName. Why Use Set Values? To rename fields To combine multiple values To remove unnecessary nested JSON To prepare data for Response Action Step 3: Add Response Action in Integration Procedure Add Response Action Drag Response Action to the canvas Place it at the end of the Integration Procedure Configure Response Action Key configuration options: Return Full Data JSON True: returns entire response False: returns only mapped output Send JSON Path Specifies which node to send forward For clean output, keep Return Full Data JSON set to False. Step 4: Configure Additional Output Response What Is Additional Output Response? Additional Output Response allows you to explicitly define what data is returned. How to Configure Enable Additional Output Response Map keys from Set Values Choose only required fields Return Only Additional Output Set Return Only Additional Output = True This ensures only clean, required data is returned Recommended for production implementations Step 5: Preview and Test Integration Procedure Go to the Preview tab Provide test input parameters Click Execute Verify output JSON structure This helps confirm Set Values and Response Action are working correctly. How OmniScript Uses This Data In OmniScript: Add an Integration Procedure Action Pass input using Extra Payload Capture response using Response JSON Path Use data in: Text blocks Set Values Decisions Navigation logic Best Practices Always use Set Values before Response Action Avoid returning full JSON unless required Use meaningful key names Enable Return Only Additional Output Test IP independently before using in OmniScript Keep output lightweight and structured Common Mistakes to Avoid Skipping Response Action Returning unnecessary full JSON Incorrect JSON path mapping Not testing with real input values Overloading Integration Procedure with logic Conclusion Set Values and Response Action are essential building blocks in Integration Procedures. Set Values prepares and structures the data, while Response Action ensures only the required data is sent back to OmniScript or FlexCard. Mastering these two elements helps you build clean, efficient, and scalable OmniStudio integrations.

How to Make Set Value and Response Action in IP. Read More »

Scroll to Top