Salesforce Certified CPQ Specialist Exam Guide

Justin Dixon
74 min readSep 27, 2021

--

Audience Description: The Salesforce Certified CPQ Specialist has experience with the Salesforce CPQ platform, CPQ terminology, and can troubleshoot and solve basic platform issues.

The Salesforce Certified CPQ Specialist generally has one year of experience in a CPQ Specialist role. The Salesforce Certified CPQ Specialist candidate has experience with the Salesforce CPQ solution, and has the skills and knowledge of the following concepts:

  • Configure bundles (features, options, option constraints, configuration attributes) and product rules.
  • Configure price rules using lookup objects and formula fields, and understand quote calculation sequence and quote line pricing fields.
  • Given a scenario, identify the appropriate pricing method (discount schedules, block pricing, contracted prices subscription pricing, percent-of-total).
  • Configure a dynamic quote template using quote terms, line columns, template sections and template content.
  • Generate renewal and amendment quotes.
  • Troubleshoot and solve basic product rules, pricing issues, and data flow.
  • Utilize the ordering and contracting processes.
  • Manage products, pricebooks, and pricebook entries.
  • Configure user permissions, record types, page layouts, and field sets.
  • Familiarity with native and advanced approvals.
  • Knowledgeable about CPQ object data model (object relationships, twin fields, data migration, localization).
  • Knowledgeable about CPQ package level settings and managed package considerations.
  • Configure search filters, and custom actions for product selection and configuration.

A candidate for this exam will likely need assistance with:

  • Composite summary variable.
  • Block with discount schedule.
  • Nested bundles.
  • Nested quote terms.
  • Advanced grouping of quote template line items.
  • Advanced quote template topics.

A candidate for this exam is not expected to know or do the following:

  • CPQ Plugins
  • Custom Template Content
  • Target URL in custom actions
  • Integration to third-party web apps
  • Billing
  • Legacy Data Handling
  • Administer Force.com, Visualforce pages, APEX classes, or Javascript

Links

Blogs

Pricing FieldWhat It Represents

Original Price: Price book price
List Price: Price book price, percent of total price, block price, or option price override
Special Price: Cost plus markup price, contracted price, or option discount
Regular Price: Result of volume-based discounts
Customer Price: Result of manually editable discounts
Partner Price: Result of partner discount, set manually or through automation
Net Price: Result of distributor discount, set manually or through automation

CQP Platform: 23%

Design, configure, and troubleshoot price rules using lookup objects and formula fields to meet business requirements.

Price rules inject a static value, field value, or summary variable into a quote or quote line field. You can also set up price rules to target either the configurator or the calculator on the quote line editor. You can activate the price rules during quote creation by clicking Save or Calculate.

Price rules will also contain price conditions. For instance, if you wanted to sell 2 ink cartridges with each printer, a price rule can ensure that if you increase the quantity of printers to 3, it will also increase the quantity of ink cartridges to 6.

If you are looking for more dynamic ways to handle things like subscriptions we got you! With multi-dimensional quoting (MDQ), you can declaratively set up these line items with blocks of time (for example, days, months, years, and so on) with quantity and discounts separate from one another. You can control quantity and discounts over time without having to add new line items.

Price rules automate price calculations and update quote line fields. This feature is useful if your business contains products that change in response to the presence of other products on your quote.

Price rules inject a static value, field value, or summary variable into a quote or quote line field. For example, create a price rule so that the quantity of maintenance kits in your quote is always twice the quantity of that quote’s printers. When a customer changes the printer quantity and saves the quote, Salesforce CPQ activates the price rule and updates the maintenance kit quantity.

Price rules can target the configurator or the quote line editor’s calculator. If you target the calculator, you can set the Calculator Evaluation Event field to apply the price rule:

  • Before calculation
  • After calculation
  • During calculation
  • Or during any combination of the above three

To learn more about events that trigger calculations, check out The CPQ Quote Calculation Sequence.

If you target the configurator, you can set the Configurator Evaluation Event field to apply the price rule:

  • When the user saves
  • When the user edits the bundle and also when they save

The price rule record contains Price Rules, Price Conditions, and Price Actions.

Price Rule Fields

ActiveActivate this price condition. If this field is not selected, Salesforce CPQ does not consider this condition when evaluating a price.Advanced ConditionIf the Conditions Met field has a value of Custom, define the logic used in evaluating the rule’s conditions.Calculator Evaluation EventWhen the price condition evaluation scope targets the calculator, choose the action that causes Salesforce CPQ to evaluate the price rule.

  • On initialization — After a calculation is triggered, Salesforce CPQ evaluates the price rule during Step 4 of the Loading and Initialization process.
  • Before calculate — Before Salesforce CPQ calculates the quote’s price
  • On calculate — While Salesforce CPQ calculates the quote’s price
  • After calculate — After Salesforce CPQ calculates the quote’s price

Conditions MetDefine the logic for whether the price rule applies its action to your quote based on the value of the rule’s conditions.

  • All — Apply the action if all the rule’s conditions are met
  • Any — Apply the action if any rule condition is met
  • Custom — Use this field with the Advanced Conditions field to define when to apply the action. For example, you can enable a rule with three conditions to apply based on the logical statement 1 AND (2 OR 3).

Configurator Evaluation EventIf the price condition evaluation scope targets the configurator, choose the action that causes Salesforce CPQ to evaluate the price rule.

  • Save — The sales rep clicks Save in the configurator. This action is the default.
  • Edit — Immediately after a sales rep or rule changes a quantity field in the configurator, and when the sales rep clicks Save.

Evaluation ScopeChoose whether Salesforce CPQ evaluates a price rule during bundle configuration or within the quote line editor.Evaluation OrderDefine the order of evaluation for the price rules in your org. Salesforce CPQ applies a price rule starting with the lowest evaluation order, so the price rule with the highest order number is evaluated last. A higher-order number takes precedence if a lower-ordered rule targets the same object.Lookup ObjectPrice rules can also use lookup queries to evaluate quote fields against fields from an object outside the quote line editor, which is called a lookup object. If you’re using lookup queries on your price rule, define your lookup object here.ProductLegacy Calculator only: Assigns a price rule to a specific product. When Salesforce CPQ evaluates a quote containing this product, it applies the price action to all the product’s quote lines that meet the price rule’s price conditions.

A price condition compares a field value, summary variable, or formula against another field value, summary variable, or formula. A rule can contain as many conditions as you like. You specify which conditions must be true for your rule to apply its action. For example, a rule can fire its action in response to meeting all its conditions, one condition, or a certain logically determined combination of its conditions.

When your price rule meets its conditions, the rule applies its price actions to a target field. A price action sources the value from a summary variable, formula, user-defined value, or other quote line field and sends that value to your target field. A price rule must have at least one action. You can have several actions that target the same field, or several actions that each target a different field.

The price rule’s configurator evaluation event has three values.

  • None: Salesforce CPQ applies the price rule after the user clicks Save and then leaves the configurator.
  • Save: Salesforce CPQ applies the price rule after the user clicks Save in the configurator.
  • Edit: Salesforce CPQ applies the price rule immediately after the user navigates out of a changed field that the price rule is covering, when the Apply Immediately field in the product option is active.
  • Price rules targeting pricing guidance require an Evaluation Scope of Calculator and Calculator Evaluation Event of After Calculate.
  • Price actions that target Quote Line Pricing Guidance refer to the specific instance of pricing guidance within the quote line editor. Changes made through the price rule don’t affect pricing guidance records.
  • To make price rules that can also apply to quote line quantities that don’t fall in a guidance tier, use NULLVALUE in a price action formula. For example, NULLVALUE(Target__c,0)+20 takes an empty Target (%) value and changes it to 20%.
  • To replace the value of a pricing guidance Description field completely, enter your new value in the price action’s Value field. To add more text to existing Description text, use a formula field. For example, (SBQQ__Explanation__c, "")+"Extra 20% discount for ABC Applications employees in California."

Review some important considerations when you create a price rule.

Evaluation Events

  • If a price rule has a calculator evaluation event of On Initialization, Salesforce CPQ runs the rule before calculating the rule’s formula fields. If your On Initialization rule contains a formula field that requires a specific value, you might run into an error. Price conditions and actions load related records and evaluate formula fields following After Calculate rules and plugin methods. Any Block Price, Discount Tier, or Term Discount relationship in a formula contains an incorrect record. You can still reference Block Price, Discount Tier, and Term Discount in a formula field, but don’t reference those relationships in the formula itself.
  • Salesforce CPQ doesn’t support On Initialization, Before Calculate, or On Calculate formulas that reference the Prorate Multiplier field or any unit price other than the List Price field. The values of those fields aren’t accurate until after the rule event’s completion.
  • Salesforce CPQ doesn’t support On Initialization, Before Calculate, or On Calculate formulas that reference total price fields other than component totals and package totals. Noncomponent and nonpackage totals get their values following calculation, so a price rule can’t reference them during the first calculation sequence.
  • When two price rules share an evaluation event, the earliest-firing price action’s target field value isn’t usable in the other rule’s price condition. Salesforce CPQ evaluates all an evaluation event’s conditions simultaneously. Actions then fire sequentially for rules whose conditions have been met. An action from one rule in an evaluation event can’t influence the conditions of another rule in the same evaluation event.

Other

  • When Salesforce CPQ evaluates a price rule formula, it doesn’t account for differences between the source record’s currency and the quote’s currency. For example, suppose a quote line references a USD product while the quote uses EUR. In this case, price rules targeting the quote line use the quote line’s USD price without converting it to EUR.
  • When a price action without price conditions targets the Quote, the action evaluates the quote line or quote line group with the lowest Number__c value. We recommend using price conditions to ensure that your price action targets the correct record
  • Price actions can target ListPrice__c or Quantity__c only if those actions can’t send a null value. Quantity fields are null, Salesforce CPQ stops calculation for that line.
  • If you’re using a source value instead of a formula, make sure that you write your dates as YYYY-MM-DD. No other date format is supported.
  • Salesforce CPQ doesn’t insert records upon calculation, so it can’t have a Required By field that looks up to a quote line. If your price rule contains SBQQ__RequiredBy__c, it doesn’t fire until after a line gets saved to the database on the advanced calculator. Because of this process, price rule formulas with SBQQ__RequiredBy__c don’t always function correctly.
  • If your price rule targets list price, use Original Price as the source field rather than List Price. This process helps prevent infinite calculation loops.
  • Structure your price rules to evaluate as early in the calculation sequence as possible. This structure ensures that your rule sends values to as many fields as it can during one sequence. This way, you don’t have to revise your rules if you add requirements.
  • Price rules targeting the Additional Discount (%) or Additional Discount (Amt) fields must have an action that sends a null value to the other Additional Discount field.
  • Salesforce CPQ doesn’t execute price rules during Apex test class execution. The Javascript Quote Calculator performs triggered calculations in an external web service requiring a callout, and Apex test classes can’t make arbitrary callouts.
  • A custom metadata object can be the target of a price rule lookup field. If multiple price rules target the same custom metadata object, all price rules must target the same field on the metadata object.

Apply understanding of quote calculation sequence and quote pricing fields to meet pricing and business requirements.

The quote’s Calculating Fields field set contains a list of quote fields that trigger a quote calculation when their value changes, either manually or by an automated process. You can add other fields to expand the list of fields that trigger calculations.

  1. From the object management settings for Quotes, go to Field Sets.
  2. Edit the Calculating Fields field set.
  3. Move your desired fields from the field list into the field set. If needed, you can also remove fields.
  4. Save your changes.

The following fields are part of Calculating Fields by default and still trigger calculations even if you remove them from the field set.

  • Additional Discount
  • Distributor Discount
  • End Date
  • First Segment Term End Date
  • Markup (%)
  • Partner Discount
  • Primary
  • Start Date
  • Subscription Term

When you perform an action that starts a calculation, the Salesforce CPQ advanced quote calculator performs these actions.

