Top 50 Salesforce CPQ Interview Questions 2026 — Bundles, Price Rules, Renewals & Plugins Explained

📅  CPQ
Salesforce CPQ Interview Questions 2026 — Top 50 Q&A
💵 Salesforce CPQ

Salesforce CPQ Interview Questions 2026

Products, Pricebooks, Bundles, Discount Schedules, Quote Line Editor & Approval Rules — Top 50 Q&As from Basic to Advanced

50
Questions
3
Difficulty Levels
2026
Updated
Free
Always
🟩 Basic Level — Foundation Questions
Q1
What is Salesforce CPQ? Basic

📍 What is CPQ?

CPQ stands for Configure, Price, Quote. It is a Salesforce product that helps sales teams generate accurate and professional quotes quickly by automating the configuration of products, pricing rules and quote generation.

LetterMeaningWhat It Does
CConfigureBuild product bundles and select correct options
PPriceApply pricing rules, discounts and markups automatically
QQuoteGenerate professional PDF quotes and proposals
💬 One-Liner:
"CPQ automates the entire quoting process — from product configuration to accurate pricing to professional quote generation — reducing errors and speeding up the sales cycle."
Q2
What is the difference between a standard Salesforce Pricebook and a CPQ Pricebook? Basic
FactorStandard PricebookCPQ Pricebook
LocationStandard Salesforce objectSBQQ__PriceBook__c custom object
FeaturesBasic price listSupports block pricing, discount schedules
SegmentationLimitedCustomer segment, channel, region based
IntegrationOpportunity productsCPQ Quote Line Items
💬 One-Liner:
"Standard Pricebook is a simple price list. CPQ Pricebook supports advanced pricing strategies like block pricing, discount schedules and segment-based pricing."
Q3
What is a Product Bundle in Salesforce CPQ? Basic

📍 What is a Bundle?

A Bundle is a parent product that contains child products called Options. Bundles allow you to group related products together and configure them as a single unit in a quote.

📍 Bundle Components

ComponentDescription
Bundle ProductThe parent product (e.g. Laptop Package)
Product OptionsChild products inside the bundle (e.g. RAM, Storage)
FeatureGroups of options within a bundle
Configuration AttributeShared attributes across all options in a feature
💬 One-Liner:
"A Bundle is a parent product containing configurable child options. Features group related options and Configuration Attributes set shared values across a feature."
Q4
What are Product Options in CPQ and what is their significance? Basic

📍 Product Options

Product Options are child products inside a bundle. They define which products can be selected when configuring a bundle and control behavior like whether they are required, optional or hidden.

📍 Key Product Option Fields

FieldPurpose
RequiredOption must be selected — cannot be removed
OptionalRep can choose to include or exclude
SelectedPre-selected by default but can be removed
BundledIncluded automatically, hidden from UI
Min/Max QuantityControls how many units can be selected
💬 One-Liner:
"Product Options are child products inside a bundle. The Type field controls whether an option is Required, Optional, Selected or Bundled — determining what the sales rep can or cannot change during configuration."
Q5
What is a CPQ Quote and how is it different from a standard Salesforce Opportunity? Basic
FactorOpportunityCPQ Quote
ObjectStandard OpportunitySBQQ__Quote__c
PurposeTrack sales pipelineGenerate accurate price quotes
ProductsOpportunity Line ItemsQuote Line Items with advanced pricing
PricingManualAutomated via price rules
OutputNo documentGenerates PDF quote document
ApprovalsBasicAdvanced quote approval workflows
💬 One-Liner:
"An Opportunity tracks the deal. A CPQ Quote is where the actual product configuration, pricing and document generation happens. Multiple quotes can exist per opportunity but only one is marked Primary."
Q6
What is a Price Rule in Salesforce CPQ? Basic

📍 What is a Price Rule?

A Price Rule is an automated pricing action that fires when certain conditions are met on a quote. It allows you to automatically update prices, quantities or custom fields on Quote Lines based on logic.

📍 Price Rule Components

ComponentPurpose
Price ConditionWhen the rule fires — field values that trigger it
Price ActionWhat happens — which field gets updated with what value
Price VariableDynamic value used in price actions
Lookup ObjectExternal data source for pricing values
💬 One-Liner:
"A Price Rule fires automated pricing actions when conditions are met. It has Price Conditions that trigger it and Price Actions that update fields — allowing dynamic pricing without manual intervention."
Q7
What is a Discount Schedule in CPQ? Basic

📍 Discount Schedule

A Discount Schedule automatically applies tiered discounts based on quantity or term. The more a customer buys or the longer the contract, the bigger the discount applied automatically.

📍 Two Types

TypeBased OnExample
SlabEach tier has its own discount1-10 units = 5%, 11-50 = 10%, 51+ = 15%
RangeHighest tier discount applies to allBuy 51 units = 15% on ALL 51 units
💬 One-Liner:
"Discount Schedule automatically applies tiered discounts based on quantity or term. Slab type gives different rates per tier, Range type applies the highest tier rate to the entire quantity."
Q8
What is the Quote Line Editor (QLE) in Salesforce CPQ? Basic

