SALESFORCE CPQ [210.15.12] - OBJECT MODEL - V1.1 - MARK CANE - 2018-03-24
Custom Object
Standard Object
Opportunity
Sales Cloud Sales Process.
Quote Template
SBQQ__QuoteTemplate__c
Quote Document Template.
Selectable during Document
Generation.
Template Content
SBQQ__TemplateContent__c
Reusable Content.
Template Section
SBQQ__TemplateSection__c
Content section within a
specific Template output.
Content Name
Type:
HTML - Font, Markup
LineItems - Font, Table Type (Standard, Price
Dimensions as Cols or Row with Summary)
Quote Terms - Font
Custom - Font, Custom Source=VF Page Url
Template Top - HTML Editor, merge fields
Template Bottom - HTML Editor, merge fields
Header Content
Footer Content
Related List
Quote Template Fields:
Is Default?
Logo Document Id
Page Information (Width, Height & Margins)
Header/Footer Information (Height & Content, T&Cs)
Corporate Information
Style Information (Font, Size and Colour)
Group Style Information (Font, Size and Colour)
Section Titles
Print Options (Hide/Show Options)
Line Columns (Related List)
Sections (Related List)
Additional Documents (Related List)
Line Column
SBQQ__LineColumn__c
Column Specification within
the Quote Line Item output.
Related List
Additional Document
SBQQ__RelatedContent__c
Marketing Content
Product Specifications, Case
Studies etc.
Related List
Field Name
Style Options (Font and Margin)
Width (must add cumulatively to 100%)
Column Options (Rollup, Conditional Print,
Hide on Product Options, Summary Level,
Function and Label)
Roll Up (to the master line, if set on the
template)
Content (lookup)
Display Order
Group Field (Product Category, Subscription
Family)
Conditional Print Field
Page Break Behaviour (Before, After, Both)
Filtering Information (Field, Value, Operator)
Custom Tab
Custom Tab
Merge fields:
{!template.[field]} >> reference Quote Template fields.
{!quote.[field]} >> reference Quote Template fields.
Line Item Summaries:
Quote Template:
Group Field / Sub Group Field: Grouping QLI for totals.
Roll-Up Field: Rollup into a single line where QLI have
the same value in the value specified.
Total Field: Field to Total (Net Total Price)
Subtotal Field: (Regular Total Price)
Line Sort Field
Line Column:
Rollup?
Summary Level
Summary Function (Sum)
Summary Label
Quote Term
SBQQ__QuoteTerm__c
Quote Specific or Reusable
Legal Terms with Conditional
Logic.
Related List
Active
Locked
Body
Status (Draft, In Review, Approved,
Rejected)
Conditions Met (All, Any Custom)
Term Conditions
SBQQ__TermCondition__c
Logical Condition used in
determining whether Quote
Terms are printed.
Field or Variable
Operator
Value
Summary Variable
SBQQ__SummaryVariable__c
Variable that summarise Quote
Line items
Field
Function
Composite Operator (another Summary Variable)
Filter Field
Filter Value
Operator
Scope
Quote Terms:
Quote terms must be added to Template Content
then added to a Template Section. Evaluation of the
related Term Conditions controls inclusion in output.
Quote Templates:
Displayed for Preview or Generate Document.
All Output fields must be on the Quote object.
Section filtering:
Use filtering on LineItems content sections to
break the line items into separate sections.
Custom Tab
Product
Product2
Products that represent Goods
or Services sold by the
Company.
Name
Display Order
Required
External Id (Document or Salesforce
Content Record ID - mandatory)
Custom Tab
Quote Line
SBQQ__QuoteLine__c
Individual Quote Line Item.
Quote Document
SBQQ__QuoteDocument__c
Versioned Generated Quote
Document instance. Audit
Purposes - Admin Only.
Quote
SBQQ__Quote__c
A Customer specific Quote.
Attachment Id
Electronic Signature
Signature Status
Paper Size
Account
Customers, Suppliers,
Partners or Distributors.
Customer,
Distributor,
Partner
Contract
Commercial Contracts.
Master
Contract
PriceBook
PriceBook2
Standard and Custom
Pricebooks.
Price Book Entry
PriceBookEntry
Product List Price per
Pricebook.
Feature
SBQQ__ProductFeature__c
Headers that group related
Options.
Product Option
SBQQ__ProductOption__c
Product added to a Bundle.
Option Constraint
SBQQ__OptionConstraint__c
Constraints govern which
Product Options must or must
not be selected together.
Configuration Rule
SBQQ__ConfigurationRule__c
Product Rule links to a Product
Bundle.
Product Action
SBQQ__ProductAction__c
Actions taken when the
Product Rule FAILS.
Product Rule
SBQQ__ProductRule__c
Viability Check for Product
Configuration.
Price Dimension
SBQQ__Dimension__c
Subscription Product Price
Segment Type (Year, Month
etc.). Record per Currency.
Cost
SBQQ__Cost__c
Per Currency Cost Price.
Block Price
SBQQ__BlockPrice__c
Quantity Block Pricing -
Quantity Ranges
Price Condition
SBQQ__PriceCondition__c
Use filters, variables and
formulas to specify conditions
Price Action
SBQQ__PriceAction__c
Actions taken when the Price
Rule fires. Usually a discount,
applied or price injection.
Price Rule
SBQQ__PriceRule__c
Automate price calculations
and update Quote Line fields.
Quote Line Group
SBQQ__QuoteLineGroup__c
Custom Group of Quote Line
Items.
Contracted Price
SBQQ__ContractedPrice__c
Per Customer Pricing. Takes
Precedence.
Error Condition
SBQQ__ErrorCondition__c
Logical condition that causes
the Product Rule to FAIL.
Product Option: Configured SKU ID
EQUALS
Feature: Configured SKU ID
Configuration Rule: Product ID
EQUALS
Product Feature: Configured SKU ID
Type:
{ Validation (requires Message)
Alert (requires Message)
Selection
Filter }
Evaluation order
Evaluation events; Load, Edit, Save, Always
Scope: { Product (Inside Configurator)
Quote or Quote LineItem (Outside Configurator) }
Conditions Met: { All, Any
or Custom (Advanced Formula field) }
Tested Object
Tested Field
Operator
Value
Tested Attribute
Tested Variable
This model includes Primary Objects and
relationships only.
For information purposes exclusively.
Type: { Add, Remove, Show,
Hide, Enable, Disable }
Product (to target)
Filter Field (target all Options that match
the defined filter)
Operator
Filter Value
Value Object
Value Field
Parent Bundle Condition Level
Child Bundle Condition Level
Child Bundle Action Level
Product Rules:
Evaluate Quote Products against Conditions to validate configuration.
Error messages appear in the Quote Line Editor.
Real-time Rule Processing (Apply Immediately flag on the Product Option)
Note: Option Constraints Override Product Rules
Validation Rules: Scope=Quote.
Configuration Rules: Bundle Specific Rules.
Filter Rules: Pre filter products for Dynamic Product Bundles.
Alert Rules: Like validation but allow continuation.
Use cases:
Add a Product to a Bundle based on Conditions.
Display an Error if configuration is not viable or simply alert the Agent.
Dynamic Bundles:
Product Feature with Option Selection Method = Dynamic
Dynamic Option Filter Field Set : Product FieldSet containing Code, Name and Family
Dynamic Option Lookup Field Set : Product FieldSet containing Code, Name and Desc
There are no Product Option records.
Use Product Rules to validate the configuration.
Constaining Option
Constained Option
Type { Dependency (must)
Exclusion (can’t) {
Check Prior Purchases
Group
Option Constraints:
Override Product Rules
Groups enable AND logic to be applied where 2 options impact a 3rd option
Type { Component - fully dependent; qty and existence,
Accessory - existence only, Related Product -
independent)
Unit Price
Bundled, Required, Selected
Quote Line Visibiity
Apply Immediately
Apply Immediately Context (Always, On Selection, On
Quantity Change)
Discounted by Package
Upifted by Package
Package Product Code; Component Code, Component
Code Position?
Discount Schedule
SBQQ__DiscountSchedule__c
Automatic Volume Discount
Schedule
Product Features:
Category is the primary grouping - this groups Features in the Quote
Line Editor, which in turn groups Product Options.
Discount Schedule at Feature level overrides Product level.
Dynamic bundles are based on a Feature.
Min Options
Max Options
Category (picklist)
Configuration Field Set (Product FieldSet) -
fields display in Quote Line Editor.
Option Selection Method - { Click, Add,
Dynamic }
Products & Bundles
Pricing & Discounts
Quote Templates
Configuration Attribute
SBQQ__ConfigurationAttribute__c
Discount, Unit Price etc.
Applied to all Product Options
within a Bundle or Feature.
Custom Tab
Configuration Attributes:
Make changes to fields across Product Options within Bundle - spend less time in the
Configurator.
Row
Column (1 to 3)
Position { top (above) or bottom
(below) Product Options) }
Target Field
Required
Auto Select
Default Object & Field
Lookup Relationship
Master Detail Relationship
Product Fields:
Component
Quantity Editable
Hidden - not visible on the Quote Document
Asset Conversion { One per Quote Line, One per Unit }
Exclude from Opportunity
CPQ Configuration > Option Layout (Wizard, Sections, Tabs)
CPQ Configuration > Option Selection Method (Click, Add,
Dynamic)
Pricing > Pricing Method { List, Cost, Block, Percent of Total }
Pricing > Exclude from Percent Of Total
Subscriptions > Subscription Pricing
Subscriptions > Percent of Total
Upgrades > Upgrade Source
Upgrades > Upgrade Target
Renewals > Renewal Product
Quote Fields:
Primary
Type { Quote, Renewal, Amendment, Re-
Quote }
Status { Draft, In Review, Approved,
Denied, Presented, Accepted, Rejected }
Expires On
Margin %
Quote Line Fields:
Product
Quantity
Margin
Markup
Group
List Total / Unit Price
Net Total / Unit Price
Customer Total / Unit Price
Gross Profit
Start Date
End Date
Customer Total
List Total
Net Total
Markup %
Billing Frequency
Target Object { Quote, Quote Line,
Product Option }
Target Field (Unit Price, Discount %/£,
Markup %/£)
Value
Formula
Source Field
Source Lookup
Source Variable (Summary Variable)
Object { Quote, Quote Line, Product Option,
Summary Variable }
Field (Product Code)
Tested Variable (Summary Variable)
Tested Formula
Filter (Operator, Type, Value, Variable, Formula)
Evaluation Scope { Configurator or Calculator}
Conditions Met { All, Any or Custom }
!
Configurator Evaluation Event { None (save and
leave), Save (on save), Edit (realtime within
Configurator) }
Price Rules:
Price Rules automate price calculations and
update quote line fields. Configure Price Rules to
automatically discount Quote Lines based on
Product or Quote attributes or to inject pricing
when Quantity hits a level.
Active
Unit Cost
Used in Cost plus Margin pricing
Specific Product or Filter (Field=Product,
Product Code, Family > Operator > Value)
Price
Discount %
Eective Date -> Expiration Date
Discount Schedule
Ignore Parent Contracted Prices
Contracted Pricing:
Separate record per currency
Contracted Prices are inherited down the Account hierarchy
(to block inheritance set Ignore Parent Contracted Prices=TRUE)
EffectiveContractedPrice Visualforce page
Overlaps not allowed
Type: { Range - (quantity tier), Slab (quantity tier
plus preceding tiers i.e. Blended)
Discount Unit: % or Amount or Price
Aggregation Scope: Quote, or Quote Line Group
Cross Product: consider all product or features
that share the same schedule
Cross Orders:
Price Dimensions:
Subscription Products that contain a segment
Product > Price Dimensions Related List
MDQ = Multi-Dimensional Quote
!
Product Rules not Product Options with MDQ
Can't be used on Parent Bundle Product
Segment Index = 0 activation fee, 1 = 1 Year 1…
One time Price Dimension requires at leat one Y,
M or Q Price Dimension
Type { Year, Quarter, Month, One-time }
Quantity Editable
Quantity Scale
Unit Price
Price Editable
Taxable
Lower Bound (inclusive)
Upper Bound (exclusive)
Eective Date
Expiration Date
Pricing Waterfall:
List Price
- System Discounts
Regular Price (or Inject Special Price)
- Additional Discounts
Customer Price
- Partner Discounts
Partner Price
- Distributor Discounts
Net Price
Custom Tab
Custom Tab
Custom Tab
Custom Tab
Subscription
SBQQ__Subscription__c
Customer Subscription to a
Product or Service.
Asset
Customer Asset (Product)
Created for Non-Subscription Products when
Opportunity is set to Contracted.
Percentage of Total Pricing Method:
Percent of!Total Pricing allows a user to set a Percentage on
which the Product's List Price will be calculated based on the
Quote, Quote Line Group, or Product Bundle's Total.
Percent of Total Pricing is calculated based on non-subscription
Products and Products marked as Include in Percent of Total.
!
Product Fields:
% to Apply
Percent of Total Base: List, Regular, Customer, Net
Percent of Total Category - set on product and products included
in the calculation
Percent of Total Target - limit to a single product
Percent of Total Constraint - List Price is minimum or maximum
Include in Percent of Total
Exclude from Percent of Total
Discount Tier
SBQQ__DiscountTier__c
Discount Tier (Quantity Range)
within a Schedule
Lower
Upper
Discount Amount
Discount %
Boundaries: inclusive on Lower Bound and
exclusive on Upper Bound.
Created for Subscription Products when
Opportunity is set to Contracted.
Quote Process
SBQQ__QuoteProcess__c
Guided Selling Process
Definition
Process Input
SBQQ__ProcessInputValue__c
Question (or Prompt) within a
guided Quote Process
Process Input Condition
SBQQ__ProcessInputCondition__c
Visibility Conditions that make
the question flow dynamic
Process Input Values
SBQQ__ProcessInputValue__c
Quote Level Values for a given
Process Input
Guided Selling
Label
Input Field
Display Order
Conditions Met; All, Any
Twin fields required on QLI
Process Input
Master Process Input (value determines
visibility of the Process Input)
Operator
Value
Discount!Schedules: specify volume
discounts. These volume discounts are based
on a % of the product's price (or specific
Amount) to be discounted using the quantity
purchased or term. Set the quantity or term
ranges in tiers of dierent!discount!values.
!
Discount tiers -
Lower Bound IS INCLUSIVE
Upper Bound IS NOT INCLUSIVE
!!
Slab = Blended (1-10 5%, 11-20 10% etc.)
Range = single tier applied
!
Can be Product or Account specific
Quantity Discounted or Term Discounted.
Configuration!Attributes: are inputs located
above or below the Product Option list in the
Configurator that enable convenient setting of the
value of a field shared by one or more Product
Options on a selected Bundle .
For example, adjust the Location or Discount % of
all Product Options in a Bundle from within the
Configurator.
Summary Variables:
Similar to RSF but no fields required. Aggregate
a collection of products on a Quote.
!
Aggregate Field =! Quantity, List Price
!Where Product Code or Family = XYZ
Max, Min, Sum, Average, Count
!
Used in :Product Rules, Price Rules, Validation
Rules, Dynamic Quote Terms
!
Combine With [another SV]
Composite Operator (+ - / *)
Variable Element - SV or Value Element - literal
The Quote Process ID field indicates a Quote
Process should be used - set by workflow.
Contract Amendments and Renewals:
Contract Generation
User creates Opportunity.
User creates Quote ([Primary]=TRUE, [Start Date] & [Subscription Term] set) linked to Opportunity.
User adds Products (1xSubscription Type (e.g. Warranty), 1xAsset Type (e.g. Printer)).
User sets Opportunity field [Contracted]=TRUE.
CPQ generates Contract, Subscription (related to Contract) and Asset records.
User activates the Contract.
Contract Amendment
User clicks Contract “Amend” button.
CPQ creates Amended Opportunity (e.g Amendment for contract #00000101).
CPQ creates Amended Quote.
CPQ displays Quote Line Editor (Configurator).
User adds Products, configures Quote Lines and saves the Quote.
User sets Amendment Opportunity to [Contracted]=TRUE.
CPQ creates New Subscription for Existing Contract.
Contract Renewal
User sets Contract [Renewal Forecast]=TRUE.
CPQ creates Renewal Opportunity linked to Renewed Contract and Forward Contract.
CPQ creates Renewal Quote linked to Contract.
Advanced Approvals:
Separate Package - Advanced Approval logic for Opportunity or Quote records.
Points of dierence:
Approval Chains (parallel and independent)
Dynamic Approvers (assign based on a specific parameter - e.g. regional approval paths)
Smart Approvals (prior acceptances not re-requested on resubmission)
Steps:
(0) Setup Approvers - Users and Groups (by Public Group Id)
(1) Create Approval Chain (Target Object) “Finance”, “Sales”, “Legal” etc.
(2) Create Approval Rules
Target Object
Templates (Request, Approve, Reject, Recall)
Approver
Approval Chain
(3) Add Approval Conditions
Tested Field
Filter Field/Value/Approval Variable
Quote shows Approvers and current Approval Status in Related List
Hide the “Generate Document” button until the Quote is Approved.
Approvers and Approver Groups
Parallel and Serial Approvers at each Tier.
Record Status; { Pending, Approved, Rejected, Recalled }.
Approval Record for each Approver with Status; { Assigned, Requested, Approved, Rejected, Revoked }.
Approver is either User or Public Group Id. Approver has Unanimous flag.
Approval Chains and Email Templates
Approval Chain functions as a parallel path alongside a Serial Approval. All chained approvals executed in parallel.
Visualforce email templates only.
Approval Rules
Approval Rule has parent Approval Chain and Approver.
Approval Rule has Conditions and Email Notifications (templates) and Exclusions (statuses, date ranges.
Approval Variables and Submittal
Approval Variable; Target Object, Type (Summary) etc.
Submit for Approval button (Opportunity and Quote).
Dynamic SKU:
Product Option Fields:
Assign value to Component Code field
Assign value to Component Code Position
Product Field:
Add expression to the Component Code Pattern
e.g. 0000{10}-{20}-{30}-123
Output is stored in the Package Product Code
field on the Parent Bundle Quote Line Item.