RevOps HQ
← BACK TO BLOG
••
Implementation•RevOps Strategy & Frameworks

What Is Salesforce CPQ: Data Model, Implementation, End of Sale and Revenue Cloud

What is Salesforce CPQ: its data model, the contract records that price every amendment and renewal, what implementing it involves, and its end-of-sale status.

P

Paul Maxwell, PhD

AUTHOR

GET WEEKLY REVOPS INSIGHTS

No spam. Unsubscribe anytime.

An account of what is Salesforce CPQ that stops at configuring and pricing a quote misses the records that decide what a customer pays afterwards, and three failures follow from that gap. A price book increase is approved in October, and the January renewal quotes carry the old price because the renewal read the customer's subscription records instead of the price book. Twenty seats added mid-term are priced without the negotiated discount, because the discount was entered at quote level and quote-level discounts do not carry to amendment quotes. A move to Salesforce's newer revenue product is sized from the catalogue, and the estimate omits the subscription history that Salesforce's migration guidance requires to move complete.

This article explains what Salesforce CPQ is, how it prices a customer after the first sale, and where it stands commercially. It starts with how the package sits on Sales Cloud and its status on 27 September 2026, then covers the quote layer, the contract layer, and one sample account followed through a term, an amendment and a renewal. An object table, a comparison of staying and migrating, an audit procedure, costs, symptoms and the limits of the evidence follow.

A managed package is an application installed into a Salesforce org whose objects carry a namespace prefix, SBQQ for Salesforce CPQ. Contracting converts a primary quote into contract records when a user or process selects Contracted on the opportunity or order. A subscription record (SBQQ__Subscription__c) holds one contracted subscription product with its quantity, prices and dates. A contracted price (SBQQ__ContractedPrice__c) is an account's price for one product, applied by later quotes for that account.

Salesforce CPQ on Sales Cloud: Package, Licences and Editions

Salesforce CPQ installs on a Salesforce org, and the glossary in Salesforce's CPQ documentation requires every CPQ user to hold a standard Salesforce user licence as well. The package brings its own quote and quote line objects instead of the standard Salesforce quote, and builds on the standard Opportunity, Product2, Pricebook2, Contract, Order and Asset objects; the primary quote supplies the opportunity's products.

Installation requires email deliverability, Chatter, Orders and CRM content to be enabled first. An administrator then authorises the calculation service on the package's Pricing and Calculation tab, which ties that user to a Heroku service running asynchronous calculations, so the documentation recommends a non-human administrator. Salesforce's own comparison describes the CPQ pricing engine as "browser-side, rules-based with sequential execution" (key differences from CPQ).

The package installs on Professional Edition with extra steps, since that edition lacks profiles, field-level security and page layouts. Its successor is documented for Enterprise, Unlimited and Developer Editions only (configurator documentation), and the Revenue Cloud pricing page calls it a paid add-on bought in addition to Sales Cloud.

Salesforce CPQ End of Sale: Status on 27 September 2026

Salesforce's pages agree on the substance of the status and differ on the successor's name. A salesforce.com page dated 10 July 2026 (CPQ end of sale) states that "Salesforce is no longer selling new Salesforce CPQ licenses to new customers", that "Existing customers keep their licenses, add new users and can continue to renew", and that "Salesforce has not announced an end-of-life date for CPQ". It places CPQ in a maintenance phase with "support and critical fixes", and names Revenue Cloud Advanced as the successor.

The CPQ help page states that "there is no longer any new feature development" and recommends "exploring Agentforce Revenue Management". A knowledge article of 10 July 2026 (article 005388761) records that CPQ help "is no longer available in HTML format on Salesforce Help"; the documentation is now one PDF of 547 pages, created on 26 June 2026 according to its metadata.

The successor product's name on four Salesforce pages, read 27 September 2026
Salesforce pageCPQ end-of-sale page, salesforce.com, dated 10 July 2026Name used for the successorRevenue Cloud Advanced, part of the Revenue Cloud suite
Salesforce pageCPQ documentation page, help.salesforce.comName used for the successorAgentforce Revenue Management
Salesforce pageConfigurator and migration documentation, help.salesforce.comName used for the successorRevenue Management (formerly Revenue Cloud), licensed as Revenue Cloud Growth or Revenue Cloud Advanced
Salesforce pagePricing page, salesforce.comName used for the successorRevenue Cloud Growth and Revenue Cloud Advanced editions

