Logik.io CPQ in ServiceNow:How to Implement Dynamic Pricing Based on Product Picker and Charactersit

AshutoshS790709
Tera Contributor

Hi,

I need to implement dynamic pricing in Logik.io CPQ ServiceNow. Based on user selections in the configurator (optional products or characteristic values), the price should update automatically.

Could someone explain:

  • Where pricing is configured for a blueprint?
  • Which rules/scripts/enrichments are used for dynamic pricing?
  • How can prices be updated based on product picker selections and characteristic values?

Any examples or best practices would be greatly appreciated.

I have attempted On Bom Response

if (ProductList.length == 0) {
    return ProductList;
}
 
ProductList.forEach(p => {
 
    var bomType = p.bomType.toLowerCase();
 
    if (bomType != "spec") {
        p.type = "COMPONENT";
        p.price = 6000;
    }
 
    if (cfg.PRODUCT_PICKER.value == "VALUE") {
        p.price = 7000;
    } 
});
 
return ProductList;
but it did not work.


I have tried the product Action rule
ProductList.id = "productCode";
 
ProductList.parentProduct = "parentProductUniqueIdentifier";
 
ProductList.uniqueIdentifier = "dynamicRoot";
 
ProductList.bomType = "SALES";
 
ProductList.price = 6000;
 
var externalAttributes = {
 
"sysId": "69017a0f536520103b6bddeeff7b127d",
 
"specificationSysId": "cfe5ef6a53702010cd6dddeeff7b12f6",
 
"pricingMethod": "recurring",
 
"periodicity": "monthly",
 
"uom": "Each",
 
"uomSysId": "cb2795d553020110286eddeeff7b12ff"
 
};
 
 
 
ProductList.extended = {
 
"externalAttributes": JSON.stringify(externalAttributes)
 
};
ProductList.next();

but this did not change the price.

Thanks!

2 REPLIES 2

Kailash Bhange
Mega Sage

Hi Ashutosh,

Good question - pricing in a Logik.ai + ServiceNow setup trips up a lot of people because there are two places a price can come from.

A few things to check first:

1. Find out which side is the "price master" in your setup. Your externalAttributes (sysId, specificationSysId, uomSysId) suggest the BOM is being mapped back to ServiceNow product offerings. In that flow, the line price on the quote is often recalculated on the ServiceNow side from the price list / product offering price after the BOM is returned, so whatever you set in p.price in Logik gets overwritten. Open the resulting quote line and compare its price with the price list entry for that offering - if they match, that is what is happening.

2. Check the Logik debug/BOM output. Run the configuration in the blueprint test/preview and inspect the BOM payload. If your price of 6000/7000 is visible in the BOM but not on the quote line, the script works and the issue is downstream mapping. If it is not in the BOM, the rule is not firing (wrong rule stage, condition never true, or the field variable name is not exactly PRODUCT_PICKER).

3. In your On BOM Response script, note that cfg.PRODUCT_PICKER.value for a product picker field may be an array or an object rather than a plain string, so the == "VALUE" comparison can silently be false. Log the value first.

4. Decide on one pricing engine. The usual recommendation is "price once, consume downstream": keep attribute/configuration-based pricing in CPQ and let SOM only capture and fulfil the order, instead of maintaining the same rules in two places.

To give you an exact rule, could you share:
- Is this Logik.ai integrated with ServiceNow SOM/CSM quotes, or standalone Logik?
- Where are you checking the price - Logik configurator summary, or the ServiceNow quote line?
- Which release / Logik version and which product (spec vs sales) should carry the price?

 

 

If this helps, please mark it helpful, and accept it as the solution once the price flows through.

Hi  @Kailash Bhange ,
We are using logik.ai integrated with ServiceNow.
We are checking the price at logik.io configurator that opens when we click customize button on the catalog page product offerings. The price remain consistent on quote line afterwards. 
We are using ServiceNow Zurich version we installed latest plugin of CPQ configurator(1.5.0) and CPQ integration(5.0.1). to access logik.ai
We are using setup external connection in CPQ to pricing so when we are opening or changing the characteristic the pricing request going to pricing engine in ServiceNow.


1. Find out which side is the "price master" in your setup. Your externalAttributes (sysId, specificationSysId, uomSysId) suggest the BOM is being mapped back to ServiceNow product offerings. In that flow, the line price on the quote is often recalculated on the ServiceNow side from the price list / product offering price after the BOM is returned, so whatever you set in p.price in Logik gets overwritten. Open the resulting quote line and compare its price with the price list entry for that offering - if they match, that is what is happening.
[Price of quote line is same as the price list entry for the offering]

2. Check the Logik debug/BOM output. Run the configuration in the blueprint test/preview and inspect the BOM payload. If your price of 6000/7000 is visible in the BOM but not on the quote line, the script works and the issue is downstream mapping. If it is not in the BOM, the rule is not firing (wrong rule stage, condition never true, or the field variable name is not exactly PRODUCT_PICKER). 
[ In the test/ preview there is no BOM output, and the debugger is in enrichment and advance function. There is no standalone debugger as we have in servicenow to check the rules.]

this is done by test frame:

 

AshutoshS790709_0-1792155147025.png

 



3. Decide on one pricing engine. The usual recommendation is "price once, consume downstream": keep attribute/configuration-based pricing in CPQ and let SOM only capture and fulfil the order, instead of maintaining the same rules in two places.   
[can you tell ne how can i set the CPQ as master so the ServiceNow price will not override cpq pricing.]

Can you look into this and suggest the solution.

Thanks