📍 Quote Line Editor

The Quote Line Editor is the main UI in CPQ where sales reps configure products, set quantities, apply discounts and manage quote lines. It replaces the standard Opportunity Products page with a richer, more powerful interface.

📍 Key QLE Features

  • Add products and bundles to the quote
  • Set quantities, discounts and start/end dates
  • View price waterfall — list price to net price breakdown
  • Apply manual discounts with approval triggers
  • Drag and drop product ordering
  • Group products into quote line groups
💬 One-Liner:
"The Quote Line Editor is the CPQ UI where sales reps configure products, set discounts and see the full price waterfall from list price to net price in real time."
Q9
What is the Price Waterfall in Salesforce CPQ? Basic

📍 Price Waterfall

The Price Waterfall is the sequence of pricing steps CPQ applies to calculate the final net price on a quote line. Each step can reduce or modify the price.

List Price
    ↓ (minus) Partner Discount
    ↓ = Partner Price
    ↓ (minus) Customer Discount
    ↓ = Customer Price
    ↓ (minus) Additional Discount
    ↓ = Net Price
    ↓ (plus) Markup
    ↓ = Quote Line Price
💬 One-Liner:
"The Price Waterfall shows every discount and markup applied in sequence — from List Price down to the final Net Price. Understanding it is essential for explaining how CPQ calculates pricing."
Q10
What is a CPQ Product Feature? Basic

📍 Product Feature

A Product Feature is a grouping mechanism inside a bundle that organizes related Product Options together. It also allows you to set selection rules like minimum and maximum number of options a rep can choose from that group.

FieldPurpose
Min OptionsMinimum options rep must select from this feature
Max OptionsMaximum options rep can select from this feature
CategoryGroups features for display in configurator UI
💬 One-Liner:
"Product Features group Options inside a bundle and control selection rules — Min Options and Max Options enforce how many items a rep must or can select from each group."
Q11
What is a Configuration Rule in CPQ? Basic

📍 Configuration Rule

Configuration Rules control the logic of product selection inside bundles. They automatically add, remove, enable or disable options based on what other options have been selected.

Rule TypeWhat It Does
InclusionAutomatically adds an option when another is selected
ExclusionRemoves or disables an option when another is selected
ValidationShows error if invalid combination is selected
💬 One-Liner:
"Configuration Rules enforce product selection logic inside bundles — Inclusion rules auto-add related options, Exclusion rules prevent invalid combinations, Validation rules show errors for incompatible selections."
Q12
What is a Quote Template in CPQ? Basic

📍 Quote Template

A Quote Template defines the visual layout and content of the PDF quote document generated by CPQ. It controls what sections appear, what data shows, and how the document looks.

  • Built using a drag-and-drop template editor
  • Supports rich HTML and custom branding
  • Can include dynamic fields from Quote and Quote Lines
  • Multiple templates can exist for different use cases
  • Template is selected on the Quote record before generating
💬 One-Liner:
"A Quote Template controls the layout and content of the PDF document generated from a CPQ quote — including branding, sections, dynamic fields and line item formatting."
Q13
What is the difference between List Price, Customer Price and Net Price in CPQ? Basic
Price FieldDefinition
List PriceOriginal price from the Pricebook — before any discounts
Special PricePrice after block pricing or price rules applied
Customer PricePrice after customer-level discount applied
Partner PricePrice after partner/channel discount applied
Net PriceFinal price after ALL discounts applied
Net TotalNet Price multiplied by Quantity
💬 One-Liner:
"List Price is the starting price. Each discount level reduces it further. Net Price is the final price after ALL discounts in the waterfall have been applied."
Q14
What is a Product Rule in CPQ? Basic

📍 Product Rule

Product Rules are validation and automation rules that control which products can or cannot be added together on a quote. They fire in the Quote Line Editor when products are added or configured.

Rule TypePurpose
ValidationShows error if invalid products are selected together
SelectionAutomatically adds or removes products on the quote
FilterHides products from the product catalog based on criteria
AlertShows a warning message but does not block
💬 One-Liner:
"Product Rules control which products can be combined on a quote. Validation blocks invalid combos, Selection auto-adds related products, Filter hides products from catalog, Alert warns without blocking."
Q15
What is a Primary Quote in Salesforce CPQ? Basic

📍 Primary Quote

An Opportunity can have multiple CPQ Quotes but only one can be marked as Primary. The Primary Quote syncs its products back to the Opportunity as Opportunity Line Items.

  • Only one quote per opportunity can be Primary at a time
  • Marking a quote as Primary automatically un-marks the previous one
  • Primary Quote drives the Opportunity Amount
  • When a Quote is Contracted, it is typically the Primary Quote