The configurator documentation states that "Revenue Cloud is now Revenue Management" while its licences keep the Revenue Cloud names, and this article uses Revenue Cloud for the product. No page gives the date on which sales to new customers stopped.

Salesforce CPQ Data Model: Bundles, Product Rules, Price Rules and Quote Lines

The quote layer holds the catalogue and its rules. A bundle is a parent product with options that are themselves products; features group options under minimum and maximum counts such as "pick 3 of 5", and option constraints govern which options may be chosen together.

Product rules act on configurations and quote lines, and their four types are compared with other vendors' mechanisms in what is CPQ. Each runs on an evaluation event of Load, Edit, Save or Always, and the glossary says the number of active quote-scoped product rules affects the line editor's performance and should be limited to avoid governor limits.

Price rules write values into quote and quote line fields through conditions and actions, targeting the configurator or the calculator, where they run on initialization, before calculate, on calculate or after calculate. Where several rules target the same object, the highest Evaluation Order number runs last and takes precedence. Custom scripts in JavaScript, called by the Quote Calculator Plugin, run at fixed points in the same sequence.

Each quote line (SBQQ__QuoteLine__c) records its price in a documented order: list unit price from the price book; a contracted price, which overrides it where one exists; special price; the prorate multiplier, which is the subscription term divided by the default term; volume, option and term discounts, giving the regular unit price; the seller's additional discount, giving the customer unit price; and partner and distributor discounts, giving the net unit price.

Contracting, Subscription Records and Contracted Prices

Contracting requires a primary quote, at least one subscription product and a contract-based renewal model on the account. By default Salesforce CPQ then creates one contract for each group of subscription products sharing an end date, one subscription record per subscription product carrying its prices and dates, and assets for one-time products set for asset conversion. The original quote lines are locked, and every later change passes through an amendment or renewal quote.

With a quote's Generate Contracted Price field set to Price, contracting also creates a contracted price on the account for every product on the quote, equal to "the net unit total for this product's quote line". An account can hold only one contracted price per currency per product, and a second one makes contracting fail.

Salesforce CPQ: contracting turns the primary quote into contract records that later quotes readThree bands from left to right. The quote layer holds the price book entry, the primary quote and its quote lines, and the product and price rules that act on those lines. Selecting Contracted on the opportunity turns the primary quote into the contract layer: a contract for each group of end dates, subscription records, one per subscription product plus revisions, assets for one-time products, and contracted prices held on the account. The later quotes for the account read that layer. The amendment quote reads the active subscriptions and assets, and contracting it writes revised subscriptions back. The renewal quote takes its list price from the subscription under the Same and Uplift methods. Contracted prices apply to all later quotes: renewal, amendment and new. A dashed route shows the price book reaching the renewal quote only when the account's Renewal Pricing Method is List.QUOTE LAYERCONTRACT LAYERLATER QUOTESPrice book entryPricebook2, PricebookEntryPrimary quote and linesSBQQ__Quote__cSBQQ__QuoteLine__cProduct and price rulesact on the quote linesContractone per group of end datesSubscriptionsSBQQ__Subscription__cper product, plus revisionsAssetsone-time productsContracted pricesSBQQ__ContractedPrice__cheld on the accountRenewal quoteSame, Uplift: subscriptionList: price book entryAmendment quoteactive subscriptions, assetscontracting adds revisionsNew quote for the accountprice book entry, replacedby a contracted priceContractedContracted prices apply toall three quote types aboveList method onlySolid arrows: records a later quote reads, and the revisions an amendment writes back. Dashed: the price bookreaches a renewal line only when the account's Renewal Pricing Method is List.
Contracting turns the primary quote into contract records, and amendment, renewal and new quotes for the account read those records; the price book reaches a renewal only under the List method

Amendments and Renewals in Salesforce CPQ

