The Ultimate Guide

What is Salesforce CPQ?

What is Salesforce CPQ and how can you use it to drive revenue for your business?

Last Update:
Published:
November 11, 2021

Table of Contents

The CRM market is growing at a rapid pace, valued over $40B and expected to grow to over $90B, more than doubling by 2027.

Within the CRM space, CPQ is one of the fastest growing products. What is it exactly? CPQ = Configure + Price + Quote. It’s a simple equation, but it’s not always simple to implement and deploy. And for an engineer it can require a lot of specialized learning and effort to become proficient. The term CPQ isn’t unique to Salesforce, there are many products that offer similar benefits, however, none of them offers the platform and ecosystem that Salesforce can. 

Salesforce made thirteen acquisitions during 2016 and one of them was a growing company called SteelBrick. SteelBrick was a leading CPQ provider built for the Salesforce ecosystem and offered as a managed package. Salesforce then rebranded SteelBrick as Salesforce CPQ which is now part of the complete solution called Revenue Cloud with different packages and features. (CPQ+, CPQ Billing, etc.)

How CPQ Works

CPQ is a sales tool that lets you configure products that support a lot of customizations (bundles, features). It also lets you run pricing logic to improve your pricing that can really drive your business. Finally, CPQ improves close rates and times through allowing reps to quickly generate quotes that will be hopefully invoiced. 

CPQ helps companies accurately define the price of goods across a huge and constantly changing spectrum of variables, which in turn allows companies to configure products or services in the most optimal way.

Sales Cloud is a great solution if your product catalogue does not expand to thousands of rows that require their own logic for grouping them together. It’s also very complicated to build this functionality by code. This is where CPQ comes in. It’s standard features, which themselves are customizable, can fit almost any business. It’s a great pick if you want to save yourself development time and make your solution maintainable by CPQ admins.

If implemented correctly. CPQ can simplify your Sales Cycle, creating less knowledge burden when onboarding new people, saving time by automating discounting, contract renewal and other pricing logic tasks. A significant portion of errors happen due to human error, which CPQ can eliminate in a standardized structure. Imagine being able to release a new product faster than your competitors. Sometimes being there first can make a huge difference. 

Customizing with the CPQ API 

You can also use CPQ API to automate some of the routine tasks that otherwise would take longer to implement. For example, This example reads a quote, adds a product, and saves the quote.

//the Id of the quote
String quoteId = 'a0Wf100000J1vk1';

//the Id of the product to add to the quote
String productId = '01tj0000003P1SN';

//the Id of the pricebook for the quote and product being added
String pricebookId = '01sj0000003THhKAAW';

//the currency code
String currencyCode = 'USD';


//the JSON formatted String representing the quote model to add a product
String quoteModel = SBQQ.ServiceRouter.read('SBQQ.QuoteAPI.QuoteReader', quoteId);

//the JSON formatted String representing the product to be added to the quote
String productModel = SBQQ.ServiceRouter.load('SBQQ.ProductAPI.ProductLoader', productId, '{"pricebookId" : "' + pricebookId + '", "currencyCode" : "' + currencyCode + '"}');

//the JSON formatted String representing the quote with the product added to it
String updatedQuoteModel = SBQQ.ServiceRouter.load('SBQQ.QuoteAPI.QuoteProductAdder', null, '{"quote" : ' + quoteModel + ', "products" : [' + productModel + '], "ignoreCalculate" : true}');

//the JSON formatted String representing the saved quote
String savedQuoteModel = SBQQ.ServiceRouter.save('SBQQ.QuoteAPI.QuoteSaver', updatedQuoteModel);

You can also manually disable Salesforce CPQ and Salesforce Billing application logic when you update records. This process is helpful when you’re updating your own custom fields. It’s also helpful when you update a record several times in one transaction and want triggers to run only on the last iteration. 

One final thing to note before you start using CPQ API is that since you’ll be using a native platform feature, the performance is generally good. However, if you use multiple clouds such as Communities and then use CPQ just to generate a price, it can take significantly longer as you add more processes to the mix. 

You also need to install a separate package to be able to use them, a good scenario to think of using it goes as follows: if we need to mass amend a large amount of contracts and doing additional automation (removing or adding products) using API could be a good option.

There are also many plug-ins that are available for use, for example the “Recommended Products” plugin. You can create a URL button that qualifies the details with a return URL pointing to the Quote Line Editor for that quote. For this plug-in, the logic is dependent on the Quote Lines having been saved, so this will not work prior to Quick Save or Save being used on the Quote and there are some limits to work with: If your plugin includes fields that your users don’t have permission to view, those fields aren’t displayed on the Recommended Products page. 

Deploying CPQ

Salesforce CPQ allows you to automate and simplify your product catalog dramatically. It takes a bit of up front effort to set everything up, but once you do your sales reps will thank you.  To help ensure a smooth roll out of CPQ, Blue Canvas offers a CPQ Deployer that allows you to deploy your configuration changes from sandboxes into production. It searches for dependencies and ensures that your CPQ Go Live will be smooth and successful. 

More like this