IMPORTANT If a user or process changes a product during calculation, data from the new product is not available until a new calculation begins.

Loading and Initialization

  1. Loads products and options
  2. Loads lookup relationships
  3. Retrieves formula field metadata
  4. Executes price rules where the value in the Event field is On Initialization
  5. Initializes plugins, if you have any
  6. If the plugin was initialized, execute the plugin’s onInit() method
  7. Updates related records in case the plugin or price rules sent new IDs

First Round of Calculations

  1. Calculates formula fields on the quote lines
  2. Calculates formula fields on the quote
  3. Calculates formula fields on the quote line group
  4. Executes price rules where the value in the Event field is Before Calculate
  5. If you’re using a plugin, execute the plugin’s onBeforeCalculate() method
  6. Updates related records in case the plugin or price rules sent new IDs

Second Round of Calculations

  1. Calculates line quantities
  2. If you’re using a plugin, execute the plugin’s onBeforePriceRules() method
  3. Executes price rules where the value in the Event field is On Calculate
  4. If you’re using a plugin, execute the plugin’s onAfterPriceRules() method
  5. Updates related records in case the plugin or price rules sent new IDs
  6. Ensures that any discount schedules injected by price rules have loaded properly
  7. Indexes line item quantities according to schedule and group keys
  8. If the quote contains a target amount, reset the quote’s discounts
  9. Resets quote and group totals

Third Round of Calculations

  1. Calculates fixed items
  2. Calculates dynamic items
  3. Calculates totals
  4. If the quote contains a target amount, apply discounts proportionally across the quote so that the quote reaches the target
  5. Combines identical bundle components into one quote line
  6. Executes price rules where the value in the Event field is After Calculate
  7. If you’re using a plugin, execute the plugin’s onAfterCalculate() method
  8. Updates related records in case the plugin or price rules sent new IDs

Final Evaluations and Updates

  1. Evaluates quote line formula fields again
  2. Evaluates quote line group formula fields again
  3. Evaluates quote formula fields
  4. Calculates totals for groups and the quote again, since line-level totals may have changed
  5. Summarizes MDQ segments and related fields
  6. Deletes plugin modules, if any
  7. Updates related records in case the plugin or price rules sent new IDs

To detect upserts of Quote Lines that will later be rolled back, you can examine SBQQ__Incomplete__c field, which is set to TRUE during the rolled-back transaction.

IMPORTANT Salesforce CPQ prevents users from chaining multiple calculations within one transaction. This allows Salesforce CPQ to stay within Salesforce platform governance limits. Salesforce CPQ sets a flag the first time that CPQ triggers run for calculations that prevent the trigger from firing again. As a result, workflow rule and process builder updates to a calculating field don’t cause a second calculation.

Utilize out-of-the-box and custom permissions, record types, field sets, and page layouts to ensure users can fulfill their job requirements.

Add Fields to the Quote Line Editor Field Set

  1. From Setup, enter Objects, and then click Objects.
  2. Click Quote Line.
  3. From the Field Sets related list, find Line Editor, and then click Edit.
  4. Add or remove fields from the field set.
  5. If the field is a lookup field with a lookup filter, you need add the fields that are referenced by the lookup filter to the quote line editor. Use one of the following methods:
  • add the fields referenced by the lookup filter to the Line Editor field set, or
  • create a custom field set called ReferencedFields, and add the fields referenced by the lookup filter to the ReferencedFields field set

Include any fields referenced by the lookup filter in the field set.

IMPORTANT The quote line editor’s field section shows only the first eight fields listed in your field set. You can add more fields to the field set, but they don’t appear in the quote line editor.

Admin: For users who configure Salesforce CPQ features and settings for end users.

  • Salesforce CPQ Admin User

User: For users who use Salesforce CPQ features to deliver services to a customer or end user.

  • Salesforce CPQ User
  • Salesforce CPQ User Access

Partner: For partners who implement Salesforce CPQ as part of their own product offering.

  • Salesforce CPQ Partner User

Customer: For customers and end users who use Salesforce CPQ services.

  • Salesforce CPQ Customer User
  • Salesforce CPQ Customer User Access

Access permission sets were introduced in Salesforce CPQ Summer ’21. They contain a small collection of permissions that are important for Salesforce CPQ data security. While most CPQ admins clone and then edit standard permission sets for org users, we designed Access sets to be assigned directly to users without any cloning or editing. This way, your users will never risk missing important data security updates for new releases.

Data restrictions for the Access permission sets won’t be enforced until Salesforce CPQ Spring ’22. Before then, you have some options for testing them in your org. When the CPQ package setting Perform Enhanced Data Access Checks is active, Salesforce CPQ enforces data restrictions for the Access permission sets. When Perform Enhanced Data Checks is inactive, the Access permission set restrictions aren’t enforced. Perform Enhanced Data Access Checks is available in the Additional Settings tab of CPQ package settings.

  • To modify CPQ objects and fields, users must have a CPQ license.
  • To map one field to another, a user must have Edit permission on the initial field.

Page Layouts: (SF can have their points).

Given a business process, demonstrate knowledge of CPQ data flow (e.g., twin fields) across CPQ objects.

Certain pairs of CPQ objects pass custom field values from the first object to the second object when the second object is created. The values pass if the custom fields are editable, have matching field types, and have matching API names. We call these field pairs “twin fields.”

IMPORTANT

  • To map one field to another, you need Read access on the source field and Edit access on the target field.
  • Standard fields can’t be mapped between objects.

When a bundle is configured, objects in Column 1 pass their custom field values to the resulting new quote lines. When you open the configurator to reconfigure the bundle, Salesforce CPQ sets product option and configuration attribute values based on matching field values from their related quote lines.

NOTE If you make a bundle a Favorite and then add that favorite to the quote line editor, it won’t capture any twin field values.

Demonstrate knowledge about the CPQ object data model as it relates to data migration.

SF can have their points.

Set up CPQ for localisation and multi-currency for international customers and users.

Review important guidelines for working with Salesforce CPQ with multicurrency enabled.

  • When you create an opportunity, the record defaults to the currency defined in their user profile. They can also edit the opportunity’s Currency field.
  • A primary quote must have the same currency as its parent opportunity.
  • Pricebooks can contain multiple currencies. However, in order for a product to appear in the quote line editor’s Product Selection page, the product must have a pricebook entry in the same pricebook and currency as the quote.
  • When you create a primary quote from an opportunity, it inherits the opportunity’s currency. Users can’t change the currency of a quote that’s related to an opportunity through the opportunity’s Primary Quote field. Non-primary quotes default to the user’s currency value upon creation.
  • When you create a quote from an opportunity, it inherits the opportunity’s currency. You can’t change the currency of a quote that’s related to an opportunity.
  • Price books are required for all opportunities and quotes. When you create a quote from an opportunity, it inherits the opportunity’s price book. Price books can hold prices for several currencies, but Salesforce CPQ shows prices only in the currency of the opportunity or quote on the Product Selection page.
  • When you order a quote, the order inherits the quote’s currency.
  • When a product’s price changes, or the currency conversion rate changes beyond an acceptable level for your customer, make sure that you update the product’s price in the price book. You can also create a price book.

You can specify which parts of key CPQ objects are translated. When you translate a record, you define the text fields’ translated values only for that record. That way you can have different translations for unique records across the same object. Salesforce CPQ stores the translated values in a localization record.

Localization records store information for only 1 text field at a time.

You can provide translated values for most of the Salesforce CPQ UI with the translation workbench or by defining custom labels.

  • Use the translation workbench for all custom field names, picklist values, and help messages. Salesforce CPQ translates values based off the User record’s user locale. When Salesforce CPQ creates a quote document while translations are active, it evaluates the User record’s user language instead to translate merge field values.
  • Define custom labels for button names and error messages.
  • Rename tabs and labels.

For all text fields on the following CPQ objects, use the Salesforce CPQ translation process to define a translated value.

  • Line Column
  • Price Dimension
  • Product
  • Product Feature
  • Product Option
  • Quote Template
  • Quote Term

Associate a language with a translated value for text fields on your record. You can define translations in any language that Salesforce supports. When a user of that language views the fields in the following locations, the translated values are shown.

  • Quote Line Editor
  • Order Product Selection page
  • PDF documents, if the user generated the document in the same language as an existing translation

Given a scenario, determine the necessary CPQ package-level settings.

Document Package Settings

  • Attachment Target: Choose a target object. Document Only, Quote, Opportunity.
  • Document Folder: Select the folder that contains quote documents after generation.
  • Document Service Endpoint: Specifies the endpoint of a document web service used in DocuSign and EchoSign integrations. Do not change this value unless Salesforce CPQ support instructs you to.
  • Exclude Hidden Lines in Group Totals: If your quote contains hidden quote lines, Salesforce CPQ does not evaluate them when calculating quote line group totals for a quote document.
  • Full Page Preview: Preview the quote document in a full window instead of an iFrame.
  • Hide Document Name: Hide the file name on a quote document. This setting is useful if you want to prevent sales reps from changing the default file name.
  • Mass Document User Name: Click Request Authorization to allow Salesforce CPQ to generate and send quote documents on your behalf when you’re not logged in to Salesforce. This setting appears only upon the first installation of Salesforce CPQ and disappears after a user selects it.
  • Post to Feed?: Post quote documents to the Chatter feed associated with the quote or opportunity attachment target. If you delete the quote document, the Chatter feed shows that the document is no longer available.

Group Package Settings

  • Solution Groups Enabled: Allow admins to create solution groups for sales rep use in the quote line editor. Solution groups let you group and subtotal products independently of other quote lines and quote line groups. This is useful if your company has a standard set of quote line groupings, such as hardware or software.
  • Object: Enter the API name of the object that you want to use as the basis of your solution group. For example, if you want to use quote line groups, enter SBQQ__QuoteLineGroup__c. You can choose from any Salesforce CPQ object. This option is available only when solution groups are enabled.
  • Name Field: Choose the name to use for solution groups in your org. You can choose from any Salesforce CPQ field associated with the object you chose in the Object setting. This option is available only when solution groups are enabled.
  • Description Field: Choose the description field that you want to use for solution groups in your org. You can choose from any Salesforce CPQ field associated with the object you chose in the Object setting. This option is available only when solution groups are enabled.
  • Require Group Name: Sales reps are required to edit group names in the quote line editor.