An amendment creates an amendment opportunity and quote holding every active subscription and asset on the contract. The seller changes quantities or adds products, the opportunity carries only the differences, and new lines co-terminate with the contract at a prorated price. Contracting the amendment adds revised subscription records to the same contract, each linked to its original through the Revised Subscription field, so a contract accumulates records with every change. Quote-line additional discounts carry to amendment quote lines; quote-level and group-level discounts do not. The documentation advises against "pricing amendments", such as changing discounts, prices or dates on purchased lines, because they can create unexpected pricing on future quotes.

A renewal quote holds the contract's subscriptions and covered assets, starts the day after the contract ends and runs for its renewal term. The account's Renewal Pricing Method sets each renewed line's list unit price: Same takes the subscription's price, List takes the current price book entry, and Uplift adds the Renewal Uplift percentage to the subscription's price. Since Summer '19, Same and Uplift read the subscription's list price instead of the price book, and the documentation calls renewal lines built the earlier way, after a price book edit, "inaccurate". A Renewal Price on a subscription overrides the method, and a change of method applies only to renewal lines created afterwards.

Contract Records on Sample Data: One Account Through a Term and a Renewal

The account below is sample data, invented to make the arithmetic checkable; it describes no client. The settings are a Subscription Term Unit of Month, monthly prorate precision, a default term of 12 on both subscription products, and a contract-based renewal model. The price book lists a platform seat at $1,200 a year, a data connector at $6,000 a year and one-time onboarding at $5,000, and on 1 October 2026 the seat rises 10 percent to $1,320.

Sample data: quote arithmetic and the records created at each event
EventOriginal quote, 1 January 2026, 12 monthsQuote arithmetic50 seats × $1,200 less a 10% line discount = $54,000; connector $6,000; onboarding $5,000; total $65,000Records createdContract; subscriptions S-1 (50 seats) and S-2 (connector); asset A-1 (onboarding)
EventAmendment, 1 July 2026, 6 months to the contract's endQuote arithmetic20 seats × $1,200 × (6 ÷ 12) less the carried 10% = $10,800Records createdRevised subscription S-3 (20 seats) on the same contract
EventRenewal, 1 January 2027, 12 monthsQuote arithmetic70 seats and the connector, priced by the Renewal Pricing MethodRecords createdA new contract with two subscriptions once contracted

The amendment follows the documented price order: $1,200, times a prorate multiplier of 6 ÷ 12 = 0.5, gives $600, and the 10 percent line discount carried from the original line gives $540 a seat, or $10,800 for twenty. Entered as a quote-level discount, the same 10 percent would not have carried, and the twenty seats would have cost 20 × $600 = $12,000, which is $1,200 more.

S-1 and S-3 end on the same date, so with Combine Subscription Quantities selected on the contract they renew as one line of 70 seats.

Sample data: renewal list prices for the same 70 seats and one connector under each Renewal Pricing Method
MethodSameSeat list unit price$1,200, from S-1 and S-3Seats and connector at list70 × $1,200 + $6,000 = $90,000
MethodUplift, 5% on the contractSeat list unit price$1,200 × 1.05 = $1,260Seats and connector at list70 × $1,260 + $6,300 = $94,500
MethodListSeat list unit price$1,320, from the price bookSeats and connector at list70 × $1,320 + $6,000 = $98,400

The price book increase reaches this customer only under List, where it adds 70 × $120 = $8,400; under Uplift the contract's percentage replaces the price book as the source of the increase. The table compares list unit prices because that is the figure the method controls; the documentation does not state whether the line discount also carries to the renewal line, so the procedure below tests it.