💬 One-Liner:
"The Primary Quote is the one selected quote per Opportunity that syncs its line items back to Opportunity Products and drives the Opportunity Amount."
🟡 Intermediate Level — Core CPQ Concepts
Q16
What is the difference between a Product Rule and a Price Rule in CPQ? Intermediate
FactorProduct RulePrice Rule
PurposeControls product selection and validationControls pricing calculation
Fires WhenProducts added/configured in QLEQuote is priced or saved
ActionAdd, remove, validate productsUpdate price fields on quote lines
OutputProduct added/removed or error shownField value updated automatically
ComponentsConditions + Actions + Error MessagesConditions + Actions + Variables + Lookups
💬 One-Liner:
"Product Rules control WHAT products appear on a quote — validation, selection, filtering. Price Rules control HOW products are priced — automating field updates based on conditions."
Q17
What is a Price Variable in CPQ and how does it work? Intermediate

📍 Price Variable

A Price Variable is a dynamic value used inside Price Actions. Instead of hardcoding a price, you reference a Price Variable that calculates a value from a field, lookup table or formula at runtime.

📍 Price Variable Sources

SourceWhere Value Comes From
Quote Line FieldA field on the current quote line
Quote FieldA field on the parent quote
Lookup QueryA value from a custom object lookup
Summary VariableAggregated value across multiple quote lines
💬 One-Liner:
"Price Variables make Price Actions dynamic. Instead of hardcoded values, they pull data from quote fields, quote line fields or lookup tables at runtime — enabling flexible, data-driven pricing."
Q18
What is a Lookup Object in CPQ and when would you use it? Intermediate

📍 Lookup Object

A Lookup Object is a custom Salesforce object used as a pricing matrix. CPQ can query it during pricing to find the correct price or discount based on multiple dimensions like customer segment, region, product type and quantity.

📍 Real World Example

Custom Object: CPQ_Discount_Matrix__c
Fields:
- Customer_Segment__c (Enterprise, SMB, Startup)
- Region__c (North, South, East, West)
- Product_Family__c (Hardware, Software)
- Discount_Percent__c

CPQ Price Rule queries this object based on
Quote fields to find the correct discount.
💬 One-Liner:
"Lookup Objects act as pricing matrices. CPQ queries them during pricing using multiple filter fields to return the correct price or discount — enabling complex multi-dimensional pricing without code."
Q19
What is a Summary Variable in CPQ? Intermediate

📍 Summary Variable

A Summary Variable aggregates values across multiple quote lines into a single number. It can calculate totals, counts, minimums or maximums across quote lines and use that aggregated value in Price Rules or Product Rules.

Aggregation TypeWhat It Calculates
SUMTotal of a field across all matching lines
COUNTNumber of lines matching the filter
MAXHighest value across matching lines
MINLowest value across matching lines

Example: Count how many software products are on the quote — if more than 5, apply a 10% bundle discount.

💬 One-Liner:
"Summary Variables aggregate values across quote lines — SUM, COUNT, MAX or MIN. They are used in Price Rules to make pricing decisions based on the entire quote composition."
Q20
What is a CPQ Approval Rule? How is it different from standard Salesforce Approval Process? Intermediate
FactorStandard Approval ProcessCPQ Approval Rule
TriggerManual submit or criteriaAutomatically triggers on quote submission
ConditionsField-based criteriaDiscount thresholds, margins, special pricing
ApproversStatic or formulaDynamic based on conditions
Parallel ApprovalsLimitedFully supported
Lock QuoteNoLocks quote during approval automatically
💬 One-Liner:
"CPQ Approval Rules are purpose-built for quote approvals based on discount thresholds and margins. They automatically trigger, lock the quote during review, and support complex parallel approval chains — unlike standard approval processes."
Q21
What is Block Pricing in Salesforce CPQ? Intermediate

📍 Block Pricing

Block Pricing allows you to define flat prices for ranges of quantities instead of a per-unit price. The customer pays one fixed price for any quantity within a defined block.

Quantity BlockBlock Price
1 — 10 users$500 flat
11 — 50 users$1,500 flat
51 — 100 users$2,500 flat

Example: A SaaS company charges $500 for up to 10 users. Whether you buy 1 or 10 users — you pay $500.

💬 One-Liner:
"Block Pricing charges a flat price for a range of quantities. Unlike per-unit pricing, buying 1 or 10 units within the same block costs the same flat amount."
Q22
What is the difference between Contracted Price and List Price in CPQ? Intermediate
FactorList PriceContracted Price
DefinitionStandard price from PricebookNegotiated price for a specific account
ScopeApplies to all customersAccount-specific
OverrideBase starting pointOverrides List Price for that account
ObjectPricebookEntrySBQQ__ContractedPrice__c

Example: Product list price is $1,000. Enterprise customer negotiated $750. The Contracted Price of $750 is used instead of $1,000 when quoting for that account.

