Loading
Upcoming Mandatory Changes to Public Key Infrastructure (PKI)Read More
Salesforce Enforces New Security Requirements in Summer 2026Read More
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          Data Manager

          Data Manager

          Data Manager is the state management and orchestration component for Product Configurator. This component stores product data and uses flow events to propagate the data to other components on the flow screen.

          Required Editions

          Available in: Lightning Experience
          Available in: Enterprise, Unlimited, and Developer Editions of Revenue Management (formerly Revenue Cloud) with the Revenue Cloud Growth license or the Revenue Cloud Advanced license

          Data Manager Responsibilities

          • Maintain the transaction context and configuration state
          • Invoke the Configurator API and process responses
          • Process Lightning Message Service (LMS) events from UI components
          • Provide data to UI and expose reactive properties to child components
          • Support saving and loading favorite configurations

          Data Manager API Name

          S01_DataManager

          Data Manager Input Properties

          Data Manager accepts data from parent or flow component properties set by users.

          Property Type Required Description
          transactionLineId String Yes Root product or transaction line ID
          currentTransactionLineId String Yes Current line being viewed
          transactionId String Yes Sales Transaction ID (Quote, Order, and so on)
          parentName String Yes Name or title of the parent transaction that the configuration pertains to.
          origin String Yes Name of the transaction record's parent object. Example: 'Opportunity', 'Quote', 'Order', 'Asset', and so on. This identifies which Salesforce object type launches the configuration. Used for navigation, UI label and so on.
          addedNodes Array No Flow resource that contains a collection of Apex ProductConfig__SalesTransactionItem records associated with the parent record transaction.
          isNonBlockingEnabled Boolean No Turn on non-blocking mode. When turned on, this allows users to continue interacting with the UI while API calls are processing in the background. Changes are queued and processed asynchronously without blocking the UI. When turned off, the UI is locked during API calls.
          areMessagesFixed Boolean No Whether messages component has a fixed position. When true, the messages component stays fixed at the top of the screen and remains visible while scrolling (sticky positioning). When false, the messages component scrolls with the page content (relative positioning). Useful for keeping validation errors/warnings always visible during configuration
          contextId String No ID of the transaction context specified for Product Configurator
          enableARCValidation Boolean No Indicates whether ARC (Asset Renewal Configuration) validation runs during product configuration
          transactionLineGroupId String No ID of the group that contains the current transaction line being configured. For Quotes, this is the Quote Line Group ID. For Orders, this is the Order Item Group ID.
          explainabilityEnabled Boolean No When Explainability is enabled, Product Configurator provides detailed explanations for why products are hidden, disabled, or recommended. Shows rule execution details and business logic reasoning to help users understand configuration constraints.
          userContext Object No

          API name of a flow variable that contains user qualification data. This variable is of type ProductConfig__UserContext and determines product eligibility based on user-specific attributes.

          1. In Flow Builder, create a variable API name, for example, userContextData.

          2. Use an Assignment or Get Records element to populate the variable, and set fields such as role, region, accountType, and so on. For example, {!userContextData.role} = {!$User.UserRole.Name}

          3. In Data Manager, for User Context, select {!userContextData}. The Configurator API uses this data to evaluate qualification rules and filter which products are available. For example, if you have rules like "Show Enterprise Products only to Enterprise Sales reps", the API checks the user's role from this context.

          Select a user context only if you have product qualification rules that depend on user-specific attributes like role, territory, and so on. If all products are available to all users, leave this field empty.

          Data Manager Output Properties

          Data Manager writes output properties that customers can read. An internal method generates data, and the FlowAttributeChangeEvent dispatches the data to the relevant property, as shown in this example.

          this.dispatchEvent(
             new FlowAttributeChangeEvent(FLOW_REACTIVITY_MESSAGES, messages)
          );
          

          This table shows what data Data Manager provides to other components. The Data Source column identifies the internal process that generates the data.

          Property Data Type Description Data Source
          header Object Current product header information mergeContexts()
          messages Array Validation/error messages API response + rules
          optionGroups Array Product component groups (options) mergeContexts()
          attributeCategories Array Product attribute categories mergeContexts()
          summary Object Configuration summary (merged transaction tree) mergeContexts()
          navigationRoute Array Current navigation path, or breadcrumbs buildNavigationInfo()
          searchInfo Array Search data for product catalog buildSearchInfo()
          tabs Array Available tabs for multi-root bundles buildTabs()
          currencyCode String Currency code for pricing API response
          transactionRecord Object Transaction record details populateTransactionRecord()
          headerTitle String Header title text generateHeaderTitle()
          isInstantPricingToggleEnabled Boolean Whether instant pricing toggle is shown setToggleStates()
          isInstantPricingEnabled Boolean Current instant pricing state Toggle/API
          isProductValidationEnabled Boolean Current validation state Toggle/API
          showPrices Boolean Whether to show prices State logic
          showSummaryTotalSection Boolean Whether to show summary total section Insurance override
          favoriteData

          String (JSON)

          Configuration data for favorites getFavoriteData()
          isConfiguratorDisabled Boolean Whether configurator is disabled UI state
          isApiInProgress Boolean Whether API call is in progress API lifecycle
          isPriceRampEnabled Boolean Whether price ramps are enabled Context check
          isGroupRampEnabled Boolean Whether group ramps are enabled Group calculation
          salesTransactionItems Array All transaction items API response
          layoutMode String Layout mode (standard or compact) Toggle
          searchResultOptionId String Selected search result option ID Search navigation
          rootProductId String Root product ID Catalog data
          currentGroupName String Current group name getCurrentGroupName()
          contextMetadata Object Context metadata for customizable Sales Transaction Item attributes. Contains field definitions (labels, data types, picklist values) for custom attributes that can be displayed in the UI. Context parsing
          eligiblePromotions Array Eligible promotions list Promotion API

          Events Data Manager Listens To

          Data Manager listens to Lightning Message Service (LMS) events and wire adapters.

          To listen to LMS events, Data Manager subscribes to the message channel and receives LMS events that other components published there. This table shows LMS event actions, their handler methods, and what the actions do.

          Event Action Handler Method What it does
          valueChange setState() Updates configuration state (selections, quantities, attributes)
          navigate navigate() Navigates through bundle hierarchy
          closePreview closePreview() Closes preview window
          toggleInstantPricing setInstantPricing() Toggles instant pricing on/off
          toggleExplainability setExplainability() Toggles explainability on/off
          toggleRulesValidation setProductValidation() Toggles validation on/off
          updatePrices updatePrices() Manually triggers pricing
          validateProduct validateProduct() Manually triggers validation
          cloneItems cloneItems() Clones transaction items
          toggleCompactLayout setLayoutModeOnToggle() Toggles layout mode
          contextDefinitionChanged setContextDefinition() Updates context definition
          saveFavConfiguration handleSaveConfiguration() Saves configuration as favorite
          loadFavorite handleLoadFavorite() Loads favorite configuration

          Wire adapters automatically listen for data changes from Salesforce's platform, and pass the data changes to Data Manager. This table shows the wire adapter events Data Manager listens to.

          Wire Adapter Source What it listens for Handler Method Purpose
          MessageContext lightning/messageService Message context for LMS

          Not applicable (provides context)

          Enables LMS communication
          getContextServiceDefinition lightning/industriesContextApi Context definition changes

          gotContextDefinition()

          Listens for context definition data
          getObjectInfos (2nd) lightning/uiObjectInfoApi Transaction item object info getObjectInfos() Listens for transaction item metadata

          Events Data Manager Fires

          Data Manager fires custom events, toast events, and flow attribute change events.

          This table shows custom events Data Manager fires, including bubbling and composed events.

          Event Name Bubbles Composed When it Fires Purpose
          loading Yes Yes During initial load Notify parent of loading state
          proceed Yes Yes Cancel at root OR close window Close configurator without saving
          save Yes Yes Save and exit navigation Save configuration and exit
          close_modal Yes Yes Close preview Close preview window
          showConflictToast Yes Yes Non-blocking API conflicts detected Show conflict warning toast

          This table shows the toast event Data Manager fires.

          Event Name When is it Fired Purpose
          ShowToastEvent After loading favorite successfully Notify user of successful favorite load

          Data Manager dispatches FlowAttributeChange events for all reactive properties on every UI update.

           
          Loading
          Salesforce Help | Article