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 »





