CPQ – Feature – Usage-Based Products

This feature is for when you have a product that is usage based! This is for “number of” products. Hours, Views, Impressions, Calls, Incidents, Visits, Bandwidth, and many many more. There are a few things you need to do before you begin quoting with Usage-Based Products.

SFDC Help Case: Enable the Usage Based Pricing Feature
If not enabled already, you need to submit a case to SFDC to have them turn on the “Enables the Usage Based Pricing Feature” feature. Make sure you tell them exactly: “Please enable the ‘Usage Based Pricing Feature'”. This is something they will need to escalate to the Tier 3 team and possibly to the R&D team. Once they come back with it enabled, you can proceed.

Install CPQ Billing
There are a few things in this article that reference CPQ Billing. You should install this to take advantage of these features. One of the most important features is usage summaries. These are very useful and are only usable if you have CPQ Billing installed.

Create a Billing Rule for use with a Consumption Schedule
In order to use CPQ Billing, you must create a Billing Rule and associate it to the consumption schedule. This will be covered in detail in a later post about CPQ Billing.

Create a Tax Rule for use with a Consumption Schedule
In order to use CPQ Billing with tax, you must create a Tax Rule and associate it to the consumption schedule. This will be covered in detail in a later post about CPQ Billing.

Enable Consumption Schedules for Salesforce CPQ and Billing

  1. Enable usage-based pricing in Salesforce CPQ package settings.
    1. From setup, enter Installed Packages, and then select Installed Packages.
    2. Find the Salesforce CPQ package and click Configure.
    3. Select the Pricing and Calculation tab.
    4. Select the Enable Usage Based Pricing field.
  2. Make sure that users who need consumption schedules have Create, Read, Edit, and Delete permissions for the following objects.
    • Consumption Schedule
    • Contract Line Item Consumption Schedule (Service Cloud for Salesforce CPQ only)
    • Contract Line Item Consumption Rate (Service Cloud for Salesforce CPQ only)
    • Localizations (if your org uses CPQ translations)
    • Order Product Consumption Schedule
    • Order Product Consumption Rate
    • Quote Line Consumption Schedule
    • Quote Line Consumption Rate
    • Subscription Consumption Schedule (Not needed for Service Cloud for Salesforce CPQ)
    • Subscription Consumption Rate (Not needed for Service Cloud for Salesforce CPQ)

Two Flavors!
There are two ways to manage usage: with consumption schedules OR with pricing schedules! Consumption schedules is what we will tackle first.

Consumption Schedules
First, make a Product. Name it whatever you want. Make sure the below fields are filled as directed.

  • Subscription Pricing: Fixed Price
  • Charge Type: Recurring
  • Billing Type: Arrears
  • Values for Billing Rule, Tax Rule, and Revenue Recognition Rule (CPQ Billing fields)
  • A Subscription Term
  • A Billing Frequency
  • Set up standard price and price in any pricebook you plan on using. This is the active standard price for your product.
  • Make sure all prices are active and the product is active.
  • Products with consumption schedules can’t have price dimensions.
  • Products with consumption schedules don’t support renewal pricing.

Done. Next! Go to the Consumption Schedule tab. When I did this, there weren’t any columns in this list view. I added a whole bunch: Type, Billing Term Unit, Billing Term, Description, Unit of Measure, Rating Method, Matching Attribute, Number of Consumption Rates, Category and Active. So! New Consumption Schedule! CLICK. Wait! Fields. Whaaaaat do they meeeeean???

  • Consumption Schedule Name: This is the name of your schedule. Don’t matter what you name it. Call it “Bill”.
  • Active: Easy. This is if the schedule is active or disabled. Wait. NOT easy. If you set this to true when creating the schedule from scratch, it gives the error: “Can’t activate consumption schedule. Add at least one consumption rate.” Don’t set this to true yet. Create the schedule, add rates, then set this field to TRUE.
  • Description: Describe your schedule here. So people know what you’re doing with this.
  • Unit of Measure:
    • This field starts out blank. With no values. You make your own values. Usage rates and quantities apply to this unit of measurement.
    • Examples: Hours, Views, Impressions, Calls, Incidents, Visits, Bandwidth.
    • You can have multiple schedules for the same product by varying this field. You can not have two schedules associated to the same product with the same unit of measure.
    • IMPORTANT: When you add your picklist values to this field, make sure to add these same values to the Unit of Measure field in the
      • Quote Line Consumption Schedule object
      • Order Product Consumption Schedule object
      • Subscription Consumption Schedule object
      • Unit of Measure Global Value Set
    • Otherwise you’ll get the error message when Ordering against the Quote:
  • Billing Term: This field is important. This field and the Billing Term Unit field, together, define how long of a term to apply this schedule to. This is what breaks up the Usage Summaries later on, when you Order against the quote.
  • Billing Term Unit: Month, Quarter, Year. This defines the unit of measure for the Billing Term. I defined it as 1 Month and when I created the Order on a 4 year Quote, CPQ created 48 different usage summaries.