Line Editor Package Settings

  • Hide Renewed Assets When Editing: Hide line items for renewed assets in the quote line editor. Renewed assets don’t have a net total, can’t be discounted or marked up, and are used only to contribute to a percent of total product’s final price. We recommend hiding them if you want your sales reps to focus only on editable quote lines.
  • Enable Column Width Resizing: Allow column width customization in the quote line editor.
  • Enable Compact Mode: Removes the blank empty spaces in the quote line editor for quote line drawer fields hidden by a page security plugin.
  • Visualize Product Hierarchy: Indent the components of bundle products, including nested bundles. This feature makes your bundles easier to read, especially if they have many product options or layers of nested bundles.
  • Preserve Bundle Structure: Display a bundle’s product options in the same order in renewal quotes. This feature is useful if you organized your bundles with important or frequently edited product options at the beginning of the bundle.
  • Keep Bundle Together: When you drag and drop a bundle parent to a different location in the quote line editor, Salesforce CPQ moves its components to the new quote line position as well.
  • Totals Field: Salesforce CPQ summarizes the value of this quote field across your quote and shows the result in the quote line editor’s Total field. Net total is the default value. The picklist also shows custom currency fields that you add to the quote object.
  • Line Subtotals Field: Salesforce CPQ summarizes the value of this quote line field across your quote and shows the result in the quote line editor’s Subtotal field. Net total is the default value. The picklist also shows custom currency fields that you add to the quote line object.
  • Large Quote Threshold: Quotes with line counts above this value send only essential quote lines, rather than every quote line on the quote during UI calls. When the threshold is active, Salesforce CPQ also ignores quote-scoped product rules for that quote. You can define a threshold to improve quote line editor performance if you have large quotes. Plan on adjusting your large quote threshold when you start encountering governor limits. We recommend that your value is slightly lower than the number of lines on your quote when you start to hit the limits.
  • Enable Large Quote Experience: Revise the quote line editor layout so sales reps have an easier time navigating large quotes.
  • Enable Large Quote Threshold Validations: Evaluates validation rules while the large quote threshold is active and prevents sales reps from performing invalid actions in the quote line editor.
  • Actions Column Placement: Place the Delete and Edit actions to the left or right of quote lines in the quote line editor.
  • Enable Multi Line Delete: Sales reps can select multiple quote lines and then delete them.
  • Product Configuration Initializer: If your company uses a custom Visualforce page for its configurator, provide a lookup to the page here.
  • Enable Asset Upgrades: Sales reps can click Upgrade Assets in the quote line editor. Enable this setting if your org uses Upgrade Products.
  • Group Subtotals Field: Salesforce CPQ summarizes the value of this quote line group field across your quote and shows the result in the quote line editor’s Group Total field. Net total is the default value. This picklist also shows custom currency fields that you add to the quote line group object.
  • Wrap Buttons: Quote line editor buttons wrap to a row below the first button row.
  • Quote Batch Size: FIELD NAMEDESCRIPTIONHide Renewed Assets When EditingHide line items for renewed assets in the quote line editor. Renewed assets don’t have a net total, can’t be discounted or marked up, and are used only to contribute to a percent of total product’s final price. We recommend hiding them if you want your sales reps to focus only on editable quote lines.Enable Column Width ResizingAllow column width customization in the quote line editor.Enable Compact ModeRemoves the blank empty spaces in the quote line editor for quote line drawer fields hidden by a page security plugin.Visualize Product HierarchyIndent the components of bundle products, including nested bundles. This feature makes your bundles easier to read, especially if they have many product options or layers of nested bundles.Preserve Bundle StructureDisplay a bundle’s product options in the same order in renewal quotes. This feature is useful if you organized your bundles with important or frequently edited product options at the beginning of the bundle.Keep Bundle TogetherWhen you drag and drop a bundle parent to a different location in the quote line editor, Salesforce CPQ moves its components to the new quote line position as well.Totals Field
  • Salesforce CPQ summarizes the value of this quote field across your quote and shows the result in the quote line editor’s Total field. Net total is the default value.
  • The picklist also shows custom currency fields that you add to the quote object.
  • Line Subtotals Field
  • Salesforce CPQ summarizes the value of this quote line field across your quote and shows the result in the quote line editor’s Subtotal field. Net total is the default value.
  • The picklist also shows custom currency fields that you add to the quote line object.
  • Large Quote Threshold
  • Quotes with line counts above this value send only essential quote lines, rather than every quote line on the quote during UI calls. When the threshold is active, Salesforce CPQ also ignores quote-scoped product rules for that quote.
  • You can define a threshold to improve quote line editor performance if you have large quotes. Plan on adjusting your large quote threshold when you start encountering governor limits. We recommend that your value is slightly lower than the number of lines on your quote when you start to hit the limits.
  • Enable Large Quote ExperienceRevise the quote line editor layout so sales reps have an easier time navigating large quotes.Enable Large Quote Threshold ValidationsEvaluates validation rules while the large quote threshold is active and prevents sales reps from performing invalid actions in the quote line editor.Actions Column PlacementPlace the Delete and Edit actions to the left or right of quote lines in the quote line editor.Enable Multi Line DeleteSales reps can select multiple quote lines and then delete them.Product Configuration InitializerIf your company uses a custom Visualforce page for its configurator, provide a lookup to the page here.Enable Asset UpgradesSales reps can click Upgrade Assets in the quote line editor. Enable this setting if your org uses Upgrade Products.Group Subtotals Field
  • Salesforce CPQ summarizes the value of this quote line group field across your quote and shows the result in the quote line editor’s Group Total field. Net total is the default value.
  • This picklist also shows custom currency fields that you add to the quote line group object.
  • Wrap ButtonsQuote line editor buttons wrap to a row below the first button row.
  • Quote Batch Size: Quote load and save actions process this number of quote lines per batch. The default value is 150. Smaller batches are less likely to hit governor limits. Larger batches cause better quote line performance because the editor makes fewer round trips.

Plugin-in Package Settings

Ignore, if there is a question SF can keep their mark.

Pricing and Calculation Package Settings

  • Allow Non-Consecutive Custom Segments: Custom price dimensions for MDQ products can begin any number of days after the previous segment’s end date. By default, a custom segment must begin the day after the previous segment’s end date.
  • Authorize New Calculation Service: Enable the Salesforce CPQ Advanced Quote Calculator. This setting appears only upon the first installation of Salesforce CPQ and disappears after a user selects it.
  • Calculate Immediately: Enable real-time calculations in the quote line editor. Sales reps won’t need to click Calculate to see calculated values in the quote line editor after updating fields. However, they still need to Save or Quick Save their quote for Salesforce CPQ to update the quote record and related records. Disabling this feature can improve quote line editor performance.
  • Currency Symbol: Salesforce CPQ uses this currency symbol in the quote line editor and on generated documents. Provide a value here only if you use a single currency.
  • Disable Background Calculation Refresh: In Salesforce Classic, the package setting Disable Background Calculation Refresh affects the results of a save action in the quote line editor. If the setting is active, Salesforce CPQ won’t update standard object pages following a background quote calculation triggered by a save. This setting is always disabled in Lightning Experience and Salesforce1.
  • Enable Quick Calculate: The Quick Calculate feature improves quote calculation time by disabling the following features: Price rules; Quote line formula fields that depend on parent relationships; Displaying rollup summary fields in the quote line editor
  • Unit Price Scale: Fractional unit prices round off to this many decimal places.
  • Use Inactive Prices: Use inactive product prices.
  • Use Legacy Calculator: Enable the Salesforce CPQ Legacy Quote Calculator. Salesforce CPQ no longer offers support for this version of the calculator.

Subscription and Renewal Package Settings

  • Renewal Model: When admins contract an opportunity or order with at least one subscription product under a contract-based renewal model, Salesforce CPQ creates a contract record. It then creates subscription records for your subscription products and asset records for your products with asset conversion. Use this method if your company sells many subscription products and wants to keep detailed records of their start and end dates. When admins contract an opportunity or order under an asset-based renewal model, Salesforce CPQ creates asset records for all your non-subscription products with asset conversion. Use this method if your company doesn’t sell subscription products or uses only percent of total products to represent subscription products.
  • Allow Renewal Quotes Without Assets: Salesforce CPQ treats non-subscription lines on renewal quotes as renewed products. This feature prevents add-on opportunities because all non-subscription lines have prices of zero.
  • Subscription Prorate Precision: For quote lengths that include partial months, users can prorate subscription prices by month, day, or month and day.
  • Contract in Foreground: Salesforce CPQ runs the contracting process in the foreground rather than the background. This feature can improve performance but increases the risk of a CPU timeout during processing.
  • Enable Evergreen Subscriptions: Salesforce CPQ users can create contracts with subscriptions that don’t have end dates. This open-ended term of service allows customers or providers to cancel or terminate the subscription at any point. Evergreen subscriptions let you quote, sell, and manage subscriptions products without an end date. Enable this setting to let users select Evergreen or Renewable/Evergreen as a product’s subscription type. After selecting this setting, evergreen subscriptions can’t be disabled. To prevent users from creating evergreen subscriptions, remove the Evergreen and Renewable/Evergreen picklist values from the Subscription Type field.
  • Use Legacy Amend/Renew Service:
  • Disable Product Bundle Sub Type Checks: By default, Salesforce CPQ restricts the ability to change the subscription type for product setup so that bundles aren’t created with a mix of Evergreen products and Renewable products. This validation keeps you from changing the product’s subscription type. This feature allows you to bypass the bundle subtype validation. Disable the validation if you must change a type to One-time. If the validation is disabled, bundles can be incorrectly made with a mix of Evergreen and Renewable, which causes bad data. Use this setting only when Enable Evergreen Subscriptions is selected. This setting applies only when modifying a bundle product. It doesn’t apply when adding product options to a bundle. While this setting is active, Salesforce CPQ bypasses the validation only for bundles made before the setting was activated. Salesforce CPQ still runs the validation for bundles made after activating the setting, and for new bundle products added to bundles made before activating the setting.
  • Disable Add Subscriptions: Removes the Add Subscriptions button from renewal quotes.
  • Subscription Term Unit: Salesforce CPQ determines subscription length by evaluating this field with the quote’s subscription term.
  • Ignore Leap Year Day: The subscription package settings page shows Ignore Leap Year Day only when Subscription Prorate Precision has a value of Day, or Day with Calendar Month Weighted. When you use daily subscription proration precision, Salesforce CPQ evaluates your quote line’s dates to see whether they’re part of a leap year. If so, CPQ divides the subscription term length by 366 during prorate multiplier calculations on the quote line. CPQ also uses 366 days when calculating renewal terms for contracts that fall in a leap year. However, when Ignore Leap Year Day is active, Salesforce CPQ always uses 365 days for prorate multiplier and renewal term calculations.
  • Include Net-New Products in Maintenance: Products added to a renewal or amendment are included in the scope of percent of total products from the original quote. The product fields Include in Percent of Total and Exclude from Percent of Total override the effects of this setting. For example, if this setting is active while a covered product with Exclude from Percent of Total is added to an amendment quote, Salesforce CPQ doesn’t include it in percent of total calculations.
  • Re-Evaluate Bundle Logic on Renewals: Renewing a bundle while this setting is active runs all configuration rules and adds all required products. This setting provides the same features as a user manually finding the renewal quote, reconfiguring the bundle, and then saving it.
  • PoT Renewals(Contracting from Orders): Renew subscribed assets when contracting from orders. Percent of Total subscriptions retain relationships with their covered assets on the renewal quote. This setting allows you to continue updating the Percent of Total subscription with new covered products for the subscription’s entire life cycle. Also, orders now show zero-quantity order products for covered assets from renewal quotes, so you no longer have to return to the initial quote for review. For this setting to work, you must also go to your Order Settings and select Enable Zero Quantity Orders.
  • Bypass Preserve Bundle Structure: The Bypass Preserve Bundle Structure setting removes the requirement to keep the original bundle structure. Your bundle products become individual quote lines on the amendment quote. When you enable this setting and deselect the Preserve Bundle Structure field on the contract, unexpected price changes or unforeseen product and price rule behavior changes can occur.

CPQ Quote Package Settings

  • Disable Initial Quote Sync: By default, when a sales rep creates the first quote from an opportunity, Salesforce CPQ creates quote lines for each of that opportunity’s opportunity products. When this setting is active, Salesforce CPQ doesn’t create quote lines for those opportunity products.
  • Disable Quote Contact Defaulting: When sales reps make a quote from an opportunity, the quote doesn’t inherit its primary contact from the opportunity. The sales rep or a Salesforce admin enters the quote’s primary contact instead.
  • Allow Option Deletion: Sales reps can delete product options from prior quotes.
  • Disable Quote Address Defaulting: When sales reps make a quote from an opportunity, the quote doesn’t inherit its address from the opportunity. The sales rep or an admin enters the quote’s address instead.
  • Primary Quote Keeps Opportunity Products: When a sales rep deselects the Primary field on a quote, the quote keeps the opportunity products it inherited when it was made primary.
  • Default Quote Validity (Days): The quote’s expiration date equals the quote’s creation date plus the default quote validity value. For example, if a quote is created on June 1, 2021, and the default quote validity is 28, the quote’s expiration date is June 29, 2021. If the default quote validity is null, the quote’s expiration date is null. The quote’s expiration date has no default functionality, but it can be used in custom automation.