Sample account: subscription records through 2026 and the renewal seat price under each Renewal Pricing MethodSample data. A timeline from January 2026 to January 2027 shows the account's records. Subscription S-1 holds 50 seats for the whole year at a net $1,080 each after a 10 percent line discount. Subscription S-3, contracted from an amendment on 1 July, revises S-1 with 20 more seats at $540 each, which is $1,200 prorated over 6 of 12 months less the carried 10 percent. Subscription S-2 holds the data connector at $6,000. Asset A-1 records one-time onboarding at $5,000, which is not renewed. The seat's price book entry is $1,200 until 30 September and $1,320 from 1 October. At renewal on 1 January 2027, S-1 and S-3 combine into one line of 70 seats. Under the Same method the seat list price is $1,200, taken from the subscriptions, or $84,000 for 70 seats. Under Uplift at 5 percent it is $1,260, or $88,200. Under List it is $1,320, taken from the price book, or $92,400. Only the List method passes the October increase to the renewal.SAMPLE ACCOUNT, 2026RENEWAL, 1 JAN 2027S-1 and S-3 renew as 70 seatsJan 2026AprJulOctJan 2027S-1 subscription50 seats, net $1,080 eachS-3 subscriptionrevises S-1, from 1 Jul20 seats, $540 eachS-2 subscriptionData connector, $6,000A-1 assetOnboarding, $5,000, one-time, not renewedSeat price book entry$1,200 a seat$1,320Same: $1,200 a seat70 × $1,200 = $84,000 at listUplift, 5%: $1,260 a seat70 × $1,260 = $88,200 at listList: $1,320 a seat70 × $1,320 = $92,400 at listSample data. Monthly proration: S-3 runs 6 of 12 months, so $1,200 × 0.5 less 10% = $540.The connector renews at $6,000 under Same and List, and $6,300 under Uplift.
Sample data: the account's subscription records over 2026, and the seat list price the renewal takes under each Renewal Pricing Method

The finding is that Salesforce CPQ prices an existing customer from records written at contracting and amendment, not from the catalogue, and those records are what a migration has to convert. After one term, one amendment and a contracted renewal, the sample account holding two subscription products has five subscription records across two contracts. Salesforce's migration guidance requires the full subscription history chain to move, so migration work grows with every amendment and renewal while the catalogue stays the same size: at the sample's ratio, 400 such accounts hold 2,000 subscription records for 800 product holdings.

Salesforce CPQ Objects and Their Revenue Management Counterparts

The counterparts below come from Salesforce's data model changes page, which also lists reports, flows and integrations built on SBQQ objects as work to rebuild; the key differences page advises treating the move "as a redesign rather than a direct migration of existing configurations".

Salesforce CPQ objects, when each is written and read, and the Revenue Management counterpart, as documented in September 2026
CPQ objectProduct option (SBQQ__ProductOption__c)Written when, and read byCatalogue setup; read by the configuratorRevenue Management counterpartProductRelatedComponent; bundle structure changes
CPQ objectPrice rule (SBQQ__PriceRule__c)Written when, and read byCatalogue setup; evaluated by the calculator or configuratorRevenue Management counterpartPricing procedures and pricing elements; execution order differs
CPQ objectQuote (SBQQ__Quote__c)Written when, and read byQuoting; the primary quote supplies opportunity productsRevenue Management counterpartQuote; header and line reconciliation may be needed
CPQ objectQuote line (SBQQ__QuoteLine__c)Written when, and read byQuoting; holds the price fields in orderRevenue Management counterpartQuote line item or transaction line; custom fields recreated by hand
CPQ objectSubscription (SBQQ__Subscription__c)Written when, and read byContracting and each contracted amendment; read by amendment and renewal quotesRevenue Management counterpartAsset lifecycle (CALM) records; full history chain required
CPQ objectContracted price (SBQQ__ContractedPrice__c)Written when, and read byContracting with Generate Contracted Price set, or by hand; read by later quotes for the accountRevenue Management counterpartContractItemPrice; remapping to accounts required

Salesforce CPQ vs Revenue Cloud: Selection Conditions for an Existing Customer

For a business not already on Salesforce CPQ the comparison is closed, because the product cannot be bought; an existing customer chooses between staying, migrating to Revenue Cloud and leaving the Salesforce quoting stack.

Staying wins on two specific axes. On the cost of change, an org whose amendments and renewals already produce expected prices keeps producing them, with no conversion of subscription history and no rebuilt reports. On edition, the package runs on Professional Edition, which the Revenue Management documentation does not list. Staying fits direct selling of one-time and subscription products, a slowly changing catalogue and a large renewal book.

Revenue Cloud wins on three. It receives Salesforce's new development, while CPQ receives support and critical fixes. Salesforce's comparison credits it with a constraint-based configurator over an attribute-based catalogue, consumption and hybrid revenue models, and asset-based amendments and renewals. It runs on standard objects exposed through APIs, where CPQ's logic sits in package objects and a browser-side calculator. Migrating fits a business adding usage pricing or new channels, or one whose price rules and scripts have become the constraint on changing a price.

