Ask Search:
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.

Best Answer chosen by Estelle Drever
Naveen DhanarajNaveen Dhanaraj
Salesforce CPQ is a separate product which requires purchase of additional licences from Salesforce.Talk to your Account Executive about  licencing
The Sales Cloud is included in the standard Salesforce CRM licence.

Based Business Use case you can decide it.But Both are different.
Mihaela SiclusanMihaela Siclusan 
Hello Community, 

I will love to know if there is a way ( I already search on the internet) to customise this page.

add existing contract in a quote

I want to add the Description field of the Contract after 'Contract End Date'

How to reproduce : 
Use an account that already has activated contracts.
Create a new opportunity, then create the associated quote. Fill in the quote start date, hit Save. The screen asking for selection of an existing contract appears.
Best Answer chosen by Mihaela Siclusan
Bart LisBart Lis
Hi Mihaela,
That field set is the "Active Contract Lookup" field set on the contract object I blieve. You should be able to define what fields you want available in the field set. 
David GoldDavid Gold 
Yes.  The CPQ and Billing teams will be monitoring all posts to ensure they are being answered in the same fashion as what you have come to expect on the Support Forum at  You will still be able to search old posts on the steelbrick site.  But for all new posts please ask your questions here.  Thanks!
Best Answer chosen by David Gold
David GoldDavid Gold will be accessible until April 2018.  
Chris HunterChris Hunter 
We currently have DocuSign for Salesforce CPQ version 3.1.1 we have continued to run into problems where we cannot edit the body of the message that is sent, it currently pulls the recipents name, but has a standard message and our reps will not use it unless they can edit the message.   I have changed the Email messages on the DocuSign Configuration object with no luck, and also changed it in the DocuSign account with no luck.

Secondly our customers think its Spam becauses its branded as DocuSign, it has DocuSign logos, and colors for the brand, how do we have it pull the brand from DocuSign?  I have set up the brand and logos in DocuSign but it does not pull through.
Best Answer chosen by Chris Hunter
Chris HunterChris Hunter
We solved this by adding review before sending, though manual it allows the reps to edit the message and brings up a DocuSign interface.
Ahmed BajwaAhmed Bajwa 

I have a custom field called Appliance_type__c on the asset that is mirrored from the quote lines. Recently I upgraded to v208.7 and now I am running into the following error when attempting to activate a contract (which in turn forecasts a renewal opp):
Validation Errors While Saving Record(s)
There were custom validation error(s) encountered while saving the affected record(s). The first validation error encountered was "Apex trigger SBQQ.ContractAfter caused an unexpected exception, contact your administrator: SBQQ.ContractAfter: execution of AfterUpdate caused by: System.SObjectException: SObject row was retrieved via SOQL without querying the requested field: Asset.Appliance_Type__c: (SBQQ)". 

I did not run into this issue before upgrading, can someone confirm if this is a known issue? Thanks
Best Answer chosen by Ahmed Bajwa
Frank ShapiroFrank Shapiro
Hi Ahmed. Twin fields on the Quote Line and Asset auto map from the Quote Line to the Asset. They do not map from the Asset to the Quote line. When you create a renewal forecast, CPQ creates a temporary quote which runs through all calculations to populate the Amount on the Renewal Opportunity. If the calculations on the quote require the Appliance_type__c field, that might be the source of the error.
Whitney WellingtonWhitney Wellington 
I'm trying to remove extra columns from the header content on my quote template, but they keep showing back up because there were no Template Sections.  However, when I add a template section, I get an error  "Error rendering document".

Apparently this is due to the source HTML for the template section, where some of the code being used is incompatible with the document generation due to the conversion from HTML to xsl-fo (converting the HTML into a pdf).

What HTML code do I need to use to resize this chart?

Unfortunately, I cannot help with customizing HTML on this case since it is considered out of scope; however, I can provide documentation that might help you along in the process.

This article discusses creating template content in Salesforce CPQ and discusses certain HTML attributes and CSS that is incompatible with the document generator. It also includes links to W3 schools and what to use in place of common HTML:

Best Answer chosen by Ed ( 
Joseph KennyJoseph Kenny
Hello, Whitney!

When there are no Template Sections (and, thusly, no template content) on a Quote Template, any generated document will show default information this inculdes:

- Company Name and info on the top left corner
- Quote #, Date:, and Expires On: in the top right corner
- Ship to and Bill To
- A table displaying the Salesperson, Ext, Email, Delivery Method, and Payment Terms
- Terms & Conditions
- A basic signature block

As soon as any template section is added containing template content, the default values will be removed and whatever is shown in your template content will be displayed. It should be noted that several HTML attributes may be interpreted differently when the document is generated versus what is shown in the previewed template content. This is because to generate a PDF, the HTML must first be translated into xsl-fo (a type of xml) and the translation is sometimes imperfect. As such, building template content sometimes requires trial and error.

Here is an article on best practices for building template content in CPQ. This article also includes certain HTML attributes that are not compatible with document generator and suggested workarounds:

I will also be posting an example of a basic HTML page I use for templates, including a table, in my next comment; that way you can see certain workarounds firsthand that are interpreted correctly by our doc gen. You are welcome to use this for reference.

Best regards,
Charlie LangCharlie Lang 
can someone help me and let me know where i can change the colums on the edit quote page for cpq

User-added image
Best Answer chosen by Charlie Lang
Kevin PappKevin Papp
Navigate to the Quote Line Object, Edit the "Line Editor" Field set.  
Bonnie BaileyBonnie Bailey 

In CPQ, I want to add the Product Name column to my template.  When I do, the product name on template is not the product name as entered.  It is in the form of a code, ex:  QL-0000105.  What am I doing wrong?  Do I *have* to use the Product Description field?  I was using that to go into more detail on a given product.
Best Answer chosen by Bonnie Bailey
Garima TotlaniGarima Totlani
Ahh, I see. The API Name you want to enter is "SBQQ__ProductName__c". The API name "Name" refers to the quote line name, not the product name. 
Pritha RayPritha Ray 
How to rename renewal Opportunity created from Contract. By default it is coming as Renewal opportunity. I want it like Renewal Old Opportunity Name Close Date of year.
Best Answer chosen by Pritha Ray
Ken WarchalowskyKen Warchalowsky
Hey Pritha,

One of three ways:

1. Via workflow
a. Create a formula field on the opportuntiy looking up through the SBQQ__RenewedContract__c pulling in the contracted opportunity (original opportunity)
b. Create a workflow on the opportunity to set the name when Renewal__c = true. Set the name to:
Formula field + YEAR(CloseDate)

2. Process builder - To avoid the formula field for the workflow, set to run only on create if Renewal__c  = true. Set the name to same formula as for workflow.

2. Via a trigger - this is currently how we do it. Limits your cross object relationship limits. Through your trigger handler set the name.

I hope that helps!