CPQ Order Package Settings

  • Allow Multiple Orders: Sales reps can split a quote’s quote lines into multiple orders. This setting is available only in Salesforce CPQ+.
  • Create Orders Without Opportunities: Allow sales reps to create an order from a CPQ quote that doesn’t have a parent opportunity.
  • Default Order Start Date: Orders start on this date by default.
  • Require Approved Quote: Sales reps can’t order a quote until it has a Status field value of Approved.

Additional CPQ Package Settings

  • Enable Large Configurations: Allows users to include more than 400 products in product bundles. Because enabling large configurations slows down processing for all bundles, enable this setting only if your org requires it.
  • Enable Product Option Drawer: Allow admins to create a set of configuration attributes that sales reps can assign to any number of product options.
  • External Configurator URL: Salesforce CPQ opens this URL when a sales rep configures a product marked as externally configurable.
  • Multiple Bundles View: The configurator has two display options for quotes with multiple bundles: Wizard: Display each bundle separately. Admins can use the product field Option Layout to customize how sales reps move between bundle features; Classic: Display all bundles on one page, separated with a Section layout.
  • OAuth Refresh Token: Salesforce CPQ runs Mass Document Generation batch processes under this user.
  • Open Search Filter By Default: Display the search filter when sales reps open the quote line editor. Enable this feature if sales reps frequently search your product catalog.
  • Product Results Group Field Name: When sales reps search for a product in the quote line editor, Salesforce CPQ groups the results by this field. For example, you could display search results organized by product family.
  • Product Description Field: Choose a product object field to use as the product description. Salesforce CPQ uses the Product Description field by default. This field is required if you want to use rich-text product descriptions.
  • Quantity Scale: The scale of quantity fields in custom pages and quote documents.
  • Service Region: Operate advanced calculator and document generation web services in this Heroku Private Space region. The default region is North America.
  • Sort Products In Memory: Sorting products in memory during product search can improve CPQ page loading speeds for customers with large price books.
  • Theme: Apply this theme to Visualforce pages for all this org’s users. User-assigned themes override this value.
  • Triggers Disabled: Disable CPQ triggers temporarily if you’re migrating data or performing another action where you do not want to fire triggers. This setting also disables triggers in the Service Cloud for CPQ package.
  • Use Global Header Permission: Enforce a custom permission that admins can assign to users to hide the Salesforce header in custom pages. This permission only works in Aloha.

Determine how the CPQ managed package fits within a Salesforce org.

It fits like a glove.

Bundle Configurations: 17%

Given a scenario, set up a bundle structure to meet business requirements.

  • Static bundle: These bundles always have the same products together, in the same quantities, with no changes allowed. Imagine a BLT sandwich. We always need bacon, lettuce, tomato, and two slices of toast. Otherwise, it’s not a BLT anymore!
  • Configurable bundle: This bundle can be customized to your liking, with some limits to prevent impossible configurations. It’s like a build-your-own burrito. You choose the type of beans you want, the heat of the salsa, and if you want sour cream or not. Each customer gets a burrito with just the right fillings, which are probably different from the fillings chosen by the next customer.
  • Nested bundle: This is a bundle inside another bundle. You might have a configurable hamburger bundle nested inside a combo meal bundle. In Salesforce CPQ, you can nest bundles as much as you want, but we recommend only going one or two levels deep.

A bundle is a product with optional features or components that you want to include on a single quote line.

A bundle product contains several records.

  • A bundle parent: The parent product is the bundle itself.
  • Options: These products in the bundle contribute to the bundle price. You can consider these children of the bundle parent. An option doesn’t contribute to the bundle price if you select its Bundled checkbox.
  • Features: A feature is a group of options. You can use the Min Options and Max Options fields to define selection restrictions for objects in the same feature, such as “pick one or more” or “pick 3 of 5.”
  • Option constraints: Use constraints to control how users select options together.
  • Configuration attribute: A field and picklist shown above or below the list of product options. This field targets all options containing the same field and applies its value to all those fields.

First, choose a product to represent your parent, and at least one product to represent a bundle option. After you create your options, features, and constraints, associate them to the parent via related lists on the parent product record.

NOTE Bundles can’t contain both products with a subscription type of Evergreen and products with a subscription type of Renewable. Products with a subscription type of Evergreen/Renewable can’t be bundled.

Feature Guidelines

A feature is a group of product options within a bundle. Use features if you want to organize options into set groups, such as hardware and software.

Review the following fields when creating a bundle feature.

Feature Name(Required) Provide a meaningful name for your featureNumber(Required) Determine how this feature is ordered relative to other features in the parent product record’s related listConfigured SKU(Required) SKU Number of the bundle that includes this feature. This field populates automatically if you created this feature from the bundle product’s detail page.(Required) Min OptionsSet the minimum number of options for this feature that must be part of the product bundleMax OptionsSet the maximum number of options for this feature that can be selected as part of the product bundleDiscount ScheduleLookup to a Discount Schedule that applies to all this feature’s options. This value overrides any discount schedule defined on the product option’s product record. However, it doesn’t override a discount schedule on the product option record.CategoryAssign a feature to a category if you want to group multiple features together under a single tab within the configurator.Option Selection MethodChoose the way users can add products or options to the feature.

  • Click: Checkboxes appear next to each option
  • Add: Options do not appear in the feature until the user selects Add Options and selects from available options on the Option Lookup.
  • Dynamic: Users can add products from a separate page.

Product Options

Product options are individual products that users can select from when configuring a bundle.

  • The unit price on the product option is given to the quote line, regardless of the quote’s currency. For example, you have a quote in USD and a quote in GBP. If you have a product option with a unit price of 10,000 and bring that product option into both quotes, the related quote lines have values of 10,000 in their respective currencies.
  • Product options with a Type field value of Related Product cannot have their Bundled field or their Required field selected.
  • WARNING If a required or bundled product option has a Type field of Related Product, Salesforce CPQ treats the product option like it’s a component. Its quantity is multiplied by the parent product’s quantity, and its quantity is not editable in the quote line editor.
  • When you’re using a renewal product option, both the original product option and the renewal must have the same values for the Type field.
  • If you want to let sales reps upsell a product option, enable its Quantity Editable field and set its type to Related Product. This setup allows sales reps to edit these types of product options in both the configurator and the quote line editor — make sure you consider this when setting up quantity-based validation rules.
  • Because the Bundled field sets a product option’s price to zero, sales reps can’t apply a discount to it.
  • Renewed product options with Discounted By Package selected do not inherit discounts from their parent product.
  • The Discounted By Package field supports only percentage-based discounts from the parent product. When you renew a quote where the Renewal Pricing Method field is set to Same, Salesforce CPQ adjusts prices where needed by applying amount-based discounts. Because of this process, renewed product options with Discounted By Package selected do not inherit discounts from their parent product. If you want your renewed product option to inherit its parent’s discount, try using a price rule to apply the discount from the parent.

When you create a configuration attribute record, you can choose whether its record type is Configuration Attribute or Global Attribute. Choosing Global Attribute lets you create the record without assigning it to bundle product. That way, you can use the attribute across several different bundles, or for only certain product options in one bundle. A global attribute needs only a name and a target product option field.

Global attributes use the following objects.

Global AttributeA configuration attribute that you can assign to any product option. You can enable global attributes in your Salesforce CPQ package settings. Once enabled, when you create a configuration attribute, Salesforce CPQ lets you choose whether its record type is a configuration attribute or a global attribute.Since global attributes aren’t tied to a single bundle, you only have to define their name and target field. You’ll use attribute sets and product attribute sets to associate them your product options.Attribute SetAn attribute set groups several global attributes together in the form of attribute items. After you create your global attributes, you create an attribute set and then create one attribute item in the set for each global attribute.Attribute ItemAn attribute item represents a global attribute that you want to assign to an attribute set. Create attribute items from their related list in the attribute set.Product Attribute SetA product attribute set associates an attribute set with a product option. Create product attribute sets from their related list in the attribute set.A product attribute set has a one-to-many relation with product options. This way, you can use the attribute set as a “bucket” to group several global attributes together. Then you can assign that collection of global attributes to several different product options.

View your product option’s attribute sets in the configurator by clicking the dropdown menu on the right-hand side of your product option. Here you can pick your attribute values as needed. Remember that a global attribute changes field values for only the product option it’s assigned to.

You may find it useful to show a product option in your bundle but prevent your sales rep from choosing it until they’ve selected another option. This way, they don’t sell it to a customer without the original option that makes use of it. Once Salesforce CPQ enables the option for selection, your rep can choose whether to select it based on the customer’s needs. You can also disable one option from selection relative to another option. For example, sales reps could not select American power cables in a bundle as long as they’ve selected hardware that requires European power cables.

The option constraint object lets you set up these restrictions. Create option constraints from the Option Constraints related list on your bundle parent product record.

NOTE In bundles with an Option Selection Method of Add, option constraints don’t work inside Option Lookup.

Review the following fields when using option constraints.

Check Prior PurchasesBy default, Salesforce CPQ evaluates constraining options only on the quote you’re editing. When you select this field, Salesforce CPQ also evaluates previously purchased units of the constraining option on the quote’s parent account. These units must be assets, or subscriptions in active contracts.Constrained OptionLookup to the option that Salesforce CPQ enables or disables.Constraining OptionLookup to the option that determines whether Salesforce CPQ enables or disables the Constrained Option.Configured SKU(Required) SKU number of the bundle that includes this option. This field is completed automatically if you created this feature from the bundle product’s detail page.Option Constraint GroupUse this field if you have multiple constraints targeting a constrained option and want to require the selection of all their constraining options. In this case, Salesforce CPQ selects the constraining options of all constraint records where the Option Constraining Group has the same value. This feature is useful if you want to require or exclude options based on combinations of other options. The value can be any text string, but we recommend making it descriptive and easy to remember.Type

Choose the behavior for this constraint.

  • Dependency: Selecting the Constraining Option causes Salesforce CPQ to enable the Constrained Option for selection
  • Exclusion: Users can’t select the Constrained Option if they’ve selected the Constraining Option.

Review the following fields when using configuration attributes.

Apply ImmediatelyApply field value changes whenever a user changes the configuration attribute’s value. When deselected, Salesforce CPQ applies field changes when the user saves the bundle configuration.Apply to Product OptionsApply the configuration attribute’s value to all matching fields in your bundle’s product options. When this field is not selected, Salesforce CPQ applies the value to only matching fields in the bundle parent.Auto-SelectWhen sales reps add a product to this bundle from a dynamic feature, Salesforce CPQ evaluates whether the product contains a field that matches one of the feature’s configuation attributes. If the two fields match, and the product’s field contains a value, the configuration attribute inherits that value.Column OrderIf your bundle contains multiple configuration attributes, you can organize them into columns. Column 1 appears to the left side of the configurator, column 2 appears in the center of the configurator, and column 3 appears on the right side of the configurator. Use this field to assign your configuration attribute to a column.FeatureIf your bundle contains features, specify the feature where you want this configuration attribute to appear.HiddenHide the configuration attribute from the configurator UI.PositionChoose where your configuration attribute appears in the configurator.

  • If this configuration attribute doesn’t have a feature, it can appear above or below the bundle’s product options.
  • If this configuration attribute has a feature, it can appear above or below the product option within that feature.

RequiredSpecifies whether users need to choose a value for this field before saving their bundle configuration.Row OrderIf your bundle contains multiple configuration attributes, Salesforce CPQ can use this field’s value to determine their order. Attributes with higher Row Order values are shown first. If you don’t give this field a value, Salesforce CPQ order configuration attributes alphabetically.Target FieldLookup to the field that you want to change. This can be any field from any of your bundle’s product options.

You can have up to three configuration attributes in a row.

A configuration attribute:

  • Applies its value to your bundle’s fields even if those values aren’t shown in your line editor field set.
  • Inherits the type of the field it targets. For example, if you target a picklist, the configuration attribute appears as a picklist with all the targeted field’s values.

