Salesforce CPQ Study Guide - 2020
Salesforce CPQ Study Guide - 2020
com 1
I wrote this guide based on my own experience studying and passing the Salesforce
CPQ Specialist exam. Safe harbor - results are not guaranteed.
**This has been updated to reflect the changes made by Salesforce to exam contents to
further explain additional sections of the CPQ package.
The exam is broken down into 8 sections based on the Salesforce Certification page
provided for the CPQ exam. I will break my guide down based on these topics.
➔ Product
◆ Make sure to know that the object is Standard to Salesforce and the API
name is Product2
◆ Quantity Editable = TRUE means that the quantity can be edited in the
Quote Line Editor
◆ Component = TRUE on the Product record will prevent the Product from
appearing in the Line Editor
◆ To allow users to see Product Options in the Configurator, Configuration
Type = Allowed and Configuration Event = Always on the Product record
◆ Hidden = TRUE prevents the Product from being seen on the Quote
Document
◆ Option Selection Method dictates how the user will view the Bundle:
● Click gives the user checkboxes for the Options
● Add gives the user a popup
◆ Option Layout - None gives the user Sections
◆ Exclude from Opportunity means the Product will not be transferred to the
Opp
◆ SBQQ__ExcludeFromMaintenance__c is the API name for Exclude from
Percent of Total - this field will exclude the Product from the % of total
calculations
sf9to5 - Journey of a Salesforce Geek
http://sf9to5.com
© sf9to5.com 3
➔ Product Option
◆ Know the difference in the Type field of Component, Accessory, and
Related Product
● Component - completely dependent, quantity and existence of the
option
● Accessory - only dependent on existence as an option
● Related Product - no dependencies and cannot be on an option with
Required = TRUE
● Not selecting an option / None treats the option as a component
when part of a Feature and as a Related Product the rest of the time
◆ The unit price on Option will override the price book value
◆ Quote Line Visibility: Always, Editor only, Document only, or Never (hides
the option from both the Quote Line and the Quote Document)
◆ Bundled = TRUE means that it is part of a bundle with a set quantity and a
zero price (treated as a component for determining the quantity)
◆ Apply Immediately = TRUE means the changes for the Option will happen
immediately - this should be used sparingly. The Apply Immediately
Context is a related drop-down list
◆ Discounted by Package = TRUE applies the discounts from the parent
down to the option
◆ Package Product Code (Quote Line) is created via 3 Product Option fields
● Configured Code Pattern
● Component Code Position
● Component Code
➔ Product Features
◆ Think of Features as the headers of grouping the Product Options together
◆ The Features are what make up the sections of a Product Bundle
◆ Category is a field used that can be used with the Features to construct
Tabs with Sections
➔ Product Rules
◆ Product Rules can be used for setting up Product Selection, displaying an
Alert (pop up to the user), or to display a Validation Rule to the user
◆ Type is the field that defines the type of Product Rule it is
◆ Message is required when using either a Validation rule or an Alert
◆ Evaluation Events can be as follows (Quote calculated sequencing):
● Load - when the configuration page loads
● Edit - when a user selects/deselects an option - this can provide
real-time information to the user if it is used in conjunction with the
Apply Immediately flag on the Option
● Save
● Always - use sparingly in cases when a real-time notification is
necessary
◆ The Error Condition related list acts as a filter for deciding if the rule will
run
◆ If Conditions Met is set to Custom then the Advanced formula field should
be used like this for custom logic that is not only AND or only OR
◆ The Tested Object field in the Error Condition will be used if you are using
a Tested field for evaluation
◆ The Tested Field field is a dependent picklist based on the Tested Object
◆ Summary Variables can be used as part of the Error Condition if you need
a sum or count of another field
◆ Custom Lookup Objects can be noted in the Lookup Object field on the
Product Rule
◆ Lookup Queries can also look at Configuration Attributes on the Product
◆ Configuration Rules set a specific Product/Bundle to that Product Rule
◆ Product Actions dictate what will happen when the Error Conditions are
met. Options include:
● Show, Hide, Add, Remove, Enable, Disable
◆ The Scope of the Product Rule determines where to apply the rule to,
either:
● Product, which is inside the Configurator
● Quote, outside of Configuration for the whole Quote
➔ Price Books
◆ Every Product requires a minimum of 1 Standard Price Entry per each
currency even if the amount is $0.00
◆ If you will use custom Price Books you must have a matching Standard
Price Book Entry for each currency
➔ Cost + Markup
◆ This is a related list on Product and unlocks the Markup field
◆ This acts as the list price and works as a Price Book Entry
◆ Using Cost opens up the Margin field on the Quote LIne and can be used in
a roll-up summary
➔ Block Pricing
◆ This can be used instead of or in conjunction with Discount Schedules
● This combination is good when you do not want to determine a
starting price for an Overage Rate
○ OverageRate is a special field in CPQ that must be created
using their naming convention in order to reap the benefits
◆ This sets a flat price based on a set number of units
◆ This will override the standard calculation of list price * quantity
◆ For each range of units, you need a block price - this will mean multiple
lines
➔ Usage Based Pricing
◆ Ensure that the following fields are always populated when using this type
of pricing model:
● Charge Type
● Billing Type
● Subscription Term
● Billing Frequency
● Subscription Pricing
◆ A consumption schedule must exist for usage based pricing to work
◆ A consumption rate, connected to the consumption schedule is also
required
◆ There are two types of consumption rates
● Flat Fee: This charges a flat amount regardless of the amount
bought within a particular range
sf9to5 - Journey of a Salesforce Geek
http://sf9to5.com
© sf9to5.com 9
➔ Price Rules
◆ Price Rules are similar in nature to Product Rules, you can use them to
inject discounts or update pricing based on certain criteria
● They can also be used to stamp information to either the quote or
quote line
◆ Evaluation Event determines when the rule will be evaluated and will run
◆ If there are multiple Price Actions and one of the updated fields in the
Price is required for another calculation in the same rule an error will occur
◆ Price Rules cannot be based on Configuration Attributes
◆ You can reference a Lookup object on the Price Rule
◆ Price rules always run in the QLE, they cannot run on the product
configuration page
➔ Contracted Pricing
◆ This is a specific pricing model for a customer set at either the account or
from the quote
◆ It can be used with Discount Schedules, Price Rules, or Block Pricing
◆ The contracted price can either be a dollar amount or a discount
percentage
◆ Overlaps are not allowed in Contracted Pricing
◆ Mark Ignore Parent Contracted Prices as TRUE if you do not want the
Parent Account contracted pricing model to impact the children accounts
◆ Contracted Pricing wins over all other pricing options
➔ Quote Templates
◆ This is the document that the user will select when they click Preview or
Generate Document
◆ The details of this object can control the width, colors, header, and footer
◆ All colors are written in HEX (e.g. #FFFFFF)
◆ Any field that you want to be displayed on a Quote Template will need to
be added to the Quote object (i.e. Account or Opportunity level fields)
➔ Line Columns
◆ This is where you set the information that will be displayed in the Line
Items section of the Quote Document
◆ You can modify the column widths per each individual column, but the end
result must equal 100%
◆ You can set up Dynamic Columns / Conditional Fields using a
combination of the Conditional Print Field picklist on the Line Column and
the respective field on the Quote object
◆ The Roll-Up field if marked TRUE will roll up in summary based on what is
marked on the Quote object
➔ Template Sections and Sections
◆ These two items are directly related, Sections is the related list on the
Quote Template that looks up the Template Section
◆ Template Sections can be the Header, Footer, Terms, Line Items or
something custom
◆ You will need to create a Template Section for each Item
◆ The Group Field found in the Template Section can be used to group Line
Items on the quote
● SBQQ__Group__c is the related field on the Quote Line and Quote
Line Group
◆ If you want to have different Line Items sections that display different
information you can use the Filter fields - you should both include and
exclude what you want to see/ not see
◆ Page Break determines where a Page Break will happen, which can be
Before, After or Both
◆ Keep with Previous Options is the opposite of Page Break and will try and
keep the template sections together on the same page even if it means
breaking up the section itself
➔ Quote Terms
◆ Body is the field with the relevant text
◆ Make sure to make the Quote Terms Active or they will not appear
◆ Quote Terms can be conditional by using the Term Conditions related list
◆ If you want to prevent anyone from modifying the Quote Terms set the
Locked field to TRUE
◆ Once the Quote Term record has been made be sure to create a
corresponding Template Section for it
➔ Additional Documents
◆ Just know that is a related list on the Quote Template and on the
Template Section
◆ This is where you can add any additional relevant documents that should
be attached to the Quote Document
◆ CPQ comes with an out of the box process for handling Contracts, Orders,
Amendments, and Renewals
◆ There are two ways to create a Contract, either from an Order or from an
Opportunity
◆ There are two ways to generate an Order, either from the Contract or from
the Quote
● The Quote must be primary
◆ After a Contract is created, if an adjustment needs to be made, you can
use the Amend button on the Contract record
◆ Clicking the Amend button generates an amendment quote and a new
amendment opportunity
● It is important that the amendment opportunity be contracted
whether through the Opportunity or the Order so that the
adjustments are reflected on the original contract
◆ Renewal Forecast on the Contract set to TRUE will auto-create a Renewal
Opportunity
◆ Renewal Quoted on the Contract set to TRUE will auto-create a Renewal
Quote
◆ Uplift can be applied on a Renewal quote
➔ Assets and Subscriptions
◆ If a Product does not appear, make sure that the Product is marked
Active, that there is a Standard Price Book entry, then make sure there is
a Price Book Entry for whatever currency the Opportunity is in
◆ You cannot have more than one Price Book per Opportunity
◆ There is no standard way for debugging Price Rules
◆ Quote Line wins over Quote and Quote Line Group for Subscription Term
and End Date
◆ Understand the data-migration flow:
https://sf9to5.com/2017/09/28/cpq-data-migration/
◆ Package Settings that are important to know are:
● Prorate Precision
● Multi-Line Delete
● Allow Non-Consecutive Custom Segments
a. http://www.vandeveldejan.com/tips/for-admins/22-resources-for-passing
-the-salesforce-certified-cpq-specialist-exam
b. https://rsbsarma.wordpress.com/2017/07/27/salesforce-certified-cpq-sp
ecialist-preparation-resources/
c. https://help.salesforce.com/articleView?id=cpq_get_started.htm&type=5