Skip to main content

#Revenue Cloud87 discutindo

Hi everyone, 

I'm currently working on attribute-based pricing in Salesforce Revenue Cloud and came across a scenario I'd like some guidance on. 

For example, I have an attribute called Color. If Color = Blue, I want to apply a 5% discount. This pricing rule should apply to every product in my product catalog. 

Using Price Adjustment Schedules , the pricing adjustment is tied to a specific product. This works well for a small catalog, but in a large product catalog with thousands of products, creating and maintaining separate Price Adjustment Schedules for each product is time-consuming and difficult to manage. 

Is there a way to define the pricing logic once and have it apply to all products instead of configuring it product by product? 

I'd appreciate any suggestions or best practices. Thanks!   

 

@* Salesforce Revenue Cloud * 

1 resposta
0/9000

I have a scenario when the Product A added to the quote and i try to add any other product then i should have a error. Also if i have added other products then i should not be allowed to add a Product A. Can this be done just with RCA configurations or CML?

2 respostas
  1. Ontem 10:57

    The question is likely no longer relevant, but here is a possible solution for anyone who might encounter this in the future. 

    In the example bellow Product A is a Laptop. 

     

    CML:

    type LineItem;

    type Laptop : LineItem;

    type Desktop : LineItem;

    type Printer : LineItem;

    @(virtual = true)

    type Quote {

    @(sourceContextNode = "SalesTransaction.SalesTransactionItem")

    relation lines : LineItem[0..200];

    constraint(lines[Laptop] == 0 || lines[LineItem] == lines[Laptop], "Laptop must be quoted on its own. Remove the other products, or remove the Laptop.");

    }

    Result:The question is likely no longer relevant, but here is a possible solution for anyone who might encounter this in the future. In the example bellow Product A is a Laptop.

     

    When you will write your own CML please make sure it is not slow.

0/9000

Does anyone know if to disqualify a product, we strictly need to create a Product disqualification record?

The use case I have is that we want to replace entitlement policies with disqualification rules, and basically we have a custom field on the product2 object, we want to disqualify (and hide in our storefront) all products that don’t have an specific value on that picklist field (value != goodValue). 

All examples I could find involved creating records for the disqualification standard object, and I want to know if that is the only way. Category disqualification is not applicable as we still want to see those specific categories on the storefront, only products hidden.

If there is no way to do that then I would need to create a disqualification record for each product I want to disqualify, which would be a lot of tech debt. 

 

#Revenue Cloud  #Decision Tables  #B2B Commerce  #Products

0/9000

Hi everyone,

I’m facing an issue with Renewal Opportunities in Revenue Cloud.

Assets are created successfully after Order Activation, and Amendments are also working correctly. However, the Renewal Opportunity is not being created, even though the Create and Update Renewal Opportunities flow is active.

Has anyone faced a similar issue or knows what configuration needs to be checked for Renewal Opportunity creation?

Any suggestions would be really helpful. Thank you! 

 

#Revenue Cloud  #Salesforce Revenue Cloud

1 resposta
  1. Ontem 12:12

    Hi Thanusha - when assets exist, amendments work, and the flow is active but no renewal opp appears, the cause is almost always timing/eligibility rather than a broken flow. Things to check, most likely first: 

     

    1) Renewal window / timing. Renewal Opportunities generate relative to the asset/subscription end date, not right after activation. If the asset's end date isn't yet inside the renewal window (e.g. a 1-year term that just started), the renewal opp isn't due to be created yet. Confirm how far ahead renewals are meant to generate and whether these assets fall in that window. 

     

    2) Is the flow actually running on schedule? 'Active' is not the same as 'scheduled/executed'. If it's a scheduled flow, verify it has a schedule and has actually run since the assets were created - check its run history / scheduled paths. A record-triggered version needs the triggering change to occur. 

     

    3) Asset/product renewability. The asset has to be renewable - the product configured with a renewal term/lifecycle so it's eligible. A non-subscription or non-lifecycle-managed asset won't spawn a renewal opp even if everything else is set. 

     

    4) Entry criteria / duplicates. Check the flow's entry conditions (asset status, lifecycle stage) and whether a renewal opp already exists for that asset - many renewal flows skip assets that already have one. 

     

    5) Errors. Check the flow's error/debug logs and Paused and Failed Flow Interviews - a silent failure (governor limit, a null on some records) would skip exactly those assets while working for others. 

     

    Since amendments already work, I'd bet on #1 or #2 (timing/schedule). If you can share the asset end date and whether the renewal flow is scheduled vs record-triggered, it's easy to narrow down.

0/9000

I have created a product category disqualification.  But, under quote when I click "Browse Catalogs" that particular category is visible.  I have even refreshed decision tables(Product Qualification, Product Disqualification) but still it isn't working.  Can anyone help me?     @* Salesforce Revenue Cloud * 

2 respostas
0/9000

We are using Agentforce Revenue Management (RCA). Our client uses Quote Line Groups with ramped segmentation. When we contract the quote, we get assets with asset state periods for each segment.

 

When we create a renewal quote using Renew Asset Action for a contract, renewal quote gets created without any groups and segments. Although the original asset has three segments, renewal quote creates lines without original groups and segments. It creates only quote line for only one year although the original contract was for three years. 

 

If there is no out of the box solution, how can this be accomplished?

 