Salesforce documents a gradual route: Revenue Management and CPQ can coexist in one org holding a Revenue Cloud Advanced licence, and the "Bridge" rollout on the CPQ migrations page routes new business to Revenue Cloud while existing CPQ contracts run to renewal. Throughout, Salesforce requires at least one active CPQ licence in production and in each testing sandbox, because removing every licence removes access to CPQ features and historical CPQ data.

Leaving means rebuilding the contract layer elsewhere, so the question for any alternative is whether it holds co-terminated amendments, revised subscriptions and a renewal pricing rule as records; HubSpot's quoting tools are set out in HubSpot CPQ, and the platform decision in HubSpot vs Salesforce.

Salesforce CPQ Implementation and Renewal Testing Procedure

Implementing Salesforce CPQ in 2026 means extending, repairing or preparing an existing org for migration, and all three start from the same audit, run in a sandbox refreshed from production.

  1. Count active contracts, subscription records, the subset with Revised Subscription populated, assets, and contracted prices by account, product and currency. A product with two contracted prices in one currency on one account will fail its next contracting.
  2. Record each account's Renewal Model and Renewal Pricing Method, each contract's Renewal Uplift and Preserve Bundle Structure, the subscriptions carrying a Renewal Price, and the package settings under Setup, Installed Packages, Salesforce CPQ, Configure, on the Subscriptions and Renewals tab.
  3. List contracted opportunities whose quotes carry quote-level or group-level discounts, since amendment quotes will omit them.
  4. Export price rules, active and inactive, with evaluation events and order, plus every custom script; mark rules sharing a target field and order number, and archive inactive ones.
  5. Select five contracts that together cover each Renewal Pricing Method, a contracted price, a bundle and an earlier amendment; amend each by adding quantity, then create a renewal quote from each.
  6. Verify each amendment line equals list unit price × prorate multiplier × (1 − line discount), and each renewal line's list unit price equals the subscription's list price under Same, that price × (1 + uplift) under Uplift, or the price book entry under List, unless a Renewal Price is set. Record whether the line discount reached the renewal line and whether a contracted price displaced the method, which the documentation leaves unstated; a mismatch no recorded setting explains is a customisation to list before design starts.

Costs and Returns of Staying, Migrating or Leaving

The firm publishing this article is a HubSpot Solutions Partner, and leaving the Salesforce quoting stack is work it sells, so the conditions below should be read with that interest in view.

Staying costs the existing CPQ renewal, priced by each contract and not published, and forgoes new features. It returns continuity, and its case is strongest for a large renewal book of direct-sale subscriptions and weakest where consumption models or channels are being added.

Migrating costs licences and a project. The pricing page lists Revenue Cloud Growth at $150 and Revenue Cloud Advanced at $200 per user per month, billed annually, so a sample team of 25 quoting users pays $45,000 or $60,000 a year at list. On duration Salesforce's sources differ: the end-of-sale page says "A typical migration runs 3–6 months from discovery through go-live", while the migration guidance states that there is no set time frame. The project also carries the parallel CPQ licence, rebuilt reports and converted subscription history. Its case is strongest where catalogue or revenue-model change is the constraint, and weakest for a stable catalogue with a long history, where conversion is expensive and buys little.

Leaving costs a rebuild of the contract layer and the same conversion, and returns a quoting stack chosen instead of inherited. Its case is strongest where the whole platform is being replaced, as in a Salesforce to HubSpot migration, and weakest where Salesforce stays and the work buys a second system to integrate. In every route the accepted quote feeds order, invoice and collection, whose handoffs are set out in quote to cash.

Symptoms in a Salesforce CPQ Org and Their Mechanisms

Renewal quotes ignore a price book increase. The account's Renewal Pricing Method is Same or Uplift, both of which read the subscription's list price; only List reads the price book, and a Renewal Price on a subscription overrides any method.

Seats added on an amendment cost more than the original seats. The negotiated discount was entered at quote or group level, which does not carry to amendment quotes, whereas a quote-line discount does.