When you set a configuration attribute’s value, Salesforce CPQ applies it across all matching fields in your bundle. Salesforce CPQ then considers all configurator-scoped product rules and price rules with parameters that match the changed values.

Inherit Default Value

As of Salesforce CPQ Summer ’17, your configuration attributes can inherit their default values from a quote or quote group. Use this feature so you don’t have to re-enter certain field values while configuring a bundle.

The configuration attribute field Default Object targets a quote group. The Default Field field can contain the API name of any quote or quote group field. To avoid an error, make sure that your source field and the option field your configuration attribute targets are of the same field type.

To create a nested bundle, assign a bundle product to the Optional SKU field of an option record. When users configure the top-level bundle, they’ll see a configuration icon on the quote line for the option containing the second bundle.

For easy user navigation, we recommend keeping your nested bundles one to three levels deep. As of Spring ’20, product bundles can be set as expanded or collapsed by default. to save screen space. In your installed package settings, on the Line Editor tab, check Enable Expand/Collapse Bundles,. If this setting is unavailable, ensure that you also check Enable Large Quote Experience, Visualize Product Hierarchy, and Keep Bundles Together. After the feature is enabled, you can choose the Default Bundle Setting.

“Parent bundle” means the configured SKU of the product option represented by the nested bundle. It’s not always the top level. It’s always the immediate parent of a “child bundle.”

Nested bundles can’t be upgraded.

EXAMPLE Your top-level product in a bundle is a customizable laptop, where the first level of options lets you select the brand of hard drive for the laptop. Create two sets of features on each hard drive brand so you can set the brand’s memory size and warranty after a user selects it in the laptop bundle. These hard drive sizes and warranties represent the second level of options in your bundle.

Given a scenario, set up products rules to meet business requirements.

A product action performs an action on a product option, such as selecting or deselecting the option within its bundle, or hiding the option from view. Product actions target options based on the parent product rule’s scope, conditions, and evaluation event. You can also use product action fields to change the action’s target scope.

A Product action target one or more product options in all quotes to which the parent product rule applies. You can choose either one product option or use filtering logic to apply the action to a group of products that fall within the filter. For example, you could target all products where the product name contains “US.”

Validation rules confirm that a quote’s product combinations or quote line field values match predetermined conditions. Users see an error message and can’t save their product configuration or quote until they meet these conditions.

Use validation rules to ensure that your users create parts of their quote in a manner that you can control. If the quote isn’t configured in this way, the quote line editor shows an error message when the user tries to save. Set the text for this error message in the product rule’s Message field. The message appears, and users can’t save the product configuration or quote until the product rule’s error conditions evaluate to true.

Validation rules can evaluate children, grandchildren, or parents of the option they initially target. Control this feature with three configuration rule fields.

  • Parent Bundle Condition Level
  • 1: Conditions evaluate the parent of the product option that the configuration rule targets and all children of that parent. Siblings of the parent product aren’t evaluated.
  • None: Conditions evaluate children only. This is the default option.
  • Child Bundle Condition Level
  • 1: Conditions evaluate the product option’s children and grandchildren.
  • None: Conditions evaluate children only. This is the default option.
  • Child Bundle Action Level
  • 1: Actions can select, deselect, enable, disable, show, or hide the children and the grandchildren of the option this configuration rule targets.
  • None: Conditions evaluate children only. This is the default option.

Alert rules provide informational messages during configuration or pricing. Unlike a validation rule, alert rules let you save your configuration or quote without having to change anything. They’re useful for providing suggestions on optimal but nonrequired configurations and pricing processes such as best practices.

To configure a product rule as an alert rule, set the Type field to Alert and the Evaluation Event field to Save. When an alert rule fires and finds a configuration value or quote value that matches its error condition, users see an error message. They can revise their configuration or quote, or continue without making changes.

Selection rules let you adjust product options in a bundle on your quote. For example, let’s say you sell a reporting software bundle. You can sell training license only after your user buys a software license, both of which are product options in your bundle. In this case, you can create a selection rule that initially hides the Reporting Software Training product option from the bundle. The configurator then shows Reporting Software Training only when the sales rep selects the bundle’s Reporting Software License option.

Selection rules use configuration rules to specify a bundle to target. The configuration rule’s Product field represents the bundle you’re targeting. You can also set your configuration rule’s product field to a specific bundle so your product rule can target that bundle across multiple quotes.

Selection rules also use actions alongside error conditions. An action represents the step your selection rule performs when the rule meets its error conditions. When your rule meets its conditions, it checks the action for a product to target. This product is the product option you want to change within the bundle you defined in the configuration rule. The rule then performs the step defined in the action’s Type field. You can select from the following action types:

  • Add: Add the specified option.
  • Remove: Deselect the specified option. Not supported for quote-scoped selection rules.
  • Enable: If an option is disabled, this action enables the checkbox so users can select it.
  • Disable: Disable an option so users can’t select it.Enable and AddEnable an option and select it.
  • Disable and Remove:
  • Deselect an option and disable it so users can’t select it.ShowShow a hidden option.
  • Hide: Prevent an option from showing.
  • Show and Add: Show the option and select it.
  • Remove and Hide: Deselect an option and hide it from view.

You can evaluate a product option, quote, or a quote line against user-made conditions and perform an action in response. Organize your conditions and actions in a product rule object.

ll product rules contain related lists for Error Conditions, Actions, and Configuration Rules.

A filter rule is a product rule where the Type field is set to Filter. Filter rules use configuration rules to target a bundle feature and actions to determine whether certain options appear when users configure a bundle. For example, let’s say your company sells an IT security bundle and you regularly update your product offering with new security products. In this case, it’s easier to create a bundle that can contain any security product rather than constantly updating the bundle’s options based on your offering.

We call this type of bundle a dynamic bundle. To enable this setup, set a feature’s Option Selection Method field to Dynamic.

Actions for filter rules need Filter Field, Operator, and Filter Value fields to determine the product or products you want to filter. If you target a field in your Product Search sidebar, Salesforce CPQ populates that field’s value with the value you choose in your action. From here, you can use the action’s type to choose whether sales reps can remove that value and thus the filter. A type set to Default Filter means that the filtering persists even if you remove the filtered value from the Product Search sidebar. A type set to Optional Filter means that Salesforce CPQ removes the filter logic when you remove the filtered value from the sidebar.

IMPORTANT Your action’s filter field evaluates only fields on the product option. If you want to evaluate a product field, make an exact duplicate of that field on the product option and use it for your filter field instead.

An Error Condition contains two sections: Information and Filter Information. Information defines an object, a field on an object, or a variable to test. Filter Information defines a logical operator and a value to test against. When Salesforce CPQ processes a product rule, it tests all the rule’s error conditions and evaluates whether they’re true or false. It then considers the rule’s Conditions Met field when evaluating whether to fire an action. You can set Conditions Met so that the rule fires when:

  • All error conditions are true
  • Any number of error conditions are true
  • The error conditions evaluate to user-determined custom logic.

All rule types require at least one Error Condition.

Your use of Actions and Configuration Rules depends on the type of product rule you’re using.

Consider key guidelines when you’re making a product rule.

If you have multiple rules that can affect the same product or products, consider ranking them by evaluation order. Salesforce CPQ evaluates higher-ordered rules last, so the product rule with the highest evaluation order number is the final product rule considered.

Use the Evaluation Event field to determine when Salesforce CPQ considers and runs a product rule.

  • Load: when the user loads the configurator
  • Edit: when the user changes a field in the configurator
  • Save: when the user saves (via the Save or Quick Save buttons) a quote in the configurator
  • Always: when any user loads, edits, or saves a quote

You can configure selection rules to perform an action on their targeted product options based on the selection of other options and configuration attributes. This process means that users can receive immediate feedback about valid and invalid operations instead of receiving it only when they save their configuration. Processing selection rules in real time is useful for making a guided configuration: You can make configuration attributes in the form of questions. Salesforce CPQ makes a configuration based on user response, possibly by selecting multiple options in one step.

To make a selection rule that functions in real time, select Apply Immediately and System on the product option that you want to function in real time. We recommend setting your selection rule’s Evaluation Event field to Always to ensure that the real-time processing happens throughout anything you do in the quote line editor.

Date fields in your error condition’s filter value must use the format YYYY-MM-DD 00:00:00.

Configurator-scoped product rule conditions can’t use quote line summary variables.

Configurator-scoped product rules of type Validation/Selection can’t be evaluated against dynamic features.

Pricing: 16%

Given a scenario, identify the appropriate pricing (discount schedule, block pricing, contracted prices, subscription pricing, percent-of-total).

  • Block Pricing: Uses a flat price for a range of quantities instead of multiplying by number of units. A streaming video service is $9 a month for 1–3 concurrent viewers, and $15 a month for 4–10 concurrent viewers.
  • Percent of Total (PoT) Pricing: Looks to the sum of other product prices, then takes a percent of that sum. The tip for your pizza delivery is 15% of the overall amount of your order.
  • Option Pricing Override: Replaces the price of a product only when it’s within a bundle. The price of a drink is $1 when bought in a combo meal, but $1.35 when bought alone.
  • Cost Plus Markup Pricing: Allows sales reps to add value on top of a product’s cost. A car costs the dealer $30,000, and it’s marked up to $34,000 to make commission.
  • Contracted Pricing: Sets account-specific prices for individual products or categories of products. Your customer Edge Communications pays $200 for a printer while everyone else pays $275.

Block Pricing

AW Computing can now sell its toner recycling service using two different tiers, handling up to 50 recycled toners. But what happens when a customer needs to recycle 51 toners? Technically, sales reps can add another Toner Recycling line to the quote, but that can get cumbersome fast especially in large quantities.

There’s a better way, and it’s to use what we call an overage rate. An overage rate is a per-unit price for any quantity above our highest tier. AW Computing has a plan to use an overage rate for the following scenario: If a customer needs more than 50 toners recycled, AW Computing charges $45, plus $1 for every toner after 51. (So recycling 52 toners costs $46, 53 toners is $47, and so on.)

To use overage rates, we must create a special custom field on the Block Price object. This is a one-time step for any org using Salesforce CPQ.

Percent Of Total Pricing Method

  • Pricing Method: Set this to Percent Of Total. Doing so makes the price book price play a much smaller role, which we discuss later.
  • Percent Of Total (%): The percentage amount to use in the calculation, much like the 20% from the breakfast example.
  • Percent Of Total Base: Determines which quote line prices are summed for the total. Each price is affected by different types of discounts, so you can choose which discounts are factored into the percent of total calculation.

Option Pricing Within Bundles

Bundles are a great way to sell more than one product together as a set. AW Computing loves bundles because it makes quoting easier and more accurate. It often sells more because sales reps are reminded of which products to include in the quote. You can learn more about bundles in the Configurable Bundles in Salesforce CPQ Trailhead module.

AW Computing wants to encourage its customers to buy bundles whenever possible. To do that, it wants to lower an item’s price when sold in a bundle. You’ve probably seen this strategy last time you went out for lunch. If you buy a sandwich, then soup can be added for $1.00, but if you buy soup on its own, you pay $2.25.

Option pricing allows admins to define an override price for a product when it’s sold as part of a bundle, or in some cases make the option entirely free.

Cost Plus Markup Pricing:

Account-Based Contracted Pricing:

Term Discount Schedules for Subscription Products:
Apply a discount schedule based on the length of your subscription product’s term. This feature is useful if you want to provide an incentive for longer subscriptions.

Slab Discount Schedules with Block Prices
Slab discount schedules can align with block-priced products to create price schedules. This setup creates a price schedule that moves from flat pricing to per-unit pricing. However, this setup isn’t compatible with One per Unit asset conversion.

The lower bound of the first slab discount tier must equal the upper bound of the last block tier.

Remember that a tier’s upper bound must be one digit above the value you want to include. For example, a tier that covers 10 products has an upper bound of 11.