Is there any out of the box solution to create renewal quote with the original contract term and segments with future renewal dates.

0/9000

We're on Agentforce Revenue Management (ARM). We have a requirement to periodically check whether a Renewal Quote (auto-generated ahead of a contract's end date) still matches the current state of the customer's Assets — since amendments or cancellations can happen after the renewal quote is created but before it's finalized. Our objective is to refresh the renewal quote for any changes in the Contract after the renewal quote is created.

 

We're trying to understand the correct data model traversal for this in ARM, given the objects involved: 

  • Contract — the source contract being renewed
  • Asset — related to the Contract
  • AssetContractRelationship — junction object between Asset and Contract
  • AssetAction — the transaction log capturing lifecycle events (amend, renew, cancel) on an Asset

 

Questions for the community: 

  1. What is the standard/recommended relationship path from a Quote (or Contract) to determine which Assets are currently associated with it — direct Asset.ContractId, or through AssetContractRelationship? When does ARM use one versus the other?
  2. Is AssetAction intended to be queried directly to detect "has this Asset changed since a given date," or is that considered an anti-pattern (i.e., should current state be read only from Asset's own fields, with AssetAction treated purely as historical/audit data)?
  3. Is there a standard/OOTB field or relationship that ties a Quote or its Quote Line Items back to the Asset(s) it's renewing, or is Contract the only reliable join point?
  4. Are there known data model diagrams or official Salesforce documentation that cover this specific Quote/Contract/Asset/AssetContractRelationship/AssetAction relationship set for ARM specifically (as opposed to CPQ Classic)?

Any pointers to official documentation, Trailhead modules, or real implementation experience would be appreciated.

0/9000

I have a nested bundle structure. I want to store the child line items in the bundle level. I used aggregate price element. It is including parent product count as well. I tried adding conditions but it is not working.  

Rollup number of childs on nested bundle.

 

5 respostas
  1. 11 de ago., 12:34

    Hi All, 

    I was able to achieve the Roll up aggregate on Parent Bundle .But I dont want on child items any data should be populated . So I have custom field called Package List price which holds Total of sum of List Prices of the child . Ideally I want only the total should be populated on Parent and not on Child Products

     

    Hi All, I was able to achieve the Roll up aggregate on Parent Bundle .But I dont want on child items any data should be populated .

     

    image.png

0/9000

Hi Team,

I have a question regarding the use of Salesforce Record-Triggered Flows in Revenue Lifecycle Management (RLM).

I'm trying to determine whether a Record-Triggered Flow can be used to dynamically update the List Price and Total Amount based on specific business conditions.

In my use case, the List Price is not fixed—it depends on different combinations of field values. For example:

  •  If Jurisdiction is populated, then the List Price should be XXX
  •  If both Market and Jurisdiction are populated, then the List Price should be YYY
  •  Additional combinations may result in different List Prices. 

My current thought is to implement this logic using a Decision element in the flow to evaluate the conditions, followed by Assignment

elements to set the appropriate List Price and recalculate the Total. 

 

Then how we can use in pricing prodecedure ?? 

Or Pricing procedure override my flow list price.??

6 respostas
  1. 9 de ago., 23:33

    You can create a custom decision table, and add it to the Pricing Recipe as a 'List Price', and add a custom List Price element in your Pricing Procedure

0/9000

  I'm implementing Term Discounts in Salesforce Revenue Cloud Advanced (RLM) :      I have completed the implementation, but the custom pricing is not getting applied to the Quote.  Configuration completed

  •  Created a custom object to store Term Discount records. 
  •  Created the required Formula Based Pricing. 
  •  Created a Decision Table with term ranges and discount percentages. 
  •  Created a Price Adjustment Matrix. 
  •  Added the Formula, Decision Table, and Price Adjustment Matrix to the Pricing Procedure. 
  •  Added the Pricing Procedure to the active Pricing Recipe. 
  •  Configured the required constants. 
  •  Configured the Context Definition mappings. 
  •  Activated all the required metadata (Pricing Procedure, Pricing Recipe, Decision Table, Price Adjustment Matrix, etc.). 

Expected Result

The discount should be applied based on the subscription term.

Example:

  •  12–24 months → 10% 
  •  25–36 months → 15% 
  •  37+ months → 25% 

Actual Result

The Quote pricing is calculated, but the custom Term Discount is never applied. The Net Unit Price remains unchanged.

I have verified the configuration multiple times against the article but cannot identify what is missing.

Questions

  1.  Is there any additional configuration required in Revenue Cloud Advanced that is not covered in the article? 
  2.  Besides the Pricing Procedure, Pricing Recipe, Decision Table, and Price Adjustment Matrix, are there any prerequisites required for custom pricing logic to execute? 
  3.  Has anyone successfully implemented this functionality in a Revenue Cloud Advanced Developer Edition? If so, were there any additional setup steps required? 
  4.  What would you recommend checking when a custom pricing implementation is configured correctly but the pricing is still not being applied? 

Any suggestions or guidance would be greatly appreciated.

Thank you! 

2 respostas
  1. 9 de ago., 19:41

    when you configure the Price Adjustment Matrix element, you need to pass the InputUnitPrice, Quantity along that your custom attributes to filter the Tier data.  

    PAM element is sufficient to adjust the price and provide NetUnitPrice.  

    I am not sure, what exactly you are doing in the formula based pricing. 

0/9000