💬 One-Liner:
"Contracted Prices are account-specific negotiated prices that override the standard Pricebook List Price when generating quotes for that particular account."
Q23
What is a CPQ Amendment and what happens during an Amendment? Intermediate

📍 Amendment

An Amendment is a mid-term change to an active contract. It creates a new quote and order to reflect changes like adding products, removing products or changing quantities during the contract period.

📍 What Happens During Amendment

  • CPQ creates a new Amendment Opportunity and Quote
  • Existing subscription products are loaded as read-only
  • Rep adds new products or modifies quantities
  • CPQ calculates prorated amounts for mid-term changes
  • Amendment Quote is contracted to update the active contract
💬 One-Liner:
"An Amendment modifies an active contract mid-term. CPQ creates a new quote with existing products locked, allows changes, and automatically calculates prorated amounts for the remaining contract period."
Q24
What is a CPQ Renewal and how does it work? Intermediate

📍 Renewal

A Renewal is the process of extending a contract when it is about to expire. CPQ can automatically create a Renewal Opportunity and Quote before the contract end date.

📍 Renewal Flow

Active Contract nearing end date
          ↓
CPQ auto-creates Renewal Opportunity
          ↓
Renewal Quote created with same products
          ↓
Rep can modify quantities/pricing
          ↓
Quote contracted → New Contract created

📍 Key Renewal Settings

SettingPurpose
Renewal ForecastInclude renewal in forecast
Renewal Pricing MethodSame, uplift or pricebook pricing
Auto Create RenewalsAutomatically create renewal opportunity
💬 One-Liner:
"Renewals extend expiring contracts. CPQ auto-creates a Renewal Opportunity and Quote with the same products — rep can modify before contracting to create a new active contract."
Q25
What are Subscription Products in CPQ and how do they differ from one-time products? Intermediate
FactorOne-Time ProductSubscription Product
BillingSingle chargeRecurring charge (monthly/annual)
ContractNo contract asset createdCreates Contract Asset and Subscription record
RenewalNot renewedAppears on renewal quotes automatically
AmendmentNot includedIncluded in amendment quotes
ProrationNo prorationProrated for mid-term changes
💬 One-Liner:
"Subscription Products create recurring contract records and appear on Renewals and Amendments automatically. One-time products are billed once and do not create Contract Assets."
Q26
What is Proration in Salesforce CPQ and how does it work? Intermediate

📍 Proration

Proration calculates the partial period charge when a subscription product is added or changed mid-term. Instead of charging the full period price, CPQ charges only for the remaining portion of the billing period.

Annual Subscription = $12,000 per year
Customer adds product on July 1 (mid-year)
Remaining months = 6 out of 12

Prorated Amount = $12,000 × (6/12) = $6,000

📍 Proration Methods

MethodHow it Calculates
DailyCharges per day remaining in period
MonthlyCharges per full month remaining
NoneNo proration — full period charge always
💬 One-Liner:
"Proration charges only for the remaining time in a billing period when a subscription is added or changed mid-term. CPQ calculates this automatically based on the product's proration method."
Q27
What is a Quote Line Group in CPQ? Intermediate

📍 Quote Line Group

Quote Line Groups organize quote lines into logical sections in the Quote Line Editor. Each group can have its own start date, end date, and discount — useful for multi-phase or multi-location deals.

📍 Use Cases

  • Multi-year deals with different products per year
  • Multi-location quotes with different pricing per site
  • Separating hardware and software on one quote
  • Applying group-level discounts to sections
💬 One-Liner:
"Quote Line Groups organize quote lines into sections — each group can have its own dates and discount. Perfect for multi-phase, multi-year or multi-location deals on a single quote."
Q28
How does CPQ handle multi-currency pricing? Intermediate

📍 Multi-Currency in CPQ

CPQ supports Salesforce's standard multi-currency feature. When a quote is created in a non-default currency, CPQ automatically converts prices using the exchange rates defined in Salesforce.

  • Quote currency is set on the Quote record
  • Pricebook entries can have currency-specific prices
  • CPQ uses active exchange rates for conversion
  • Advanced Multi-Currency (Dated Exchange Rates) is also supported
  • Net Total is displayed in the quote currency
💬 One-Liner:
"CPQ uses Salesforce's native multi-currency framework — quotes can be in any active currency and CPQ automatically converts pricebook prices using active or dated exchange rates."
Q29
What is a CPQ Order and how is it generated from a Quote? Intermediate

📍 CPQ Order

A CPQ Order is created from a contracted quote and represents the customer's commitment to purchase. It drives fulfillment and billing downstream.

📍 Quote to Order Flow

Quote created and configured
          ↓
Quote approved (if approval rules trigger)
          ↓
Quote contracted → Contract created
          ↓
Order generated from Contract
          ↓
Order Products created
          ↓