When you contract an opportunity or order, your subscriptions inherit the following field values from their subscription product quote lines or order products.

  • List Price
  • Net Price
  • Customer Price
  • Quantity
  • Account

Let’s look at some standard subscription fields. Later, we’ll review subscription fields that affect your renewal process.

  • Start Date: The first date this subscription is in effect. Your subscription inherits this value from the start date of its parent contract.
  • End Date: The last date this subscription is in effect. Your subscription inherits this value from the end date of its parent contract.
  • Subscription Start Date: To override the Start Date field with a date of your choosing, enter a value for this field.
  • Subscription End Date: To override the End Date field with a date of your choosing, enter a value for this field.

Given a scenario, determine expected pricing outcomes.

On a single quote line, you can apply discretionary discounts, partner discounts, discount schedules, and custom discounts. There are eight price fields included in Salesforce CPQ, and quote lines calculate each of these price fields in a specific order.

Salesforce CPQ includes the price fields so that you can track the calculations that occur after each discount or uplift is applied to a quote line. These fields also give you the flexibility to build automation that allows your pricing changes to occur exactly when and where you want.

The fields included on the Salesforce CPQ quote line object are:

  • Contracted Price\n
  • Customer Unit Price
  • List Unit Price
  • Net Unit Price
  • Original Price
  • Partner Unit Price
  • Regular Unit Price
  • Special Price

Each of the unit price fields represents the value after a calculation has occurred.

The list price is the quote line’s initial price. When you quote a product, Salesforce CPQ pulls the quote line’s list price from the product’s list price entry in your price book. If you select a product’s or quote line’s Price Editable field, you can override the list price in the quote line editor. The Pricing Method field in the product record is set to List by default, but you can change the pricing method to Cost or Block pricing.

Make sure that you review the Salesforce CPQ pricing method so that you can track pricing calculations. You can identify the price before a discount is applied, the price before proration, and more. You also have control over custom calculations, such as using a price rule to change a price to one of the fields in the chart.

Salesforce CPQ uses the following method to calculate the net price for a quote line.

  • List Unit Price: The product’s list price in the price book.
  • Contracted Price: (if any)If the quote line has an associated contracted price on the account, the contracted price overrides the list unit price.
  • Special Price: The special price is inherited from the contracted price, a custom price set by the Salesforce admin, or the list price. Pricing calculations start with this value.
  • Prorate Multiplier: The prorate multiplier is the subscription term divided by the default term.
  • Prorated List Price: The price after the prorate multiplier is applied to the list price.
  • Volume Discount Schedules: The volume discounts set on the quote line.
  • Option Discounts: The discounts on the product option record.
  • Term Discount Schedules: The discount schedules based on subscription product terms.
  • Discount Schedules: If the quote line has discount schedules, Salesforce CPQ applies the appropriate discount to the prorated price. The resulting value becomes the regular unit price.
  • Regular Unit Price: The value after the prorated price has applied system discounts.
  • Additional Discounts: The discounts entered by the sales rep or using price rules.
  • Customer Unit Price: The net price before partner discounts. Calculated by applying discretionary discounts to the regular unit price.
  • Partner Discounts: Discounts entered by sales reps or using price rules.
  • Partner Unit Price: The partner price is the customer unit price with a partner discount applied.
  • Distributor Discounts: The discounts entered by sales reps or using price rules.
  • Net Unit Price: The net price is the unit price after all discounts are applied.

Pricing Waterfall

  • List Price: Price pulled from the quote’s associated Price Book
  • System Discounts and adjustment: Includes contracted prices, discount schedules, proration, and Special Price if a value exists for Special Price Type
  • Regular Price: Prorated list price after system discounts or the Special Price if a Special Price Type is specified
  • Additional Discounts: Value entered by sales users or pricing guidance
  • Customer Price: Regular Price minus Additional Discount
  • Partner Discount: Discount given to selling partner, entered by sales user
  • Partner Price: Customer Price minus Partner Discount
  • Distributor Discount: Discount given to distributor, entered by sales user
  • Net Price: Partner Price minus Distributor Discount, final price for the line

If you need to apply Partner Discounts before system discounts in your Product Pricing with Salesforce CPQ, you can create a special field named ApplyPartnerDiscountFirst__c on the quote to turn on this feature. Typically if your organization is using this setting, it is best to have this be a number formula field that evaluates to 1 to have this maintained on all Quotes, Amendments, and Renewals in your organization.

This feature makes the CPQ pricing engine apply Partner Discount first off List Unit Price, then any system discounts, and manual Additional Discounts, and lastly Distributor Discounts.

The Price Waterfall with this feature enabled becomes the following:

List Unit Price -> Partner Unit Price -> Regular Unit Price -> Customer Unit Price -> Net Unit Price

For example, if you have a product priced at $10,000 and 100 quantity with a Range Discount Schedule(system discount) of 10% if quantity is over 10, pricing would flow as follows:

List Unit Price: $10,000

Partner Discount = 20%
$10,000 * .80 = $8,000
Partner Unit Price: $8,000

System Discount = 10%
$8000 * .9 = $7,200
Regular Unit Price: $7,200

Additional Discount = 50%
$7,200 * .5 = $3,600
Customer Unit Price: $3,600

Distributor Discount = 50%
$3,600 * .5 = $1,800
Net Unit Price: $1,800

Behavior with Pricing on Renewals
The following is how this feature works with CPQ’s available Renewal Pricing Methods

‘Same’
Distributor will not pull to the renewal quote lines, but the partner discount will.
With the above Scenario, “​$3,600” is what pulls over as Customer Unit Price of the Renewal Quote Line.

‘List’
Only system discounts will map over to renewal.

‘Uplift’
Same behavior of ‘Same’ Pricing Method unless an Uplift is applied at Contract or Subscription level.
If Uplift is defined, the Renewal Quote Line’s Regular Unit Price will be List Unit price after System Discounts,

Uplift will be applied to the Customer Price of the Subscription to establish the Customer Unit Price on the Renewal Quote Line, and the difference is what will be populated in Additional Discount Amount.

Distributors Discounts will not pull over to the renewal.

Considerations:
The Product Option’s Discount (%) and Discount (Amt) are not considered for calculations when ApplyPartnerDiscountFirst is enabled on the Quote object. While the Quote Line still uses these Product Option fields to calculate Special Price, however this field is bypassed while calculating any proration when ApplyPartnerDiscountFirst is in use. In this use case, customers can use a Price Rule Price Action to inject the Product Option’s Discount (%) or Discount (Amt) into the Quote Line’s Additional Disc. % or Additional Disc. Amt fields.

NOTES:

  • When using ApplyPartnerDiscountFirst__c special field, this limits the use of Unit Cost + Markup due to both fields depending on SBQQ__SpecialPrice__c.
  • Once this special field is created, Orders will not automatically pull the correct price from the Quote lines to Order products, in order to have the correct price on the Order products you will also need to create the same field named ApplyPartnerDiscountFirst__c on the Order object.

Quote Templates: 7%

Given a scenario, set up a quote template to meet business requirements.

Quote templates control the formatting and organization of your quote document. Each template contains sections where you customize the presentation of individual content records such as line items, signature fields, and terms and conditions. Your templates can contain any number of sections in any order, and you can reuse sections between multiple templates. Template content refers to the actual information stored in a section. For example, you can have a Content Header section containing content records for Prepared For, Prepared By, Quote #, Date, Contract Start, and Contract End.

After you create a template content record, you can populate it in the template section’s Template Content lookup field.

When you create template content, you can choose from several varieties of content layouts.

HTMLSelect this option for any combination of dynamic fields, such as merge fields or formatted text (bold, bullets, and so on). This process uses an enhanced WYSIWYG editing toolbar to automatically insert the correct HTML tags in your content.Line ItemsCreate a placeholder for the quote line item table. You don’t have to reformat this table in your template content. The columns in the Line Columns related list of your quote template determine which attributes to show in this table. You need at least two columns in order for your quote to render.CustomDisplay a Visualforce page in the Custom Source field within this section of your quote template.To reference your custom Visualforce page in the Custom Source field, enter /apex/c__MyVFPageName, replacing MyVFPageName with the name of your Visualforce page. The Visualforce page and its components must be compatible with XSL-FO to work with Salesforce CPQ document output.Quote Terms: Template BottomUse Salesforce CPQ’s standard bottom content for the quote template, including notes, dates, and final signature information.Quote Terms: Template TopUse Salesforce CPQ’s standard top content for the quote template, including logo, street address, and ship to or bill to details.

The template content editor provides editing functions for your content. From here, you can insert static content or use markup fields and merge fields that reference variable information.

Line columns are useful for showing the values of important fields on your document. For example, your quote document can have a quantity column and unit price column so that all line items show their values for those fields.

Create line columns from the Line Columns related list on your quote template record.

AlignmentChoose whether column values are aligned left, center, or right.Column HeadingTitle of the column.Display OrderSalesforce CPQ shows columns from left to right based on this field, starting with the smallest value.Field NameAPI name for the quote line field you want shown in this column. Salesforce CPQ shows this field’s label on the generated document.Roll-UpIf the quote template’s Roll Up Field value matches this line column’s Field Name value, and quote lines have the same value for that field, Salesforce CPQ combines the quote lines into one line on the quote document.SectionSpecify a template section here if you want this column to appear only in that section. Otherwise, this column appears in all sections.WidthThis value represents the percentage of the overall document width taken up by this column. Quote documents sometimes appear incorrectly if the total Width values on your template are not 100.

You can then adjust the appearance of your line columns with the Style Information and Column Option fields.

Consider these print option fields when customizing your quote template. You can find them on the quote template record.

Group FieldQuote line groups don’t carry over from the quote line editor to a document. Use this field to organize your line items by the value of your chosen field.Sub Group FieldApply a second level of organization within the field you selected for Group Field. For example, group your line items alphabetically by product code and then organize those groups by a custom Color field.Hide Component ProductsHide all product options on your documents.Number TermsShow this template’s quote terms as a numbered list where the numbering begins with 1. Child terms indent by a decimal and one number to the right, such as 1.1 or 1.3.2.Line Sort FieldSort line items in your template by the values of a chosen field. Text fields sort alphabetically. Number fields sort from smallest to largest.Show Customer DiscountShow quote-level customer discounts in your quote totals.Show Partner DiscountShow quote-level partner discounts in your quote totals.Show Renewed ProductsShow renewed products on renewal quotes made from this template.Show All Package ProductsShow all bundle products on quote documents. Otherwise, Salesforce CPQ only shows package products with only nonzero quantities.Show Bundled ProductsShow quote line items that have their Bundled fields selected on documents made from this template.Show Discount ScheduleChoose how to display discount schedules on the quote document. Per Quote Line displays the discount schedule and its tiers right-aligned under each quote line.Hide Group SubtotalsHide group subtotal fields on documents made from this template.Hide TotalsHide total fields on documents made from this template.Line NumberingSpecify how to number line items on made documents. “Start at quote” numbers all lines in order, starting at 1, across the quote regardless of groups. “Start at group” resets numbers to 1 at the beginning of a group.

Production Selection: 7%

Given a scenario, use search filters, field sets, and custom actions to enable product selection and configuration.

Validation Rules: Validation rules confirm that a quote’s product combinations or quote line field values match predetermined conditions.
Selection Rules: Set up rules to automatically add, remove, hide, enable, or disable options in a bundle.
Filter Rules: Prefilter the products that are available to add to a bundle.
Alert Rules: Guide and inform through messages during configuration or pricing.

Group Product Selection by Field

Configure the Product Selection page to group products into dropdown lists organized by shared field values. This layout helps organize the Product Selection page for sales reps and is especially useful if your company has a large product catalog.

  1. From Setup, in the Quick Find box, enter Installed Packages, and then select Installed Packages.
  2. Find the Salesforce CPQ package, and then select Configure.
  3. Click the Additional Settings tab.
  4. From Product Results Group Field Name, choose the field you want to group your product search results by.

