This article explains why decision table refresh and Sync Pricing Data fail for non-System Administrator users in Salesforce Revenue Cloud, and how to resolve the issue without assigning the System Administrator profile.
Affected users may run Sync Pricing Data from Salesforce Pricing Setup, but the decision tables mapped to a pricing recipe (with usage type Pricing) may fail to receive the latest source object rows. As a result, downstream attribute-based pricing and pricing procedures that depend on these decision tables may return stale values or no results at all.
This issue is commonly reported as:
This behavior can also affect integration users who access decision table data at runtime through Pricing Procedures, OmniScripts, or Data Mappers.
Available in: Enterprise, Unlimited, and Developer Editions of Revenue Cloud where Salesforce Pricing is enabled.
Three product limitations drive this behavior, all confirmed in the Revenue Cloud Salesforce Pricing setup documentation:
1) Sync Pricing Data requires both Salesforce Pricing Design Time and Assetize Order permission sets to ensure a complete synchronization of decision tables. If only Salesforce Pricing Design Time is assigned, the sync may partially succeed and leave some decision table rows missing.
2) The Refresh and Deactivate actions on a decision table are available only to the user who originally created the decision table or to a System Administrator. As a result, a non-admin user who did not create the decision table cannot refresh it from the UI, even if they have Rule Engine Designer access.
3) Runtime read access for non-admin users requires record-level sharing to be configured for all Salesforce Pricing objects. This ensures that runtime users can access the data created by product designers or catalog administrators.
Apply all three causes in order. Do not assign the System Administrator profile as a long-term workaround.
Cause 1: Missing companion permission set for Sync Pricing Data
1. From Setup, in the Quick Find box, enter Permission Sets, and then select Permission Sets.
2. Open the Salesforce Pricing Design Time permission set and confirm it is assigned to the affected user under Manage Assignments.
3. Open the Assetize Order permission set and assign it to the same user under Manage Assignments. The Sync Pricing Data documentation requires Assetize Order in addition to Salesforce Pricing Design Time to ensure a complete sync of decision tables.
4. Have the user log out and log back in so the new permission set is loaded.
Cause 2: Decision table Refresh and Deactivate buttons hidden for non-admin.
1. From the App Launcher, find and select Business Rules Engine, then click the app navigation menu and select Lookup Tables.
2. Open the affected decision table and check the Created By [CreatedById] field.
3. If the decision table was created by a System Administrator, the non-admin user cannot click Refresh or Deactivate on that record. To allow a non-admin user to refresh decision tables programmatically, build a Flow with the Decision Table Refresh action and grant the user Manage Flow plus Run Flows. Schedule or invoke the flow to perform incremental or full refreshes. From Setup, perform an initial full refresh once: Setup > Decision Tables > [Decision Table] > Refresh.
4. If the user must edit decision tables directly from the UI, have them create their own decision tables, or have an administrator transfer ownership where supported.
Cause 3: Missing record sharing on Salesforce Pricing objects for runtime read
1. From Setup, in the Quick Find box, enter Sharing Settings, and then select Sharing Settings.
2. Configure record sharing (sharing rules or manual sharing) for every Salesforce Pricing object the runtime user reads, including Pricing Recipe, Pricing Procedure, Decision Table source objects, Price Adjustment Schedule, and Price Book Entry. The Configure Record Sharing for Salesforce Pricing documentation requires this configuration so runtime users can access data created by product designers or catalog admins.
3. From Setup > Permission Sets, assign Salesforce Pricing Run Time to all integration and runtime users that consume pricing data.
4. Verify field-level security on the source object that backs the decision table so that the runtime user has Read access on every Required Input and Output field defined in the decision table.
Final sync
1. From Setup, in the Quick Find box, enter Salesforce Pricing, and then select Salesforce Pricing Setup.
2. Confirm that every decision table containing source objects has Usage Type [UsageType] set to Pricing on the Lookup Tables list.
3. In the Sync Pricing Data section, click Sync.
4. Confirm the issue is resolved by logging in as the affected non-admin user, opening a quote that uses an attribute-based pricing procedure or a decision table lookup, and verifying that the decision table returns the expected rows and the pricing procedure produces the expected net price.
005385243

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.