Ask Search:
Leanne ArdleyLeanne Ardley 

I know it's possible to auto-approve a record with standard Approvals, but how can I auto-approve a record with Advanced Approvals? 

Example, a Rep has created a Quote with Product A, which requires approval by management if the discount is over certain thresholds. If the discount is under these thresholds though, they can approve it themselves, that is the Quote is auto-approved. 

Rep Approval 0-10% (A rep can auto-approve a Quote if the discount is 0-10%)
Regional Sales Manager 11-20% (Regional Sales Manager must approve the Quote if the discount is 11-20%)
VP Sales 21-30% (VP Sales must also approve the Quote if the discount is 21-30%)

Ideally, the Rep would ALWAYS submit for approval, no matter what discounts are applied, and it would be approved automatically if it was 0-10%. But as this wasn't working, I also tried to add an Approval Rule in, where the Rep was the approver themselves. I did this with the CreatedBy field on the Quote, and also tried a custom Quote_Creator__c field, but neither of them worked. I got an error in the Preview Approval window stating "Unable to find Approver for Rule ID".

Any help would be greatly appreciated. I would be really surprised/disappointed if this cannot be done in Advanced Approvals, since it can be done in Standard Approvals. 


Best Answer chosen by Leanne Ardley
Leanne ArdleyLeanne Ardley
Opened a Case with a Salesforce and they got back to me with how to do this. All you have to do is Submit for Approval and make sure that your record doesn't meet the conditions of any of the approval rules. If it doesn't, then it will be set to Approved. It's a little confusing in that the Preview Approval page says "No Approval Required", but they said this message cannot be changed. Anyway, thanks Salesforce! 
Nancy GreshamNancy Gresham 

Hi All! Hoping someone can help. :)
When I use the 'Save and Email' button after Generating a Quote Document, the email is related to the Opportunity and not the Quote.  Is there a setting where I can change this?  I'd like the email to be related to the Quote so that the rep doesn't have to remember to change those values.  I'm using a VF email template that pulls values from SBQQ__Quote__c. Thanks so much!

Best Answer chosen by Nancy Gresham
John KnightJohn Knight
Hi Nancy, I'm not a VF expert, but would it work to leave the email related to the opportunity and pull from the primary quote?  Each opp should have only one primary quote related.
Rui FonsecaRui Fonseca 
Hi all,

I have my price book with prices defined with 4 decimal places, given the use case I am working on has products that are priced in cents, such as 18.92 cents ($0.1892).
I have set the CPQ package settings so the unit price scale also matches that setting:
User-added image
However, when selecting a product, the quote line rounds that unit price to 2 decimal places, though displaying the value with 4 decimal places, as shown below, which then results in a wrong calculation of the net price:
User-added image
Has anyone faced such issue? Any help would be highly appreciated!
Many thanks in advance :)
Best Answer chosen by Rui Fonseca
Rui FonsecaRui Fonseca
Hi guys, for everyone's benefit, this is logged as a bug already for Salesforce CPQ Summer '18 v214
Known Issue below:
Mihaela TutescuMihaela Tutescu 
I am trying to add the document name ({!Document.Name}) field in the templates we are generating, but the merge field does not work. 
I used also a custom document name, but without success. 
Does anybody have an idea why the merge field {!Document.Name} is not working?
Best Answer chosen by Mihaela Tutescu
Dustin PenrodDustin Penrod
To add to that, when you're using a merge field you're only pulling fields from the Quote record, or you can use lookup relationships to pull from records to which the Quote is associated (for example, the account). The relationship from Quote to Quote Doc is one to many, and no lookup exists on the Quote to the Quote Document, so this can't be done out of the box. You'd have to fnd a way to store the Quote Doc name onto the Quote record itself. 
Ahmed BajwaAhmed Bajwa 


With the Steelbrick documentation no longer available, I am hoping for some help with the funtionality of this feature. This what it appears to do for us:

In our scenario, we use discount schedules to setup volume pricing and the lookups we typically fill out are the Product and Price books. So each combination of Product/Pricebook has a unique discount schedule, if volume pricing is applicable.

-You can set the Override Behviour to All or Current Tier Only
-This allows users to edit the discount schedule tiers or discounts when in the quote checkout page
-If the user does make changes and saves the discount schedule, a new discount schedule record is created in the background, which has User Defined = TRUE , and the account, quote, quote line and original discount schedule lookup fields are filled appropriately.

Question: Does this newly created discount schedule only apply to this quote? My testing is showing that it applies to all quotes moving forward, regardless of account. Doesn't having the account/quote/quote line lookup set on the discount schedule limit which quotes will get the discount schedule moving forward?

Ideally we would like to have our typical discount schedule apply to all customers, but give the users the ability to override for certain customers/quotes (on a quote by quote basis) and we don't want the override to apply on future quotes or quotes on other accounts.


Best Answer chosen by Ahmed Bajwa
Farah CarlosFarah Carlos
Hi Ahmed,