Order activated → Billing/Fulfillment triggered
💬 One-Liner:
"A CPQ Order is generated from a contracted quote and represents the customer's purchase commitment. It contains Order Products mapped from Quote Lines and drives downstream fulfillment and billing."
Q30
What is the difference between a CPQ Contract and a standard Salesforce Contract? Intermediate
FactorStandard ContractCPQ Contract
CreationManualAuto-created from contracted quote
SubscriptionsNot trackedCreates Subscription records per line
AssetsNot createdCreates Contract Asset records
RenewalsManualDrives auto-renewal creation
AmendmentsNot supportedSupports mid-term amendments
💬 One-Liner:
"A CPQ Contract is auto-created from a contracted quote and maintains Subscription and Asset records — enabling automatic renewals and mid-term amendments that standard Salesforce Contracts cannot do."
🔴 Advanced Level — Senior Developer & Architect Questions
Q31
How does the CPQ pricing engine calculate the final price? Walk through the complete calculation order. Advanced

📍 CPQ Pricing Calculation Order

Step 1: Original Price (from Pricebook Entry)
Step 2: Block Pricing applied (if configured)
Step 3: Price Rules evaluated in order
Step 4: Contracted Prices applied (if exists for account)
Step 5: Discount Schedules applied
Step 6: Option-level discounts applied (for bundles)
Step 7: Partner Discounts applied
Step 8: Customer Discounts applied
Step 9: Additional Discounts applied
Step 10: Markup Rates applied (if any)
Step 11: Net Price calculated

Price Rules fire in the order of their Evaluation Order field. Lower numbers fire first. This order is critical — changing it can produce different results.

💬 One-Liner:
"The CPQ pricing engine follows a strict sequence — Block Pricing, then Price Rules in evaluation order, then Contracted Prices, then Discount Schedules, then partner and customer discounts, finally producing the Net Price."
Q32
What is CPQ Twin Fields and why are they important? Advanced

📍 Twin Fields

Twin Fields are matching fields on related CPQ objects that automatically sync values between them. When a field value changes on one object, CPQ automatically updates the corresponding field on the paired object.

📍 Common Twin Field Pairs

Source ObjectTarget ObjectPurpose
Quote LineContract AssetSync custom fields to assets on contracting
Quote LineSubscriptionSync fields to subscription records
ProductQuote LineDefault product values to quote line

Twin Fields must have identical API names and compatible field types on both objects.

💬 One-Liner:
"Twin Fields automatically sync matching field values between related CPQ objects. They are essential for passing custom data from Quote Lines to Contract Assets and Subscriptions without code."
Q33
How would you implement a complex pricing scenario where the discount depends on the combination of customer tier, region and total deal size? Advanced

📍 Solution — Lookup Object + Price Variable + Price Rule

Step 1: Create Custom Object — Pricing_Matrix__c
Fields:
  - Customer_Tier__c (Gold, Silver, Bronze)
  - Region__c (North, South, East, West)
  - Min_Deal_Size__c (Number)
  - Max_Deal_Size__c (Number)
  - Discount_Percent__c (Number)

Step 2: Create Lookup Object in CPQ
Configure to match on:
  - Customer_Tier__c = Quote.Customer_Tier__c
  - Region__c = Quote.Region__c
  - Min_Deal_Size__c <= Quote.Net_Amount
  - Max_Deal_Size__c >= Quote.Net_Amount

Step 3: Create Price Variable
Source: Lookup Object
Field: Discount_Percent__c

Step 4: Create Price Rule
Condition: Always true (fires on all lines)
Action: Set Additional_Discount__c = Price Variable value
💬 One-Liner:
"For multi-dimensional pricing, create a Lookup Object as a pricing matrix, use a Price Variable to retrieve the matching value, and a Price Rule to apply it to quote lines — zero Apex code required."
Q34
What is the SBQQ.QuoteModel API and when would you use it? Advanced

📍 SBQQ.QuoteModel API

The SBQQ.QuoteModel API is CPQ's JavaScript and Apex API that allows developers to programmatically interact with the Quote Line Editor — reading quote data, modifying line items and triggering pricing calculations.

📍 Key API Methods

MethodPurpose
SBQQ.ServiceRouterEntry point for all CPQ API calls
CPQ.QuoteReaderRead quote data as JSON
CPQ.QuoteCalculatorTrigger pricing calculation programmatically
CPQ.QuoteSaverSave quote changes programmatically
// Trigger CPQ pricing calculation via API
String quoteJSON = SBQQ.ServiceRouter.read('SBQQ.QuoteAPI.QuoteReader', quoteId);
Map<String,Object> quoteData = (Map<String,Object>)JSON.deserializeUntyped(quoteJSON);
// Modify quote data
String savedQuote = SBQQ.ServiceRouter.save('SBQQ.QuoteAPI.QuoteSaver', JSON.serialize(quoteData));
💬 One-Liner:
"The SBQQ.QuoteModel API lets developers programmatically read, modify and recalculate CPQ quotes via the ServiceRouter. Use it when you need custom integrations or automation that the declarative CPQ tools cannot handle."
Q35
What are CPQ Plugins and what types exist? Advanced

