This is the fourth edition of my Salesforce CPQ series which is intended to give an overview of CPQ concepts and how they can be implemented in Salesforce CPQ.
Earlier editions:
Salesforce certified CPQ Specialist resources
Salesforce CPQ – C in CPQ – Configure Products & Bundles
Salesforce CPQ – P in CPQ – Pricing & Discounts
This edition is intended to cover specific features related to quote process and quote document generation using Salesforce CPQ. SteelBrick’s CPQ Knowledge base has a lot of information about the same, intent of this blog is to give a high level overview of what Salesforce CPQ offers.
Quote
Quote, in general, is a document which the seller gives to the potential buyer with details about the product sold, prices at which the product is sold, discounts given, possible product specific terms & agreements. Quotes are subject to approval from within the selling organization (depending on discounts given) and also approval of the buyer.
In Salesforce CPQ, Quotes should be tagged to a pricebook to pick the list prices of the products which are required. There can be multiple quotes under an opportunity, however only one of the quotes should be the primary quote. On close winning the opportunity, the opportunity products, contract, subscription & assets are generated based on this primary quote.
Quote templates
Quote templates are used to configure how the quote document should look like. The Quote will also have a Quote Template associated to it based on which the document is generated.
A summary of different kinds of information which will help in generating the document are given below.
Branding Information
Logo, watermarks, fonts, colours, page layouts can be defined for the quote document which will be generated based on this template. For logo and watermark, the document should be uploaded and then the document id should be specified in this field.
Template’s header and footer related sections can be be associated here. This can be done using the Header Content and Footer Content fields. Separate sections need not be created for the same. However two Template Content records will be created. Assume a Template Content is a simple WYSiWYG Editor with some special properties.
Products list & proposed prices
Line columns shows the columns which need to be shown in the tabular column which gets generated for the products which are proposed in the quote.
Group by a given field to show separate tables. Sub-group by a given field to aggregate and show within one row instead of multiple rows
For bundled products which contain product options defined under a product, Quote Line Visibility at product option can be Editor only, Document only, Both. Depending on the choice here, the product is shown only in UI during the product selection or only in quote document generated or in both the places respectively
The table’s header colour can be defined using the field Shading color at quote template record.
Quote Template Sections
Sections are useful to add additional information like Terms. Sections can also be used to split the quote lines into different sections and then define different fields for different purposes (example, based on kind of products). This can be done using the filter section within the Template Section record.
We can use the After option, Before option fields to define page breaks between sections.
Quote Template Content
Quote Template Content is a set of information which can be plugged and played into the quote document by defining a new section or by setting the Header/Footer Content of the Quote Template.
In addition to be a WYSiWYG Editor, it allows us to refer information from the quote / quote line / linked objects information.
If there is any other information to be defined within the template, it can be done using static text. $Text within {} to be used for static text in doc.
Account information can be shown through the link from Quote object
As a best practice, it is advised to always clone existing templates, make each change, test, and make next change so that if document doesn’t render, it is easy to debug and there is no impact to current running processes.
Translations
Translations can be done either out of the box through the Translation Workbench for salesforce capabilities. For those that are defined in Salesforce CPQ (SteelBrick CPQ) the Localisation object is used to translate.
Sample Quote Document
Quote processes
- Process input
- Process input conditions
Post Sale Information
Subscriptions and Renewals
- Subscription Prorate Precision is possible and can be done either Day, Monthly, Day + Monthly. This can be set in Configure link on the managed package.
- Subscription term at Quote level by default is empty. If prorating is required for a given quote, this should be populated.
Contract
- Contract generated on close winning the opportunity
- Contract generated even when subscription products are not present, if renewal is contract based
- Contract generated for the primary quote with subscription term populated
Assets Creation
- Asset created one per product for non subscription products.
- Asset creation depends on ‘Asset conversion’ field in product.
- Asset creation possible one per quote line or one per unit
I hope this page helps you in your learning journey. Please feel free to add any of your blogs or point out to any missing / incorrect details in the comments section.
Hi I would like to get a password to read your last posts. Thanks already. Best regards. Jean-Luc Schellens
>
Hi Rampalli, I am helping a Salesforce California User Group find speakers to talk about CPQ, the talk can be done either virtual or in-person. Would you be interested? Pls. contact me at sz…..@gmail.com. Thank you.
Account information can be shown through the link from Quote object (Can you please explain some more How I can display the account information in the quote Template, I am having issue with the direct binding of lookup field information from the quote object. e.g. Unable to get Account name with {!quote.SBQQ__Account__r.name})