Contracting fails on an account that has contracted before. Generate Contracted Price is set on the product record, so each contracting tries to create a second contracted price for the product; the documentation recommends setting it on quotes only.

An edited contracted price does not reach an open quote. Contracted prices apply when a product is added to a quote, and recalculating does not pull in the edited value.

Amendments and renewals fail on contracts loaded from a previous system. The loaded records lack CPQ data those services need, and the legacy upload guidance notes that the fault surfaces only at the first amendment or renewal.

Bundles cannot be reconfigured on an amendment quote. The contract was created without Preserve Bundle Structure, and because the value applies to records only when they are created, selecting it later on the account leaves existing contracts unchanged.

Scope, Dates and Limits of the Evidence

Every status statement, name, price and behaviour here is as documented in September 2026, read on 27 September 2026 from salesforce.com, help.salesforce.com and the CPQ documentation PDF linked from Salesforce's CPQ help page. Salesforce Billing, the Advanced Approvals package and the differences between the legacy and large-scale amendment services are out of scope.

The evidence has four limits. Help.salesforce.com returns a success status for any address and renders text by script, so each cited page was rendered and read; the CPQ developer guide refused automated retrieval, so no claim rests on the API. The documentation does not state whether a line discount carries to renewal lines, or whether a contracted price or the Renewal Pricing Method prevails there, so the procedure tests both. Salesforce's figures that "Approximately 15% of RCA customers" migrated from CPQ and that a typical migration takes 3–6 months carry no published method. The sample illustrates arithmetic only, and no source consulted measures how many subscription records real orgs hold per account.

Frequently Asked Questions

What is Salesforce CPQ: a product or a feature of Sales Cloud?

A separately licensed product: a managed package with its own quote, quote line, subscription and contracted price objects, whose users also need a standard Salesforce user licence.

Is Salesforce CPQ end of life or end of sale?

End of sale: new customers cannot buy it, existing customers can renew and add users, it receives support and critical fixes without new features, and no end-of-life date is announced.

Salesforce CPQ vs Revenue Cloud: which one does Salesforce sell to new customers?

Revenue Cloud, in Growth and Advanced editions at $150 and $200 per user per month billed annually; its documentation now calls it Revenue Management.

Is CPQ in Salesforce included in a Sales Cloud licence?

No. Salesforce CPQ has its own licence, and Salesforce's pricing page describes its successor as a paid add-on to Sales Cloud.

Does Salesforce CPQ data move to Revenue Cloud unchanged?

No. Subscriptions become asset lifecycle records with their full history, contracted prices become ContractItemPrice records, and price rules become pricing procedures.

Which records does Salesforce CPQ testing need to cover before a renewal run?

Subscriptions with and without revisions, contracted prices, each Renewal Pricing Method in use, and contracts holding bundles, since each changes what an amendment or renewal quote contains or costs.

In Summary

Salesforce CPQ is a managed package on Sales Cloud that configures and prices quotes through bundles, product rules, price rules and ordered price fields. Contracting turns the primary quote into a contract, subscription records, assets and, where set, contracted prices, and those records set later prices: amendments carry line discounts but not quote-level ones, and renewals take their list price from the subscription under Same and Uplift and from the price book only under List. In the sample, a 10 percent increase reached the renewal only under List, worth $8,400 on 70 seats, and one term, amendment and renewal left five subscription records for two products.

Salesforce has stopped selling CPQ to new customers, supports existing ones without new features, and has announced no end-of-life date; its successor appears as Revenue Cloud, Revenue Management and Agentforce Revenue Management on different pages. A decision to stay, migrate or leave rests on two sandbox measurements: the count of subscription records including revisions, which sizes any conversion, and renewal quotes for five representative contracts, which show the prices the org actually produces.

HubSpot services

Onboarding, implementation, integration, migration, administration and training, each scoped and priced before the work begins

WEEKLY PROGRAM

RevOps Office Hours

A recurring weekly RevOps operating program. Live support plus hands-on HubSpot implementation work.

$1,500/mo
Monthly Operating Program
  • →1 live Office Hours session per week
  • →4 hours of hands-on implementation work per month
  • →Hours allocated against priorities agreed at the start of each period
  • →Recurring monthly cadence