📍 CPQ Plugins

CPQ Plugins are Apex interfaces that allow developers to inject custom logic into specific points of the CPQ process — like pricing, product search, document generation and quote calculations.

Plugin InterfacePurpose
SBQQ.PricingPluginInject custom pricing logic during calculation
SBQQ.ProductSearchPluginCustomize product catalog search results
SBQQ.DocumentPluginCustomize PDF quote generation
SBQQ.QuotePluginCustom logic on quote save/calculate events
SBQQ.PackagePluginCustom logic during package product selection
// Example Pricing Plugin
global class CustomPricingPlugin implements SBQQ.PricingPlugin {
    global void onBeforeCalculate(SBQQ.SBQuote quote, List<SBQQ.SBQuoteLine> lines) {
        // Custom logic before CPQ pricing runs
        for(SBQQ.SBQuoteLine line : lines) {
            // Modify line prices
        }
    }
}
💬 One-Liner:
"CPQ Plugins are Apex interfaces that inject custom code at specific points in the CPQ process. PricingPlugin is the most commonly used — it lets you modify prices before or after CPQ's standard calculation runs."
Q36
How would you prevent a quote from being contracted if the margin falls below a threshold? Advanced

📍 Solution — CPQ Approval Rule + Margin Field

Step 1: Create Custom Formula Field on Quote
Margin_Percent__c = (Net_Amount - Cost_Amount) / Net_Amount * 100

Step 2: Create CPQ Approval Rule
Condition: Margin_Percent__c < 20
Action: Require approval from Finance Manager

Step 3: Approval Rule settings
- Lock Quote = TRUE (prevents editing during review)
- Prevent Contracting = TRUE (blocks Contract button)

Result:
- Rep submits quote with 15% margin
- CPQ triggers approval automatically
- Quote is locked, Contract button disabled
- Finance Manager approves or rejects
- If rejected — rep must revise pricing
💬 One-Liner:
"Use a CPQ Approval Rule with a margin formula field as the condition and enable 'Prevent Contracting' — this locks the quote and blocks the Contract button until Finance approves the low-margin deal."
Q37
What is CPQ's handling of Evergreen Subscriptions versus Termed Subscriptions? Advanced
FactorTermed SubscriptionEvergreen Subscription
End DateHas defined end dateNo end date — runs indefinitely
RenewalRenewal quote auto-createdNo renewal needed
ContractContract has end dateContract has no end date
AmendmentProrated for remaining termNo proration calculation
Use CaseAnnual/multi-year SaaS licensesMonth-to-month subscriptions
💬 One-Liner:
"Termed subscriptions have a defined end date and trigger renewal quotes automatically. Evergreen subscriptions run indefinitely with no end date and no renewal process — ideal for month-to-month billing."
Q38
How does CPQ integrate with Salesforce Billing? What is the handoff process? Advanced

📍 CPQ to Billing Handoff

CPQ Quote created and configured
          ↓
Quote contracted → Contract + Subscriptions created
          ↓
Order generated from Contract
          ↓
Order activated in CPQ
          ↓
Salesforce Billing picks up activated Order
          ↓
Billing Schedule created per Order Product
          ↓
Invoice generated on billing date
          ↓
Payment processed

📍 Key Integration Points

CPQ ObjectBilling Object
Quote LineOrder Product → Billing Schedule
SubscriptionBilling Subscription
ContractBilling Account
💬 One-Liner:
"CPQ handles configuration, pricing and contracting. Salesforce Billing picks up the activated Order and creates Billing Schedules that drive invoice generation and payment processing."
Q39
Your CPQ Price Rules are not firing as expected — how do you debug this? Advanced

📍 Debugging Price Rules Step by Step

Step 1: Check Price Rule Active flag
Ensure SBQQ__Active__c = true on the rule

Step 2: Check Evaluation Event
Should match when you expect it to fire:
- On Initialize, On Calculate, On Save, Always

Step 3: Verify Price Conditions
Open rule → check conditions are correct
Test condition logic manually with real data

Step 4: Check Evaluation Order
Lower number = fires first
Ensure dependent rules fire in correct sequence

Step 5: Enable CPQ Debug Logs
URL parameter: ?sbqq.debug=true
Open browser console to see pricing log

Step 6: Use CPQ Calculator API
Force calculation and inspect JSON payload
Check if conditions evaluate to true

Step 7: Check Price Variable source
Ensure lookup object has matching records
Verify field API names match exactly
💬 One-Liner:
"Debug CPQ Price Rules by checking Active flag, Evaluation Event, Condition logic, Evaluation Order, and using the ?sbqq.debug=true URL parameter to see the full pricing calculation log in the browser console."
Q40
What are CPQ Configuration Attributes and how do they differ from Product Options? Advanced
FactorProduct OptionConfiguration Attribute
What it isA child product inside a bundleA shared attribute/field across a Feature
PurposeSelect products to includeSet a value that applies to all options in a Feature
ExampleRAM: 8GB, 16GB, 32GB optionsColor: applies same color to all selected hardware options
Appears InProduct selection listAttribute input above options in configurator
💬 One-Liner:
"Product Options are products you select inside a bundle. Configuration Attributes are shared values that apply to all options in a Feature — like selecting a color or region that affects all options in that group."
Q41
How would you implement a scenario where adding Product A automatically adds Product B and removes Product C? Advanced