Ok schedule created. Disabled but created. Next! Do the Consumption Rates! Here are the fields for this one.

  • Consumption Schedule: Which schedule this tier belongs to.
  • Description: Tell me about this tier. What does it do? Why this range? Why this price?
  • Processing Order: The order in which to process the tiers for this schedule. FYI: Classic CPQ numbering scheme: 10, 20, 30. That way if you have to insert something, you don’t have to re-number ALL of them. You’re welcome.
    • Can be negative.
    • Must be unique.
  • Lower/Upper Bound: The quantity range for this tier. Upper bounds aren’t inclusive. If you want your rate to evaluate up to 10 units of usage, set its upper bound to 11.
  • Price: The uhm… price. For this tier. This is the price for the tier you’re making right now. This one.
  • Pricing Method: Per Unit OR Flat Fee. Per Unit multiplies the Price above by the Quantity.

Now that we have a whole bunch of tiers (Consumption Rates), let’s connect the Product to the Schedule! New Product Consumption Schedule button on the Schedule. CLICK. There’s two fields. That’s it. One points to Schedule (filled in already), one points to Product (fill this in with the Product you made up there ^^). WAIT. Error: “Cannot add inactive Consumption Schedule to Product” The schedule is inactive. Crap. Back. Back. Active = TRUE. Save. THEN new Product Consumption Schedule.

Keep in mind this is a junction object that points to two records, a product and a consumption schedule. This means it is a many to many relationship. You can have multiple Products share one consumption schedule and you can have multiple consumption schedules on one product. Here is an example of a couple products sharing same consumption schedules.

Ok, we have a Product, a Schedule, and they’re linked. NOW what… Let’s try quoting it!

A thing you’ll notice! And this is a big one. With consumption schedules, you can not have the quantity any greater than 1! It gives you an error.

Now, click that new icon!

Yes. You can. Because of the junction object, it is possible that one product can have many schedules and would definitely have a giant list of rates.

What happens when you hover over one of the rate links?

You get a nice popup showing the rate detail.

Back to Quote. If you’ll notice, you don’t have any pricing on the line. It’s zero. It takes the pricebook pricing. Also, you can not enter more than 1 for quantity for products that have consumption schedules. So quoting will be for just one of the things.

Ordering Consumption-based Products
To create an order for the quote we have so far, you can check the Ordered checkbox on either the Opportunity or the Quote. You may have to add these checkboxes to the Opportunity or Quote layouts. Once the order is there, CPQ will create a snapshot of your consumption schedule and attach it to the Order Line.

When you create an order, CPQ will also create a Usage Summary.

Contracting Consumption-based Orders
To contract this order, you can check the Contracted checkbox on the Order record. You may have to add this checkbox to your layout! Once the contract is there, CPQ will create a snapshot of your consumption schedule at attach it to the Subscription line.

Interlude: Object Structure
Here is the structure of the objects in Salesforce for consumption based products. Set up Product. Set up Account. New Opp. New Quote. Add Products. Order against Opp or Quote. Contract against Order.

Amending Consumption-based Contracts (see here)
There are a bunch o’ scenarios. The link above gives an example but it’s a bit hard to follow if you’re a visual learner.

  • Canceling Usage Based Products
    • How? Set quantity to zero.
  • Adding new Usage Based Products
    • How? Click Add Products, choose Usage Based Product, click Save.
  • Replacing Usage Based Products with other Usage Based Products
    • How? This is a combination of the above two scenarios.
  • Increasing quantity of Usage Based Product
    • NOPE! Salesforce says this is not supported and “must be handled by the partner”. What that means I am not sure. The short of this is: it’s not supported.

Ordering Against your Amendment! What does that even do?

  • Replacing Usage Based Products with other Usage Based Products
    • Billing will create usage summaries for the new products. But only for the remaining periods on the contract that was amended.
    • IMPORTANT: The matching IDs for these usage summaries must equal the matching ID on your replacement order product’s order product consumption schedule. Salesforce recommends managing this process with automation such as a process builder.
  • Canceling Usage Based Products
    • Billing does nothing.

Renewing Consumption-based Contracts (see here)
Renewing is pretty easy. CPQ creates a new Opp and Quote as it normally does. It then creates new Quote Line Consumption Schedules the same as what was in the original Quote Lines. These new Consumption Schedules point to the originals the same as the original Quote Lines did.

NEXT! The other side of consumption schedules! PRICING SCHEDULES.

Pricing Schedules? Nope. Discount Schedules.
In order to use pricing schedules to manage usage, you must create discount schedules to create your rates. These will be converted to a quote line related consumption schedule and associated rates.

Let’s create a new discount schedule that looks just like the consumption schedule. It has similar rate fields. Then associate the discount schedule to the product on the Product record. In the Discount Schedule field.

Now we can quote the product again! Remove it from the first quote and add it again. We didn’t remove the consumption schedule from it so we have both icons now.

Hover over the discount schedule icon.
Looks just like the consumption schedule!

Now we are seeing pricing! Because discount schedule. But we can’t change quantity because consumption schedule.

Note: You can change quote line consumption rates, order product consumption rates, and subscription consumption rates only using a custom action plugin.

Outgoing Documents with Consumption-based Products
Your quote templates don’t do much different here. You can add custom Quote Line fields you’ve created to represent usage things as Line Columns to show your users what the pricing/usage means. Maybe a custom formula field for pricing to say “Price per Hour” or “Price per Call” or whatever your unit of measure is. You can also add in the unit of measure field specifically next to the price instead of a formula field.

It would be nice if the quote template lines section content would see usage and print out the schedule. Alas, it does not. If you’d like to print out the schedule for your products, you’ll need a custom visualforce page template content for that. Some day I will write one and post it here.

One thought on “CPQ – Feature – Usage-Based Products

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.