When Product Results Group Field Name has a value, the Product Selection page shows the organized lists on initial loading. It also revises the grouping based on product search results when the sales rep enters a value in the Search Products toolbar.

Select Edit Lines on a quote record to open the quote line editor. The quote line editor lets you view all your quote lines and apply changes across the entire quote or to individual lines.

If your quote line editor shows a field above your quote line list, you can edit that field and then save or calculate the quote to apply the field across all your quote lines. You typically use this process for applying quote-wide discounts or markups — for example, through the Additional Discount (%) or Markup (%) fields.

The quote line editor contains several buttons to help you make your quote.

Add ProductsThis menu can contain standard buttons or custom actions that your Salesforce CPQ administrator created. It includes the following standard buttons by default.

  • Add Products: Go to the Product Lookup page and select products to add to your quote.
  • Add Favorites: Go to the Favorites page within the Product Lookup page, where you can add previously saved or shared favorite records to your quote.
  • Upgrade Assets: Choose assets to upgrade on your quote.
  • Renew Subscriptions: Renew your quote’s active subscriptions.

CalculateSalesforce CPQ applies price calculations to your quote, including all relevant price rules and product rules. Click this button to recalculate your quote’s prices after you make changes.Delete LinesYou can select several lines and then click this button to delete all the lines at once. You see this button only if your Salesforce CPQ administrator enabled it.GroupsAdd line item groups to your quote.Quick SaveSave your quote line changes without leaving the quote line editor.Reset DiscountsReset all user-applied discounts.SaveSave your quote line changes and return to the quote detail page.CancelReturn to the quote detail page without saving your changes.

If your quote line editor has a large field set and you want to organize the editor layout, place certain fields in a collapsible drawer below each line item. This feature removes the need for horizontal scrolling and lets you see all fields related to a quote line in one view.

Add the fields you want collapsed to the Quote Line’s Standard Line Item Drawer field set. All fields in this set appear in drawers under each quote line. You can have any number of drawers open or closed simultaneously and edit fields as needed in each drawer.

To view a Standard Product line’s drawer, click the arrow icon on the far-right side of the quote line. Select the table header arrow to collapse all line item drawers for that table.

Any rich text editor fields in Standard Line Item Drawer appear immediately below the drawer’s Details header. They appear in the same order as in the field set.

Search Filters

Use the quote line editor’s search filter to filter products, assets, or subscriptions by their field values.

Select Add Products in the quote line editor, and then select the filter icon to show the search filter box. You can search by Product Code, Product Name, Product Family, and Product Description by default. You can also add and remove standard or custom fields to any search filter by editing the product object’s search filter field set.

IMPORTANT If you add a checkbox field to your search filter, Salesforce CPQ filters products based on the checkbox’s value returning False. For example, let’s say you had several products with an LCD Screen custom checkbox field. If you add LCD Screen to your search filter, Salesforce CPQ returns products where LCD Screen is unselected. If you want to add an option-based field that doesn’t return a True or False filter value by default, add a picklist that defaults to None.

Guided Selling

Create a guided-selling process with the Quote Process object and add it to your quote or quote line group’s Quote Process field. The Guided Selling prompt appears when you click Edit Quote Lines for the first time on that quote. It also appears when you click Add Products in the quote line editor or within a quote line group.

You can also let your sales reps select the prompt they want to use from a picklist in the quote line editor.

A guided-selling process contains these components.

  • Quote Process: This object defines how the prompt appears and how it adds items based on user input.
  • The quote process record contains a related list for process inputs. These records are the questions and possible answers that the guided selling prompt shows. Each process input represents one question.
  • The process input record contains a related list for process input conditions. You can define process input conditions so that the guided selling prompt only shows the process input only in response to the values of other process inputs. This feature is useful if you want to create a complex guided selling prompt that guides users down several paths based on their needs. It also keeps your guided selling prompt organized by showing only required questions.

NOTE If your reps use Lightning Experience, include no more than five process inputs in a quote process. Additional process inputs are cut off in the dialog box.

Let’s have a look at important fields for each of these objects.

Quote Process Fields

DefaultSelect if you’re offering multiple quote processes in a picklist and want this process to appear as the default selection.Auto Select Product?If your guided selling prompt returns only one product, Salesforce CPQ adds it to the quote.Guided OnlyUsers can search for and add products only through the guided-selling prompt. When users access the Product Selection page for a quote containing this quote process, the filter panel button is disabled.Product Configuration InitializerLooks up to a custom Visualforce page that sets bundle options to true or false. Salesforce CPQ applies the initializer to any bundle product that the guided-selling prompt filters for selection.Sort OrderDefine the position of this quote process in your quote process picklist. Use this field only if your quote has multiple quote processes.

Process Input Fields

LabelDefine the question that your prompt shows to users.Input FieldSalesforce CPQ evaluates this field to determine the possible answers that users can select. If the field is a picklist, the process input’s selectable values match your picklist’s values. For any other type of field, Salesforce CPQ shows a text box below the process input question.Product FieldSalesforce CPQ evaluates how this field’s value compares to the user’s answer to this process input relative the operator field.OperatorDefine how Salesforce CPQ compares a user’s answer to the value of your product field. If the comparison is true, Salesforce CPQ shows the product on the Add Products page when the user completes the guided-selling prompt.Conditions MetDefine whether any or all your process input conditions must evaluate to true for Salesforce CPQ to show matching products on the Add Products page. Use this field only if you’re using process input conditions on this quote process.

Process Input Condition Fields

Process InputThe process input that appears in response to this condition.Master Process InputThe values of this process input determine whether this process input condition evaluates to true.ValueSelect a possible value for your master process input. Salesforce CPQ evaluates this value in relation to your Operator field. If the evaluation is true, this process input condition evaluates to true.OperatorDefine how Salesforce CPQ evaluates your master process input’s value.

Orders, Contracts, Amendments, and Renewals: 15%

Demonstrate understanding of the data required to generate orders and contracts.

Key Features of Advanced Order Management:

  • Fulfill Orders Faster: Seamlessly generate orders from quotes to quickly get products and services delivered to your customers.
  • Flexible for Evolving Customer Needs: Split quotes into multiple orders, manage future dated orders, and modify with point- and-click.
  • 360-Degree View of the Customer: Quickly generate contracts with all contract term, pricing, asset, and subscription details.
  • Connect to Back Office: Sync order details to ERP for order fulfillment.

Orders must be created from a primary quote. In Salesforce CPQ, after an order is created from the primary quote, the primary quote can’t be edited. When you order a CPQ quote, your order products inherit the following fields from their originating quote lines.

  • List Price
  • Unit Price
  • Total Price

When you contract an order, the order product records look up to any related subscription, contract, and asset fields.

The Order Amount field is equal to the sum of all order product Total Price values on the order.

When you order a Percent of Total product, its order product price is calculated based on the state of the quote at the time the first order was generated. Salesforce CPQ creates the Subscribed Quote Line object when the order is first created. It uses this record for all subsequent orders, even if the original quote changes.

Orders have a Status field set by default to Draft. You can edit fields on your order and order products while the order is a draft. Click Activate to set your order’s status to Activated and lock the record from field edits. You can invoice or contract your order only while it’s activated. Click Deactivate to return your order to draft status and make further field edits.

Salesforce CPQ selects an order product’s Activated field based on the order’s status field. You can select or deselect the Activated field yourself. Activating your order products in portions is useful if you want to partially fulfill a quote while maintaining one contract for generating amendments and renewals. On amendment and renewal quotes, you can order quote lines only with a quantity of one or greater. If any of your order products are contracted, you cannot deactivate an order.

When you order a quote or edit order pricing, Salesforce CPQ runs a series of calculations to determine price schedules. Price schedules are created for only usage-based order products. The order field Price Calculation Status shows Salesforce CPQ’s progress through the calculation process. Users can’t activate the order, edit order fields, or edit order product fields until the price calculation status has a value of Completed. Salesforce CPQ updates the price calculation status message to reflect its progress through the price calculation process.

IMPORTANT After placing an order against a quote, do not modify any parts of the quote that affect cost. Do not modify products, dates and schedules, quantity, or price.

Salesforce CPQ requires the following objects and settings when you create a contract from an opportunity.

  • An opportunity with at least one subscription product
  • A primary quote that looks up to your opportunity
  • A contract-based renewal method on your opportunity’s account

To contract your opportunity, select Contracted on your opportunity record, and then save your changes. The contract inherits its start and end dates from your quote’s start and end dates. The contract is created in the background.

Salesforce CPQ then creates a subscription record for each of your subscription products. These records contain pricing and date values for each of the subscription products you quoted. You can access your subscription records from your contract’s Subscription related list.

  • By default, the subscription inherits its start and end dates from the quote line group’s start and end dates.
  • If the quote line group’s dates are null, the subscription inherits its start and end dates from the quote line’s start and end dates.
  • If the quote line’s dates are null, the subscription record inherits its start and end dates from the quote line’s Effective Start Date value and Effective End Date value.

Subscriptions inherit the values of all other matching quote line fields.

Salesforce CPQ creates assets for your products that have One per Unit or One per Quote Line asset conversion. These records contain pricing values for the nonsubscription products you quoted. You can access your asset records from your account.

Contracting an opportunity locks the original quote lines from further changes. To change those quote lines, sales reps must amend the contract and edit the quote lines on the amendment quote. If the contract is ready for renewal, they can also renew the contract and change the quote lines on the renewal quote.

NOTE

  • When you contract an opportunity containing a subscription quote line with a quantity of zero, Salesforce CPQ creates a zero-quantity subscription record on the contract.
  • Users with read-only access to subscribed assets can create contracts and subscribed assets through the opportunity and order contracting process. Although this is not a standard security allowance, Salesforce CPQ supports it as a business flow.

Salesforce CPQ requires the following objects and settings when you create a contract record from an order.

  • An order with at least one subscription order product
  • All the subscription order products you want to contract are activated
  • A contract-based renewal method on your order’s account
  • An uncontracted opportunity for the quote you ordered from
  • Order products must be related to the quote line of the quote the order was generated from

To contract your order, select Contracted on your order record, and then save your changes. By default, Salesforce CPQ creates a contract for each group of subscription order products with matching end dates. The contract is created in the background.

Salesforce CPQ sets the dates on each contract record based on the following settings.

  • The contract start date inherits the order’s Order Start Date field value.
  • The contract end date inherits the shared end date of the order products on that contract.

Salesforce CPQ then creates a subscription record for each of your subscription order products. These records contain pricing and date values for each of the subscription products you quoted. You can access your subscription records from your contract’s Subscription related list. Subscription records made from contracted order products set their start and end dates based on the order product’s start and end dates. Finally, the subscription field on each of your order products receives a lookup to the related subscription record.

NOTE When you contract an order containing a subscription order product with a quantity of zero, Salesforce CPQ doesn’t create a subscription record for it on the resulting contract. If you need a subscription with a quantity of zero, contract from the opportunity instead.

Salesforce CPQ also creates subscribed assets for any of the percent of total subscription products that you contracted.

Through the order record, you can create a contract for percent of total, covered, or bundle order products.

You can also contract a single order product on your order, even when the order record is unactivated. Go to your order product, activate it, select its Contracted checkbox, and then save your changes. Salesforce CPQ creates a contract and subscription record as if you had contracted an order with a single order product.

TIP You can activate and contract an order product even if its parent order is unactivated. This feature is useful if you want to contract a few subscriptions on a large order and then contract the rest of the order from the order record.

Salesforce CPQ creates assets for your order products with related products that have One per Unit or One per Quote Line asset conversion. These records contain pricing values for the nonsubscription products you quoted. You can access your asset records from your account.

NOTE As of Salesforce CPQ 210.13, the order contracting process respects the value of the Subscriptions and Renewals package setting Contract in Foreground.

Demonstrate understanding of how to generate renewal and amendment quotes to meet business requirements.