📍 Solution — Product Rule with Selection Type

Rule 1: Auto-Add Product B when Product A added
Type: Selection
Conditions: 
  - Product A is selected on quote (Quote Line field check)
Actions:
  - Add Product B to quote
  - Set Quantity = 1

Rule 2: Auto-Remove Product C when Product A added
Type: Selection
Conditions:
  - Product A is selected on quote
  - Product C is on the quote
Actions:
  - Remove Product C from quote

Rule Scope:
  - Set scope to "Quote" level (not Line level)
  - Evaluation Event: On Initialization and On Save
💬 One-Liner:
"Use two Selection-type Product Rules — one with an Add action to auto-include Product B, and one with a Remove action to auto-exclude Product C — both triggered by the presence of Product A on the quote."
Q42
What is the difference between SBQQ__Quote__c and Opportunity in terms of data model relationship? Advanced

📍 CPQ Data Model

Opportunity (Standard Object)
  └── SBQQ__Quote__c (1 to Many — multiple quotes per opp)
        └── SBQQ__QuoteLine__c (1 to Many — quote line items)
              └── SBQQ__QuoteLineGroup__c (optional grouping)

Contract (Standard Object)
  └── SBQQ__Subscription__c (per subscription product)
  └── SBQQ__ContractedPrice__c (negotiated prices)
  └── Asset (per asset product)

Order (Standard Object)
  └── OrderItem (Order Products)
        └── SBQQ__OrderItemConsumptionSchedule__c

📍 Key Relationships

RelationshipField
Quote → OpportunitySBQQ__Opportunity2__c
Quote Line → QuoteSBQQ__Quote__c
Quote Line → ProductSBQQ__Product__c
Subscription → ContractSBQQ__Contract__c
💬 One-Liner:
"An Opportunity can have many Quotes. A Quote has many Quote Lines. On contracting, Quote Lines become Subscriptions or Assets on the Contract. Order and Order Items are created for fulfillment."
Q43
How do you handle CPQ performance issues when the Quote Line Editor is loading slowly? Advanced

📍 Common Causes and Fixes

CauseFix
Too many active Price RulesReview and deactivate unused rules. Combine rules where possible
Price Rules with complex SOQLAdd indexes to lookup object filter fields
Large number of quote linesUse Quote Line Groups to paginate display
Too many product options in bundleBreak large bundles into smaller nested bundles
Excessive CPQ triggersReview custom triggers on Quote Line object
Column limits in QLEReduce visible columns in column editor settings
💬 One-Liner:
"CPQ performance issues are usually caused by too many active Price Rules with complex lookups, excessive quote lines, or large bundles. Reduce rule count, add custom indexes to lookup fields, and break large bundles into nested smaller ones."
Q44
What is a Nested Bundle in CPQ and when would you use it? Advanced

📍 Nested Bundle

A Nested Bundle is a bundle within a bundle — a child product option that itself is a configurable bundle. This creates a hierarchy of configurable products for complex product offerings.

Parent Bundle: Enterprise Suite
  └── Feature: Core Products
        └── CRM Bundle (Nested Bundle)
              └── Option: Sales Cloud
              └── Option: Service Cloud
        └── Analytics Bundle (Nested Bundle)
              └── Option: Tableau
              └── Option: Einstein Analytics

📍 When to Use

  • Complex enterprise products with multiple configurable sub-components
  • Products with deeply nested option hierarchies
  • When flat bundles become too large to manage
💬 One-Liner:
"Nested Bundles are bundles within bundles — useful for complex enterprise products with multiple independently configurable sub-components. They improve organization and performance compared to one massive flat bundle."
Q45
How would you migrate CPQ configuration from Sandbox to Production safely? Advanced

📍 CPQ Migration Approach

Step 1: Use CPQ's built-in export/import
Setup → Installed Packages → CPQ Settings
→ Use Data Export/Import for CPQ metadata

Step 2: Use Salesforce Change Sets
For standard metadata (profiles, fields, page layouts)
CPQ custom objects are included automatically

Step 3: Use Data Loader or SFDX for data records
Export: Products, Pricebooks, Price Rules, Product Rules
Maintain record relationships using External IDs
Import in correct dependency order

Deployment Order:
1. Products and Pricebooks
2. Product Features and Options
3. Price Rules and Actions
4. Product Rules
5. Discount Schedules
6. Quote Templates
7. Approval Rules
💬 One-Liner:
"CPQ migration requires careful ordering — Products first, then Options, then Rules, then Templates. Use External IDs for relationship mapping and always deploy in dependency order to avoid reference errors."
Q46
What is the CPQ Package Settings object and what are its most important settings? Advanced