Steelbrick documentation has moved over to Salesforce. For the Discount Schedule document, please see To answer your question, user defined discount schedule if added via the QLE is expected to only apply to the said quote. The Discount Schedule fields that are populated when a user defines it are SBQQ__Account__c, SBQQ__Quote__c, 
SBQQ__UserDefined__c, SBQQ__OriginalDiscountSchedule__c. I found these fields populated when I tested in my own dev org.
Wendy KwanWendy Kwan 
How do I make this custom field date to display April 1, 2018 instead of 4/1/2018?
I would like to figure out how to write the function in the Custom Field Definition Detail next to SBQQ__Account__r.op2_Original_Contract_Date__c

Any help will be much appreciated.  Thanks!
User-added image
Best Answer chosen by Wendy Kwan
Tom HoffmanTom Hoffman
Not sure if CPQ will let you modify that field if its part of the managed package; if not you could create your own field with a formula like this:

'December')&' '&Day(YourDateField)&', '&Year(YourDateField)

This will give you the Month DD, YYYY format. 
Tina CancinoTina Cancino 
We have installed CPQ  in salesforce production.  We then created a sandbox in salesforce, and CPQ seemed to copy over as per productions configurations except for the edit line process. 

The buttons on the edit lines page are not visible like they are in productions. Has anyone run into this? if so, does it mean I need to uninstall and reinstall CPQ in salesforce sandbox? 
Best Answer chosen by Tina Cancino
April ZhaoApril Zhao
You can also try to execute post-install scripts to see if that will populate the buttons in the line editor.
Setup > Installed Packages > Configure Salesforce CPQ > Additional Settings > Execute Scripts
Victor HansonVictor Hanson 
We're using MDQ Products and need the ability to apply the Additional Discount to the price before applying the uplift.  Is there any way to do this?

example calculation is below
Price: $30,000
Uplift: 5%
Additional Discount: $2,000
CPQ Calculation: $29,500                   calculation = (30,000*(1.05))-2,000=29,500
Desired Calculation: $29,400            calculation = (30,000-2,000)*(1.05)=29,400
Difference: $100

I can't find a definitive answer, but it looks like the order of operations is currently to apply the uplift then apply the Additional Discount to the resulting value, but we need the order of this reversed.
Best Answer chosen by Victor Hanson
Frank ShapiroFrank Shapiro

Rather than a trigger, you would use a Quote Calculator Plugin (QCP).

Austin TurnerAustin Turner 
I am having difficulty attempting to add a product and selecting options when using the CPQ Public API.  I can get the parent product added, but the documentation does not include information on how to select and configure options that are not already pre-selected.
After I call SBQQ.ProductAPI.ProductLoader and get the response, what data manipulations do I need to do from here to select the options I need included?

Do I need to use the configuration api, or is there a way to select the options I want selected?
I tried adding options to the "optionConfigurations" in the product model and setting SBQQ__Selected__c = true;, but nothing I selected was retained when the data was passed to the load() 'SBQQ.QuoteAPI.QuoteProductAdder'.
Our use case:
We are automating amendments in a batch job and need to cancel and replace a bundle with a parent, child, and multiple grand-child products.
Best Answer chosen by Austin Turner
Austin TurnerAustin Turner
Yes, I was finally able to resolve the problem.
Assistance was obtained here: and here

Resolution information for any other folks that need to work with the poorly documented API:
Within the ProductModel.configuration object, make sure that:
Top level product:
  • configured = true;
  • configurationEntered = true; (Note: this field is NOT included in the documented data model)
Options: (items in configuration.optionConfigurations)
  • Copy the desired options from the options[].record and add them to configuration.optionConfigurations[] (only required if not selected by default)
  • optionalSKU=product being configured
  • configured=true
  • configurationEntered=true (I don't think this is required on the options, but I set anyway)
  • optionData=product option record
  • If you need to adjust any fields on the option to twin to the QL, adjust the fields within optionData

HUGE caveat:
You CANNOT run a calculation sequence in the same execution context as your code to get the products because it requires HTTP callout and there are DML data that is not committed to the DB (mixed DML error), even though we will NEVER save the data that is modified, SFDC knows that it is a possibility so it will throw an error.
We had to chain our batch job to kick off another batch job in the finish() method to run the calculate on the quote(s) that we amended.

Spencer WilliamsSpencer Williams 
By switching on multi-currency (to allow for CAD and USD), the quote document now displays CAD or USD instead of "$," which has messed up the document's formatting, as well as giving it a less professional look.

I understand that adding a new text formula field on the quote object is the go-to solution, but the formula's not working out properly, and the quote is still displaying "CAD."

What's the DocumentCurrencySymbol__c formula supposed to look like, and how is it supposed to be set for views?
Best Answer chosen by Spencer Williams
Frank ShapiroFrank Shapiro
Spencer - If you see it on the edit screen, but not on the actual layout, then you have to change the Field Level Security of the field to make it visible. Also make sure you have read access to the CurrencyIsoCode field.