Amend your contracts when a customer wants to add new products or change products that you’ve quoted or sold.

  • Make sure that your account has a contract-based renewal model.
  • You can amend from an active contract or from a contracted opportunity related to an active contract. If you’re amending from a contracted opportunity, make sure that its Contracted field has been selected.
  • As of Salesforce CPQ Spring ’19, make sure that your contract’s Preserve Bundle Structure field is selected. Otherwise, you can’t amend that contract from the contract record or its related opportunity. We recommend selecting this field in earlier Salesforce CPQ versions as well. When this field is unselected in versions before Spring ’19, Salesforce CPQ ignores the configuration of amended bundles and converts them to standalone quote lines on the amendment quote. This can result in validation errors, unwanted price changes, and ignored product or price rules on the amendment quote.
  1. Click Amend on your contract, or click Amend Contract on your opportunity. Both records provide the same amendment workflow. Amending a contract from an opportunity is available for users who don’t have access to the contract object.
  • Amending from your contract takes you to the Amend Contract page, which shows your contract’s amendable active subscriptions and amendable evergreen subscriptions.
  • Amending from your opportunity takes you to the Existing Contracts page, which shows your account’s amendable active contracts and amendable evergreen contracts. Choose a contract, then click Select.
  1. Review your subscriptions, and then click Amend.
  2. Salesforce CPQ creates the following records.
  • An amendment opportunity with a close date equal to your contract’s start date. The amendment opportunity has a name of “Amendment for contract #[your contract ID].”
  • An amendment quote with start and end dates equal to your contract’s start and end dates. This quote contains all the subscriptions and assets from your original quote.
  1. Adjust the quantity of the quote lines from your original quote, apply discounts, or add new products, and then save your changes.
  2. You can amend assets to have a lower quantity only if their related product record has an asset amendment behavior of Allow Refund.
  3. Salesforce CPQ doesn’t support the amendment subscription quote line’s end date.
  4. IMPORTANT If a product’s price is determined by block pricing, and the product’s Block Pricing Field is set to a custom picklist value, don’t amend the quantity of the product. Amending the quantity of a product to which custom block pricing applies isn’t supported.
  5. Salesforce CPQ calculates product quantity and price on your amendment opportunity based on the difference of the original quote and the amendment quote. The amendment opportunity updates its Amended Contract and Primary Quote fields with links to the contract you amended and your original quote.

Amending MDQ Products

Amend a contract containing multidimensional quoting (MDQ) products. This process is useful if you want to change a multiple-year contract partway through its term.

When you amend a contract that contains MDQ products, your amendment quote contains only future MDQ segments. Past segments aren’t available for amending.

You can amend any editable field on each segment of your amended MDQ product.

Follow these guidelines when amending an MDQ product.

  • Salesforce CPQ doesn’t support amending multiple MDQ subscriptions that have different start dates. In this case, each MDQ subscription’s amended quote line start date equals the quote or quote line group’s start date.
  • Segment quantities on amended MDQ product match segment quantities from the original quote and any prior amendments. You can change any of these segment quantities.
  • The product record for an amended MDQ subscription record contains a lookup to the subscription record it was amended from.
  • You can change the uplift amount on an MDQ product’s first segment by amending the segment into a different discount schedule or block pricing tier.
  • If you add an MDQ product to an amendment quote, the first segment’s quantity is correct. However, the quantity shown for each subsequent segment is incorrect. It reflects the total quantity instead of the change compared to the previous segment.

Terminating Subscriptions

Remove a subscription when making an amendment.

To terminate a subscription, reduce the quantity of the related quote line to zero on your amendment quote. When you contract the opportunity containing that quote, Salesforce CPQ sets the Terminated Date value of the new subscription record to one day before the amendment quote’s start date.

When you amend a contract containing terminated subscriptions, the amendment quote doesn’t contain lines for the terminated subscriptions.

Renew Your Contracts and Assets

Your account’s renewal model and your use case determine the way you perform renewals. Regardless of your method, Salesforce CPQ creates a renewal opportunity and renewal quote. The renewal quote contains all the products you’re renewing. You can also add new products to the renewal quote.

We’ll review renewal methods at a high level here. Later, you can check out our tasks for step-by-step explanations and examples.

Contract-based

The subscriptions on one contract are near their end dates and your customer wants to renew them for another term of service.To create a renewal quote from your contract, click Renewal Quoted on your contract record.

  • Salesforce CPQ creates a renewal opportunity and renewal quote.
  • The renewal quote contains all the subscriptions and covered assets from your contract.

Contract-based

The subscriptions on several of your account’s contracts are near their end dates. Your customer wants to renew them, and you want to move all the renewed subscription products into a single renewal opportunity.To renew contracts from your account, go to your account’s Contracts related list, select all the contracts to renew, and then click Renew Contracts.

  • Salesforce CPQ asks you to pick a master contract. The renewal quote inherits its end date from the master contract’s end date.
  • Salesforce CPQ creates a renewal opportunity and renewal quote.
  • The renewal quote contains products for all the subscriptions and covered assets from the contracts you renewed.

Asset-based

You have a percent of total asset that represents a subscription and at least one covered asset.To renew assets, click Renew Assets on your account.

  • Salesforce CPQ creates a renewal opportunity and renewal quote.
  • The renewal quote contains your percent of total asset product and all the asset products it covered.
  • The covered products on the renewal quote have a net total price of $0 to show that your customers paid for them.

Given a scenario, recommend when to use orders, contracts, subscriptions, and assets to meet business requirements.

Manage Your Subscriptions and Assets

The Renewal Model field gives you two ways to define how Salesforce CPQ tracks the products you quote and sell on your account.

Set your renewal model in your Subscriptions and Renewals package settings. Salesforce CPQ applies that value by default to the renewal model field on your accounts. You can also set the renewal model on your account to a different value, which overrides the package’s renewal model.

When you contract an opportunity or order with at least one subscription product under a contract-based renewal model, Salesforce CPQ creates a contract record. It then creates subscription records for your quote’s subscription products and asset records for your quote’s products with asset conversion. Your contract contains lookups to subscription records for each subscription quote line on order. For example, a subscription quote lines or order product with a quantity of five would have one subscription record with a quantity of five on the contract. Two subscription quote lines or order products for the same subscription product would have two unique subscription records on the resulting contract.

Use the contract record to track the following information for your subscriptions.

  • Quantity
  • Start Date
  • End Date
  • Renewal and amendment settings

Contracting an opportunity or order locks the original quote lines from further changes. To change those quote lines, sales reps must amend the contract and edit the quote lines on the amendment quote. If the contract is ready for renewal, they can also renew the contract and change the quote lines on the renewal quote.

Salesforce CPQ creates contracts as background processes by default. You can change the creation process to occur in the foreground by going to your Subscriptions and Renewals package settings and selecting Contract in Foreground.

IMPORTANT Salesforce CPQ doesn’t create contracts for quotes that contain only optional products.

Contract-based

You sell many subscription products and want to keep detailed records of their start and end dates.

  • To contract a quote, click Contracted on your opportunity.
  • To contract an order, click Contracted on your order.
  • Creates a contract record.
  • Creates a subscription record for each subscription product on your opportunity or order and associates these records with your contract.
  • Creates an asset record for each nonsubscription product with asset conversion and associates these records with your account.
  • Creates a subscribed asset record for any product covered by a percent of total product. This record looks up to the subscription record for your percent of total product.

Asset-based

You don’t sell subscription products or you use only percent of total products to represent your subscription products.

  • To create assets, click Contracted on your quote or order.
  • Creates an asset record for each nonsubscription product with asset conversion and associates these records with your account.

Products: 11%

Demonstrate how to set up products, pricebooks, and pricebook entries.

  • Products with consumption schedules can’t have price dimensions.
  • Clicking Clone with Related on a product with consumption schedules won’t clone the consumption schedules on the cloned product.
  • To use products with consumption schedules in Salesforce CPQ and Salesforce Billing, make sure both packages are on the same major release version, such as Summer ‘19.
  • Quote lines with consumption schedules can have a quantity of only one. When amending or renewing, you can change the quantity from one to only zero.
  • Products with consumption schedules don’t support renewal pricing.
  • You can use the product consumption schedule object to associate multiple consumption schedules to the same product. However, each of these consumption schedules must have unique units of measure and matching attributes.
  • Consumption rate billing terms must be greater than or equal to one month.
  • Consumption rate billing terms must be less than or equal five years or 60 months.
  • Usage processing orders can be negative.
  • All of a schedule’s consumption rates must have unique usage processing orders.
  • Consumption rate upper bounds aren’t inclusive. If you want your rate to evaluate up to 10 units of usage, set its upper bound to 11. The next consumption rate’s lower bound must equal the previous consumption rate’s upper bound.

A price book is a list of products and their prices.

  • The standard price book is the master list of all your products and their default standard prices. Salesforce creates the standard price book when you start creating product records. It includes all your products and their standard prices regardless of any custom price books that include those products.
  • A custom price book is a separate list of products with custom prices, called list prices. Custom price books are ideal for offering products at different prices to different market segments, regions, or other subsets of your customers. Create a separate price book for each set of customers that you want to address. For example, if you have one set of prices for domestic customers and another for international customers, create a domestic price book and an international one.

A price book entry is a product with its price as listed in a price book. Each price book entry specifies a currency for the price.

  • Standard price book entries are the default (standard) prices for the products and services in the standard price book. When you create a product record, Salesforce creates a standard price book entry. You can mark the standard price book entry as active or inactive, depending, for example, on whether you intend to start selling the product right away.
  • Custom price book entries are the custom (list) prices for the products and services in your custom price books. Custom price book entries can be created only for products with active standard price book entries.
  • In Lightning Experience, Product detail pages display the Standard Price related list and the Price Books related list as a single Price Books related list.
  • If you customize the Price Book Entry detail page layout, no field dependencies exist for price book entry fields in the user interface. If the Use Standard Price checkbox is removed from the page layout, and this checkbox is selected for a price book entry, you can’t edit the list price. The List Price field is disabled and can’t be enabled on this page.

Demonstrate how product catalog setup impacts overall CPQ data flow.

  • To create a custom price book by cloning an existing price book, click Clone on the price book detail page.
  • You can delete products from custom price books without affecting the original product listing or its entries in other price books. When you delete a product from the standard price book, the product is still available and active, but its standard price is deleted and removed from all custom price books. If you delete the product from the standard price book, and it’s still associated with any custom price books, click OK to remove it from all custom price books.
  • You can add products, quote line items, or order products from a single price book only.
  • To include a product on an opportunity, quote, or order, choose a price book that contains the product. The last price book that you used on an opportunity or quote is selected by default. To select a different price book, click Choose Price Book in the Products related list on an opportunity or the Quote Line Items related list on a quote. Choose Price Book appears when you have access to more than one price book. If you have access to more than one price book and the option isn’t visible, ask your administrator to add it to your page layout.
  • If you change the price book for an opportunity that has products, all products are deleted from the Products related list, but the value in the opportunity’s Amount field remains.

Approvals: 4%

Select and set up advanced or native approvals to meet business requirements.

Advanced Approvals Key Features:

  • Smart Approvals: If an approver or approval group has already approved a quote and it gets rejected in a higher tier, the same approver or approval group isn’t required to reapprove when the quote is resubmitted. Salesforce CPQ remembers the sequence.
  • Requiring Approvals: Reps have complete visibility into what approvals they’ll need to obtain as they work on their quotes, so there are no surprises when they submit for approval.
  • Delegated Approvers: Used for assigning an approver to take over for someone while they are out of the office.
  • Replacing Approvers: If a certain approver is no longer required to approve quotes, they can be replaced with clicks. This eliminates the need to delve into every single approval process the old approver was a part of to manually replace them.
  • Parallel (Independent) Chains:

Advanced Approvals works with any Salesforce Object, custom or standard.

--

--