📍 CPQ Package Settings

The CPQ Package Settings object (SBQQ__PackageProductsSettings__c) controls global CPQ behavior across the entire org.

SettingPurpose
Quote Line Editable FieldsControls which fields are editable in QLE
Proration PrecisionDecimal precision for prorated amounts
Auto Create OrdersAutomatically create orders on contracting
Contracted Price PriorityWhether contracted prices override price rules
Net Unit Price EditableAllow reps to manually edit net price
Enable Large Quote ExperiencePerformance mode for quotes with 100+ lines
💬 One-Liner:
"CPQ Package Settings control global org-wide behavior — from field editability and proration precision to auto-order creation. Understanding these settings is critical for CPQ architecture decisions."
Q47
How do you customize the Product Configurator UI in CPQ? Advanced

📍 Customization Options

MethodWhat You Can Customize
Feature CategoriesGroup features into tabs or sections
Configuration AttributesAdd input fields above option lists
Custom ActionsAdd buttons to the configurator header
Option ColumnsControl which fields show per option row
Lightning PluginInject custom LWC components into the configurator
Product Search FilterCustomize via ProductSearchPlugin Apex interface

For deep UI customization, use the SBQQ.ProductSearchPlugin or inject custom components using the CPQ Lightning Plugin framework.

💬 One-Liner:
"CPQ Configurator UI can be customized via Feature Categories, Configuration Attributes, Option Column visibility and Custom Actions declaratively. For deeper customization, use the CPQ Lightning Plugin framework to inject LWC components."
Q48
What happens when a CPQ Contract is amended and how does proration affect existing subscriptions? Advanced

📍 Amendment + Proration Flow

Active Contract: Jan 1 - Dec 31, Annual $12,000
Amendment initiated: July 1 (6 months remaining)

Scenario A: Add new product at $6,000/year
Prorated charge = $6,000 × (6/12) = $3,000 for remainder

Scenario B: Increase existing product quantity from 10 to 15
Original per unit = $100/month
Additional 5 units × $100 × 6 months = $3,000 prorated

Scenario C: Remove a product mid-term
Credit calculated for remaining period
= Product price × remaining months/total months

📍 Key Amendment Rules

  • Existing subscription lines are locked — cannot be deleted
  • Quantity can be increased or decreased
  • New products can be added
  • All changes are prorated to contract end date
💬 One-Liner:
"During amendment, CPQ prorates all changes to the contract end date. Additions are charged for remaining days, removals generate credits, and quantity increases charge the delta only — all calculated automatically."
Q49
How would you design a CPQ solution for a company that sells both one-time hardware and recurring SaaS subscriptions together? Advanced

📍 Architecture Design

Product Setup:
  Hardware Products:
    - Subscription Type: One-Time
    - No subscription records created
    - No proration
    - Excluded from renewals

  SaaS Products:
    - Subscription Type: Renewable
    - Creates Subscription records on contracting
    - Prorated on amendment
    - Included in renewal quotes

Quote Line Groups:
  Group 1: Hardware (one-time)
    - Start date = today
    - No end date needed

  Group 2: SaaS Licenses (subscription)
    - Start date = go-live date
    - End date = contract term end

Pricing:
  Hardware: Block pricing or list price
  SaaS: Discount Schedules based on seat count

Renewal Behavior:
  Hardware lines: excluded from renewal quote
  SaaS lines: auto-included in renewal quote
💬 One-Liner:
"Use Quote Line Groups to separate one-time hardware from recurring SaaS on the same quote. Set hardware as One-Time subscription type so it never appears on renewals — SaaS products with Renewable type auto-populate future renewal quotes."
Q50
What are the most common CPQ implementation mistakes and how do you avoid them? Advanced
MistakeImpactHow to Avoid
Too many Price RulesSlow QLE performanceCombine rules, use Lookup Objects instead of multiple rules
No Evaluation Order planningRules fire in wrong sequence, incorrect pricesDocument and test evaluation order in design phase
Triggers on CPQ objectsConflicts with CPQ calculation engineUse CPQ Plugins instead of Apex triggers
Not using Twin FieldsData not syncing to Assets/SubscriptionsMap all custom fields using Twin Fields pattern
One giant bundleSlow configuration, hard to maintainUse nested bundles and feature categories
Hardcoded prices in rulesDifficult to maintain, requires rule edits for price changesUse Lookup Objects for all price/discount data
No test for 0 quantityPricing errors on optional productsTest all edge cases including 0 and negative quantities
💬 One-Liner:
"Most CPQ issues come from too many Price Rules, unplanned evaluation order, Apex triggers conflicting with CPQ engine, and hardcoded values. Always use Lookup Objects for pricing data, CPQ Plugins instead of triggers, and test evaluation order thoroughly."