Set up Header Adjustment with Derived Pricing in Agentforce Revenue Management
Bishwendra Singh
In our previous blog post, we explained what header adjustment is in Agentforce Revenue Management (Revenue Cloud Advanced) and the steps to set it up if you are not using derived pricing.
In this article, we describe the steps required to set up Header Adjustment in Agentforce Revenue Management if you have products that use Derived Pricing.
Set up Header Adjustments when Derived Pricing is used.
Follow the steps below to use header adjustments when you have products that use derived pricing.
Create a Pricing Procedure
Step 1. From the App Launcher, find and select ‘Pricing Procedures’
Step 2. Click the New button to create a new pricing procedure.
Step 3. Enter an appropriate Name and press Tab to autopopulate the API Name.
Step 4. Select Pricing as the usage type
Step 5. Select your extended SalesTransactionContext as the context definition
Step 6. Click Save
Step 7. On the PP details page, under the Pricing Procedure Versions section, click the pricing procedure version to open it.

Add constants to the new Pricing Procedure
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 |

Enable Procedure Plan Orchestration
If you don’t already have the procedure plan definition enabled, then follow the steps below to do the same.
Step 1. Navigate to Revenue Settings from the Setup menu.
Step 2. Find and enable Procedure Plan Orchestration for Pricing.
Step 3. Find and enable Exclude Default and Sales Transaction Type Pricing Procedures.
Create Procedure Plan Definitions
Now you need to create a procedure plan definition for quote object.
Step 1. Navigate to Procedure Plan Definitions from the Setup menu.
Step 2. Click New to create a new procedure plan definition and enter the following details:
| Title | Procedure Plan for Quote Pricing |
| Developer Name | <automatically populated> |
| Process Type | Revenue Cloud |
| Primary Object | Quote |
| Context Definition | <Select your extended SalesTransactionContext context definition> |
| Description | This procedure plan contains a pricing procedure for header adjustment to be executed with a pricing procedure containing derived pricing element. |
Step 3. Click Save
Step 4. Now open this newly created procedure plan definition record.
Step 5. Update Read Context Mapping to ‘QuoteEntitiesMapping’
Step 6. Update Save Context Mapping to ‘QuoteEntitiesMapping’
Step 7. Click ‘Add’ to create a new section for the default pricing procedure and enter the following details:
| Standard | True |
| Name | Default_PricingProcedure |
| Section Type | Pricing Procedure |
Step 8. Click Save to save the changes.
Step 9. Expand
- Select ‘Pricing’ under the phases dropdown
- Select ‘Default’ for resolution Type
- Under Procedure, select your default procedure used for transaction management
Step 10. Click ‘Add’ to create a new section for the newly created discount distribution service pricing procedure and enter the following details:
| Standard | True |
| Name | HeaderAdjustment_PricingProcedure |
| Section Type | Pricing Procedure |
Step 11. Click Save to save the changes.
Step 12. Expand
- Select ‘Pricing’ under the phases dropdown
- Select ‘Default’ for resolution Type
- Under Procedure, select the newly created Pricing procedure with the Discount Distribution Service element setup.
Step 13. Click Activate
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 adjustments are 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 adjustments are applied on top of the manual discounts applied to any quote lines.
