CPQ Implementation Project – Guide

Introduction
Many folks have asked, “How do we even start our CPQ project?”. This is a great question. It can be daunting to think about all of the things you’re going to need in your system. Here is a guide to help you kick off and run your CPQ implementation project.  Also this:  I like lists.  See below.

Project Budget
The first thing people usually try to define is a budget for the project.  This can be an estimate or a percentage based on the total budget of your department and how much stakeholders want to give to the CPQ project.  It is best to come up with your scope and resources involved and a rough timeline to figure out your budget.

Project Schedule
Is there a business-defined go-live date?  Many times, the business says, “We simply must be quoting with CPQ by the start of next fiscal year.” or something of that nature.  The ideal situation would be to estimate the effort required for each phase/sprint.  Then you can lay this out over time and see where the go-live date lands.

Cast of Characters
Who are your players?  Common resources are:

  • Business Side
    • Project Manager
    • Product/Pricing Expert (Sales Ops Rep or Sales Rep)
    • Finance Rep
    • Sales Managers, VP Finance (For Approval Rule Definition)
  • Implementation Side
    • IT Project Manager
    • CPQ Architect
    • CPQ Developer/Configurer
    • QA Tester

Environments

  • Do you have a Sandbox?  Do you have a QA?  Do you have a Production?  
  • Make sure Orders are enabled in Setup before install. (Setup > Customize > Orders > Orders Settings > Enable Orders
  • Is CPQ installed yet?
  • Make sure the Calculation Service has been authorized after install. (Setup > Installed Packages > Salesforce CPQ > Configure… > Pricing & Calculation Tab > Authorize New Calculation Service Link)

Structure of Configuration
CPQ is divided up into a few different areas. These areas can all be worked on at the same time in parallel. The areas are: Products & Pricing (& Discounts), Approvals, Outgoing Documents, and lastly, Contracts. Below, we go into each area in detail. Let’s get into it.

Products
Configuring products is the first step to a successful implementation. But before you configure products, you must know what your products are. Time and time again, we’ve seen projects take double or even triple the time because product definition is a moving target. Make sure your products are defined in concrete before starting your CPQ project. You might not be ready and that’s ok.  When you are ready, make a list of your products!

Note: Products can be defined and configured, for the most part, separately from pricing. Pricing is addressed in the next section.

Product Propagation & Configuration Attributes
Duplicate products. This is a subject that most businesses have trouble with. They have one product but they create a product record for every permutation of attributes the product could possibly have. Length, width, height, color, weight, subscription term, pricing tier, and service level are all configurable attributes that most often cause product propagation.

You want to create one single product record which has one or more Configuration Attributes. Later, you can configure rules that look up prices based on the values of your attributes.

Did we make you rethink your entire product definition document? Good. Go redo it. Your implementation team will thank you later.

Bundles & Product Hierarchy
Bundle, Package, Suite, Pile o’ Products.  A bundle can sound like many different things but in the end, it is really a parent Product containing child Product(s).  A bundle can be:

  • Pre-configured to contain specific Products at specific quantities and prices.
  • Wide open to contain a list of potential options and configurable to look as customized as you’d like it.
  • Anywhere in between those two ^^.
  • Containing configurable attributes that may or may not contribute to calculating a price.
  • What do you think your bundles are? Write them down! Make a list.

Product Options
A product option is a CPQ term that means: a product that sits inside this bundle. It could be a required product. It could be an included product (meaning included in the bundle price). It could be a completely optional add-on that adds to the bundle price. What are the options in each of your bundles? Write these down too!

Features
A feature is a CPQ term that means: a way to group product options within a bundle. An example of this would be having a Warranty feature containing all of the warranties you offer. Or a Hardware feature which lists all of the hardware available in this bundle. What are the product groups in each of your bundles? What options sit in each of these features?

Help!  I’m Drowning!
Here is a sample hierarchy document template that can help you define your products and how they relate to each other.

Product Rules
Sometimes you have options that are only required if other options have been selected. Or you might have options that are forbidden if certain other options have been selected. Or you might have options that are selectable based on the values of your configurable attributes. What are those rules?

Subscription Products
A subscription is any product that has a recurring charge that might also be renewed. Sometimes this can be a grey area if you have monthly fees that don’t renew. Or you have a fee that is paid once in the first year of the term and isn’t on the renewal. All of these can be configured. Questions to ask about each product: is this product renewable? Is it priced monthly/yearly and depends on a contract term? Make notes of these next to each of your products.

MDQ Subscription Products
But but but, my subscription might have some sort of ramp up during the term. Someone might want to start with 5 licenses and then increase it another 5 each following year in the term. This is where MDQ steps in. MDQ = Multi-dimensional Quoting. Make sure to record which of your subscription products have this nature to them.

Note: if your parent bundle product needs to be MDQ, you need to create a separate child product for this that sits under the parent product. This will make the parent product’s only purpose be the fact that it is the parent product. It’s a shell that holds all of the meat.

Assets
If you’re coming from another CPQ system or no CPQ system, you probably use Assets in Salesforce.  In CPQ, we use Assets to break out those products that are not subscriptions. Assets are products that are things. Your customer owns them. They pay for the things, you ship the things to them, they use the things. These products are configured to create asset records attached to the customer’s account record. Make note of the products in your list that are assets (not subscriptions).

Integration from ERP
Are you planning on having your ERP supply Products?  Do your Products exist in the ERP and you’re wondering how on earth they’re going to get into Salesforce?  Very common question!  We typically use tools like Dell Boomi, DB AMP, or DataLoader.io.  Keep in mind that the amount of Product configuration you want your integration to handle is equal to the amount of Product configuration you’ll need to set up in your ERP.

Pricing
Now that you have your list of products and the hierarchy, you’re ready to price them. Sometimes pricing is straight forward. Each thing has one price. Or pricing is super complex. The price for a product depends on the values of the eight configurable attributes and how long the subscription term is and which options are selected inside it.

Price Books
You probably only need one. Many businesses have multiple price books based on various things. The way to figure out price books is: if two products can be sold on the same quote, they belong in the same price book.

Pricing Methods

Cost Plus Markup/Margin
This pricing method is for when you calculate the list price of your product based on a cost and a markup or target margin.  

Formula to Calculate Price: Cost + (Cost * Markup %)
Formula to Calculate Margin %: (Price – Cost) / Price
Formula to Calculate Markup %: (Price – Cost) / Cost

CPQ has a place to put your cost data.  There is a Cost object sitting in a related list under the Product object.

List Price
This pricing method is for when you have straight price values for your products.  You can use Pricebook Entries for your prices or create Price Rules to inject a price into your quote lines.

Note: You must have a price in the Pricebook you are quoting against for the product you want to quote.  Otherwise, you will not see the product in the list when clicking the Add Products button in the Quote Line Editor.

Tiered Pricing
This is an example of using Price Rules to inject a price into your quote lines.  You will use this when you have a pricing structure based on various pricing inputs.  Most of the time, the input is quantity.  This is for when you have a price per each. The pricing method in CPQ will still be List, which means the price is multiplied by quantity.

Quantity RangePrice
1 – 100$1.00
101 – 500$0.92
501 – 1000$0.87

Block Pricing
This is similar to Tiered Pricing but! Each tier contains the price for the whole lot. The price will not be multiplied by quantity.

Note: Opportunity Products will always show a quantity of 1 for these products.

Quantity RangePrice
1 – 100$100.00
101 – 500$460.00
501 – 1000$870.00

Interruption! Discounts!
Let’s pause a minute on pricing methods to discuss discounts! Ask yourself if your sales reps will be discounting discretionally on each line or on the quote as a whole, if at all. There could also be discounts for your partners or favorite customers (Partner Discount field). Is there a discount structure at all? Product specific discounts (Discount Schedule object)? Maybe the above pricing structure is not pricing at all but discounts off of list price. These are the things you should be discussing with Sales Ops to determine discounting. Is the tiered pricing structure actually pricing or do you want to see values in the discount fields?

Resume Pricing Methods… Slab Pricing
In slab pricing, products are sold in groups of set quantities and each group has a flat rate. Once the quantity reaches a specified number, discounts are applied to the product’s list price and sold by the unit. The customer pays each group’s rate and then per unit until they reach their desired quantity.

To set this up in CPQ, we make use of Block Pricing and Discount Schedules.

Here’s a table to show when to choose which pricing and examples:

When to say: Use Case:Example:
Block PricingProducts are sold in groups of set quantities with each group having a flat rate.1-10 units = $25
11-20 units = $45
21-30 units = $85

Scenario A:
Customer buys 9 units, total cost = $25

Scenario B:
Customer buys 15 units, total cost = $45

Scenario C:
Customer buys 27 units, total cost = $85
Block Pricing with Overage RatesProducts are sold in groups of set quantities and each group has a flat rate, but there is an additional charge for units over a specified quantity1-10 units = $25
11-20 units = $45
21-30 units = $85
31+ units = $2 per unit sold above 30

Scenario A:
Customer buys 29 units, total cost = $85

Scenario B:
Customer buys 40 units, total cost = $85 + (10 * $2) = $105
Slab-Block PricingProducts are sold in groups of set quantities and each group has a flat rate, once the quantity reaches a specified number, discounts are applied to the product’s list price and sold by the unit. The customer pays each group’s rate and then per unit until they reach their desired quantity.Unit List Price: $10
1-10 units = $100
11-20 units = $90
21-30 units = $80
31-40 units = 10% slab discount off list price
41+ units = 20% slab discount off list price

Scenario A:
Customer buys 29 units, total cost = $100 + $90 + $80 = $270

Scenario B:
Customer buys 55 units, total cost = $100 + $90 + $80 + (10 x $9) + (15 x $8) = $480
Discount TiersProducts have individual list prices, but discounts are applied, either in a dollar or percent amount, based on the quantity purchased. Product is purchased on a per unit basis.Unit List Price $10
1-10 units = $10 per unit (no discount)
11-20 units = $9 per unit (10% discount)
21-30 units = $8 per unit (20% discount)
31+ units = $7.50 per unit (25% discount)

Scenario A:
Customer buys 29 units, total cost = 29 x $8 = $232

Scenario B:
Customer buys 50 units, total cost = 50 x $7.50 = $375
TieredProducts have individual list prices, but the prices are different based on quantity purchased (or various other criteria such as date, product type, parent product code, etc.) and are multiplied by quantity.Unit List Price: $10
1-10 units = $9 per qty
11-20 units = $8 per qty
21-30 units = $7 per qty
30-9999999 units = $6 per qty

Multi-currency
CPQ definitely handles multi currency. There are some caveats that need to be considered when implementing.

First, enabling multi-currency in your org is a one way thing. There is no undo button. Once enabled, always enabled.

Second, while this will enable you to quote in other currencies, you must make sure to put prices into your pricebooks for all the currencies you wish to quote your products in.

Third, the above second point assumes you have prices in other currencies. If you do not and wish to use USD and a conversion rate to convert your prices, you must put the USD price in all currencies for a given product in your pricebook. You’ll also need to make a custom object to store conversion rates in. Then, make a Price Rule to fetch the conversion rate based on the quote currency, and inject the converted price using the conversion rate and the list price.

Fourth, no, the conversion rates in Salesforce Setup are not available for you to utilize when converting prices with a Price Rule.

I APPROVE! Approvals n’ Things
This is a fun one. There are two types of approvals. Salesforce Standard Approvals and Advanced Approvals. When to use each one?? Gah. This is a good question!

Advanced Approvals: If you need to have different approvals happen at the same time (parallel approvals), you need to surpass one or many of the Salesforce limits on standard approvals.

Standard Salesforce Approvals: If none of the above applies.

Approval Criteria
Make sure to define the rules for your approvals. Break them up into levels!

CriteriaLevel
Discount > 0%, < 10%0, No approval needed.
Discount >= 10%, < 20%1, Manager approval needed.
Discount >= 20%, < 60%2, Director approval needed.
Discount >= 60%3, CFO approval needed.

Hint: This part is normally handled by adding fields to the quote and quote line and creating Price Rules to inject approval level into these new fields.

Approval Routing
This part of your discovery should talk about the WHO of approvals. Which level = which approver? Make a grid (or use the one above) to note who will be the approver.

Hint: They don’t have to be specific people. “Sales Rep’s Manager” is a valid approver. “Sales Rep’s Manager’s Manager” is also valid.

Note: The approver could be different based on product type or product family or sales department or time of day or time of year, etc. It could be anything. This is more advanced and would require further configuration. Make sure to make note of this!

Outgoing Document
Document generation is a big topic when implementing CPQ. How will the quote/proposal/agreement/contract/whatever-you-call-it get from the quote and quote line records to the customer?

The CPQ Document Generation engine is quite versatile and can handle 99.99% of situations. This includes situations where your requirements surpass the capabilities of Quote Template configuration. There is the ability to include custom Template Content which references a visual force page that can be anything.

Make sure to include an example of your current outgoing document so your partner or internal resource, who will be configuring this, knows what you’re aiming for. On this example, identify which parts are dynamic by replacing actual values with notation such as: {!object . field name}. Example: {!quote . Start Date}

Note: If you do choose to write a VF Page to accommodate your document generation requirements, please note that you should not use HTML, but rather, XSL:FO. This is the language that the document engine understands.

Digital Signing
CPQ integrates nicely with Docusign and other signing tools via Package Configuration. Here is the place to go for integrating Docusign. Here is the place to go for integrating eSignLive.

Contracts
These next few sections do not apply to you if you are not doing subscription products! Skip to the Orders section! If you’re still here, this section describes what you need to know on subscription products!

A contract object record is created when the Contracted checkbox is checked on an opportunity. This is a way to manage your subscriptions after the deal is won. That being said, it does not matter what stage the opportunity is in when you click the contracted checkbox. The system will generate a contract record and attach all subscriptions to it as a related list.

Amendments
An amendment is when you have a subscription product on a contract and the customer wants to change (add licenses to, change quantity on, add products to, remove products from) the contract.

CPQ has built in functionality to accommodate this. Take note of which products could be amended and in what ways they’ll be amended.

Renewals
A renewal is when you have a subscription product on a contract that has a nearing end date and the customer wants to renew. CPQ can be configured to automatedly generate the renewal opportunity and quote. This renewal is your chance to make additional changes to their next contract term. Adding products, changing term length, removing products, adding discounts, adding uplifts, and much more can be applied to renewals. Make note of which products might need to be renewed after each contract term.

Alert! Do your contracts auto renew? There’s a configuration for that! CPQ has the ability to be configured for evergreen contracts that auto renew.

Orders
Here we talk about orders! Are you going to be tracking orders (after quoting) in Salesforce? Are you implementing Salesforce Billing? Do you need to integrate your CPQ with your other “not salesforce” billing system? Here is the section for you!

There are a few things you can do to get orders going in CPQ. There are a couple checkboxes you will be interested in. “Ordered” checkbox on the opportunity. “Ordered” checkbox on the quote. If one of these boxes is checked, an order will be created for the items on the quote (primary quote if checked on the opportunity).

You can then use this order record to start the billing process whether it be in Salesforce Billing or integrated over to your other billing system.

Automation
There are many things that can be automated with workflows or process builders!

  1. Contract Generation
    Typically this happens on Opportunity Close Win.
  2. Renewal Opportunity Generation
    Typically this happens on Contract Activation.
  3. Renewal Quote Generation
    Typically this happens a specified number of days before the Contract End Date.
  4. Order Generation
    Typically this happens on Opportunity Close Win.
  5. Outgoing Document Draft Watermark on non-Approved Quotes
    Typically this is done when Quote Status is set to anything but Approved.
  6. Outgoing Document Template Choice
    There is the ability to force the user into a specific Quote Template. You can do this for any reason.

Which pieces of automation apply to you?

Integration to ERP/Other System
This is a very wide topic. If you have other systems in your business, you can integrate CPQ objects over there. Usual integrations are:

  1. SFDC Orders => Billing System
  2. SFDC Products <=> ERP System
  3. SFDC Quotes => ERP/Project System

Which systems will you want to integrate?

Legacy Data Migration
Once you have your CPQ implementation all set, you will need to come up with a plan to migrate your old data to the new system. This might be pulling data out of another system or pulling data out of SFDC (maybe the old Quote object) and into the new CPQ setup. Here is an article containing a sample import process. Make note of which data you’ll want to move into the new CPQ system or if a data migration is even necessary.

Production Migration
Now that you have your CPQ implementation done in your sandbox (if you did this directly in production, you can skip this part), you will need to migrate what you configured to your production environment. Here is a brief outline of what a production migration might look like.

Install CPQProductionSFDC
Create Change SetSandboxSFDC
Upload Change SetSandboxSFDC
Validate Change SetProductionSFDC
Deploy Change SetProductionSFDC
Export DataSandboxData Loader
Import DataProductionData Loader
Adjust CPQ Package SettingsProductionManual
Adjust Page LayoutsProductionManual
Adjust Field SetsProductionManual

Documentation
There are two types of documentation that typically go with a CPQ implementation.

First, there is Sales User Training Documentation. This documentation includes how to execute the quoting process as a whole. You can use this article as an outline for what to include in your “how-to” documentation. Generally, you want to include:

  1. Quoting (Account to Opportunity to Quote)
  2. Adding Products
  3. Configuring Products
  4. Approvals
  5. Document Generation
  6. Document Signing
  7. Close Win Opp
  8. Amendments
  9. Renewals

Second, there is Admin User Documentation. This documentation includes how CPQ is configured. If you create requirements and/or a technical design document, this can be used as the basis for the admin document. You can also use this article as an outline. Generally, you want to include:

  1. Product Configuration (Products, Features, Options, Constraints, etc)
  2. Pricing Configuration
  3. Approval Configuration
  4. Quote Templates
  5. eSignature Configuration
  6. Automation
  7. Production Migration Template
  8. Legacy Data Migration Template

Training
To start every training conversation, I ask the same question: Have you or do you plan on taking the 2 day or 4 day CPQ training course that SFDC offers as included in your CPQ purchase? As of the publish date of this article, you get one seat in both courses with your CPQ purchase. You should definitely contact your SFDC AE about enrolling in these courses.

2 Day Course
4 Day Course

Post Production Support
After you’ve migrated your CPQ implementation to Production, you should really consider retaining your parter to answer any questions or handle any issues that may arise. In my experience, post-prod support lasts anywhere between 2 weeks and 2 months depending on how complex the configuration is. If you are implementing in house, you should plan on deciding how much time to allocate your resources to post-prod support for your CPQ Project.

Conclusion
A CPQ implementation can be super simple or super complex. Every implementation is different and require different amounts of specific attention in the various sections above.

Please do let me know if you have any questions or if you think I’ve left something out! This is surely more than enough information for one plane ride or a full afternoon, but I am happy to give more! Happy quoting!




DP

Leave a Reply

Your email address will not be published. Required fields are marked *