Set up Header Adjustment in Agentforce Revenue Management
Bishwendra Singh
Discounting has always been a delicate balancing act for sales reps. Offer too little, and you risk losing the deal to a competitor. Offer too much, and you not only erode margins but also trigger lengthy approval cycles that slow everything down. This tension has long made discounting one of the most stressful parts of selling. Sales teams need the flexibility to negotiate, but they also need to be able to do that at speed and with simplicity. In Winter ‘26, Salesforce introduces Header Adjustment in Revenue Cloud, a new feature that lets sales reps apply discounts or markups at the quote header level. Instead of tediously adjusting every line item, they can now manage discounts at the quote header, saving time and ensuring consistency across the quote.
In this article, we’ll unpack what header adjustment is, why it matters for both sales and revenue operations, and how to set up header adjustment in Revenue Cloud.
1. What is Header Adjustment in Agentforce Revenue Management (Revenue Cloud), and why does it matter?
Header Adjustment in Salesforce Revenue Cloud allows sales reps to apply discounts or markups at the quote header level. In other words, instead of adjusting each line item, representatives can use a single adjustment that cascades across the entire quote. This adjustment can be specified as a percentage (e.g., 8% off the total), an absolute value (e.g., $5,000 off the deal), or as an override of the total transaction amount for the quote or order (e.g., the Entire deal for $ 15,000).
Depending on the selected distribution method, discounts are automatically distributed equally or proportionally among the line items. The price waterfall also displays the discount applied to each line item.
The following types of adjustments are possible at the Quote header level.
- Amount: Spreads the discount amount across every line item, based on the distribution logic defined.
- Percentage: Applies the specified percentage discount uniformly across all line items in the quote.
- Amount Override: Sets the quote net total to the specified value by identifying the difference between the current quoted price and the target adjustment value, and then distributes the difference amount as a discount across all lines based on the selected distribution logic.
The following distribution logic can be applied when making adjustments at the quote header level.
- Equal: Splits the discount evenly across every line item, giving each the same share.
- Proportionate: Allocates the discount based on each line item’s net total price, so higher-priced items receive a larger portion of the discount and vice versa.
At Reomagin, we view this as more than a convenient button added to the quote. When discounting is faster and simpler, reps can spend less time wrestling with the system and more time focused on winning the customer’s confidence and the deal.
2. How to configure Header Adjustment in Revenue Cloud?
In Winter ‘26, a new pricing element called ‘Discount Distribution Service’ has been introduced in Pricing Procedures. This element is used for enabling header adjustment in Revenue Cloud.
It is currently not possible to use Derived Pricing and Discount Distribution Service pricing elements in the same pricing procedure.
If you don’t use Derived Pricing, follow the instructions below to set up the Discount Distribution Service. If you want to use Header Adjustment with Derived pricing, then read our blog post here.
Set up Header Adjustment when Derived Pricing is not used.
Follow the steps below to use header adjustment when you don’t have products that use derived pricing.
Open your Pricing Procedure
Step 1. From the App Launcher, find and select ‘Pricing Procedures’
Step 2. Open the pricing procedure you are currently using for transaction management.

Step 3. Open the currently active pricing procedure version
Delete the Derived Pricing elements
Step 1. Delete the Derived Price element from your procedure.

Step 2. Find the List Group that contains conditions and assignments for derived pricing, as shown below, and delete the same.

Add constants
Step 1. Click Resource Manager.
Step 2. Click Add Resource
Step 3. Add the following resources.
| Resource Type | Resource Name | Data Type | Value |
|---|---|---|---|
| Constant | Constant_DDS_NetUnitPrice | Text | NetUnitPrice |
| Constant | Constant_DDS_Amount | Text | Amount |
| Constant | Constant_DDS_Percentage | Text | Percentage |
| Constant | Constant_DDS_Override | Text | Override |
Add a List Group to set up discount type = Amount
Step 1. After the last component in the pricing procedure, click (+)
Step 2. Select List Group. This will add a group along with the List Operation element.
Step 3. Set Filter Condition Requirements to All Conditions Are Met (AND).
Step 4. In the Resource field, select AppliedDiscountAmount__std, and in the Operator field, select Is Not Null
Step 5. Click Add Condition
Step 6. In the Resource field, select AppliedDiscount__std, and in the Operator field, select Is Null.
Step 7. Click Add Condition.
Step 8. In the Resource field, select TotalPriceOverride__std, and in the Operator field, select Is Null.

Step 9. Add an Assignment element after the List Operation component by clicking (+)
Step 10. For Input Variable, select AppliedDiscountAmount__std, and for Output Variable, select HeaderAdjustmentValue__std.
Step 11. Click Add more variables.
Step 12. For Input Variable, select Constant_DDS_Amount, and for Output Variable, select HeaderAdjustmentType__std.

Step 13. Save the changes to your Pricing Procedure.
Add a List Group to set up discount type = Percentage
Step 1. After the previous component we added in the pricing procedure, click (+)
Step 2. Select List Group. This will add a group along with the List Operation element.
Step 3. Set Filter Condition Requirements to All Conditions Are Met (AND).
Step 4. In the Resource field, select AppliedDiscount__std, and in the Operator field, select Is Not Null.
Step 5. Click Add Condition
Step 6. In the Resource field, select AppliedDiscountAmount__std, and in the Operator field, select Is Null
Step 7. Click Add Condition.
Step 8. In the Resource field, select TotalPriceOverride__std, and in the Operator field, select Is Null.

Step 9. Add an Assignment element after the List Operation component by clicking (+)
Step 10. For Input Variable, select AppliedDiscount__std, and for Output Variable, select HeaderAdjustmentValue__std.
Step 11. Click Add more variables.
Step 12. For Input Variable, select Constant_DDS_Percentage, and for Output Variable, select HeaderAdjustmentType__std.

Step 13. Save the changes to your Pricing Procedure.
Add a List Group to set up discount type = Override
Step 1. After the previous component we added in the pricing procedure, click (+)
Step 2. Select List Group. This will add a group along with the List Operation element.
Step 3. Set Filter Condition Requirements to All Conditions Are Met (AND).
Step 4. In the Resource field, select TotalPriceOverride__std, and in the Operator field, select Is Not Null.
Step 5. Click Add Condition
Step 6. In the Resource field, select AppliedDiscount__std, and in the Operator field, select Is Null.
Step 7. Click Add Condition.
Step 8. In the Resource field, select AppliedDiscountAmount__std, and in the Operator field, select Is Null

Step 9. Add an Assignment element after the List Operation component by clicking (+)
Step 10. For Input Variable, select TotalPriceOverride__std, and for Output Variable, select HeaderAdjustmentValue__std.
Step 11. Click Add more variables.
Step 12. For Input Variable, select Constant_DDS_Override, and for Output Variable, select HeaderAdjustmentType__std.

Step 13. Save the changes to your Pricing Procedure.
Add the Discount Distribution Service element
Step 1. After the previous component added in the pricing procedure, click (+)
Step 2. Select Discount Distribution Service. This will add the DDS element.

Step 3. Expand the Input Variables section and map the input variables as follows:
| Header Discount Type | HeaderAdjustmentType__std |
| Header Discount Value | HeaderAdjustmentValue__std |
| Header Distribution Logic | AdjustmentDistributionLogic__std |
| Header Distribution Type | Constant_DDS_NetUnitPrice |
| List Price | NetUnitPrice |
| Quantity | LineItemQuantity |
| Line Item | LineItem |
| Input Unit Price | NetUnitPrice |
| Header Subtotal | TotalAmount |
| Minimum Net Unit Price | MinimumNetUnitPrice |

Step 4. Expand the Output Variables section and map the output variables as follows:
| Discount Value | LineItemDiscountValue |
| Distribution Type | HeaderDistributionType |
| Discount Type | LineItemDiscountType |
| Net Unit Price | NetUnitPrice |
| Subtotal | ItemNetTotalPrice |

3. Now it’s time to test
Step 1. Create a new quote and add multiple products to it.
Step 2. Click the ‘Manage Header Adjustment’ button

Step 3. Apply different adjustment types and distribution logic.

Step 4. Hover over the Net Unit Price field to open the price waterfall and see the desired results.

FAQs
1. What are the limitations of Header Adjustment in Revenue Cloud?
Before using the Discount Distribution Service element, consider the following points.
- The Discount Distribution Service (DDS) element must be the last element in the pricing procedure.
- The DDS element can’t be used with the Derived Pricing element in the same PP.
- The element can only be used once within a single pricing procedure.
2. Is the Header Adjustment applied before or after any system adjustments?
Header adjustment is always applied at the end, after all system adjustments have been used in the price waterfall.
3. What happens if a discount is applied to a quote line manually?
The header adjustment is applied in addition to any manual discounts already applied to quote lines.

4. Is it possible to use Header Adjustment with Derived Pricing?
Yes, it is possible to use Header Adjustment if you have products that use derived pricing. Click here to follow the setup instructions.