Leaving Salesforce CPQ: Prove Your Data Is Ready for Cutover
How healthy is your quote-to-cash?
12 questions on pricing, renewals, billing and reporting. Takes two minutes.
Take the assessmentTo migrate off Salesforce CPQ, reconstruct each contract’s effective commercial state, map it into the replacement platform, then reconcile a rehearsal import before transferring ownership in controlled cohorts. Before cutover, validate identities, relationships, quantities, prices, dates, unfinished deals and billing handoffs—not just imported record counts. Bunny is SaaS billing, CPQ and RevOps for B2B SaaS. (bunny.com)
Our Salesforce CPQ end-of-life guide covers product status and replacement options. This post starts after that decision: what evidence should your team require before letting the replacement system handle a live customer?
How do you migrate off Salesforce CPQ?
Use six execution steps: define ownership, map dependencies, reconstruct contract state, rehearse, reconcile and cut over by cohort. Treat the following as a proposed operating procedure, not a vendor-provided migration utility.
Define what is actually moving
Write a boundary statement before exporting data:
- Quoting: Where will new proposals, amendments and renewals be prepared?
- Customer records: Which application owns account identity and contacts?
- Subscription state: Where will accepted commercial changes become effective?
- Billing: Is it moving, or will the existing billing application remain?
- History: Which records must remain operational, and which need searchable archival access?
Name a system of record for each category. Assign ownership per migrated cohort, rather than declaring that one application owns everything immediately.
If billing stays, require proof that the new quoting handoff updates the correct existing subscription without creating a duplicate. If billing moves too, add a separate reconciliation for previously billed periods, outstanding balances and future charges.
Build a dependency map, not a column list
For each destination field, document the source object, source field, transformation, relationship key, null-handling rule and validation owner.
Start with accounts and products, then trace quotes and their lines through orders, contracts and subscriptions wherever your implementation uses them. Salesforce documents different contract-creation paths from opportunities and orders, including differences in dates and populated lookup fields. Do not assume every contract has an order reference. (help.salesforce.com)
Keep a durable crosswalk containing:
- Source organization, object and record ID.
- Destination record ID.
- Migration batch and extraction timestamp.
- Transformation version.
- Result: imported, excluded or rejected, with a reason.
Where several source records become one destination record, preserve every contributing source ID. Require repeat imports to update mapped records rather than silently create new ones.
Inventory behavior alongside data. Salesforce’s renewal calculations can involve price rules and a Quote Calculator Plugin. For every relevant rule, record whether it will be rebuilt, replaced or retired—and the expected commercial result. (help.salesforce.com)
What data should you validate before a Salesforce CPQ migration cutover?
Validate customer identity, record relationships, product mappings, effective quantities, negotiated pricing, currencies, contract dates, future changes and unfinished transactions. If billing is in scope, also reconcile billed-through dates, balances and the next charge; if it is not, validate the handoff to the retained billing system.
Build a validation sheet with one row per check, showing the expected result, actual result, evidence, owner and disposition.
Identity and relationship integrity
Require every migrated contract to resolve to the intended customer and every commercial line to resolve to its parent and product.
Check buying entities separately from parent accounts. Flag duplicate external IDs, missing references and records attached through name matching alone. Do not accept an account-level total as proof that the lines belong to the right contract.
Preserve bundle and group relationships where they affect behavior. Salesforce’s CPQ quote-line model explicitly represents parent-item and parent-group relationships. (developer.salesforce.com)
Effective quantities—not a sum of quote quantities
Salesforce’s amendment workflow asks the seller for the desired resulting quantity, while the resulting subscription record can represent only the increase. That makes indiscriminate summation of exported quote quantities unsafe. (trailhead.salesforce.com)
Consider this hypothetical migration fixture:
- An original subscription contains 40 seats.
- An accepted amendment changes the desired total to 55.
- The resulting incremental subscription adds 15 seats.
- An unsigned proposal requests 70 seats.
For a cutover after the accepted amendment takes effect, the expected active quantity is 55, not 95 or 70. Keep the unsigned proposal as pipeline work, not an active commitment.
Trace accepted changes and effective dates. Include reductions, replacements and cancellations in that reconstruction rather than assuming every later record adds quantity.
Prices, dates and future commitments
Compare each line’s currency, negotiated rate, quantity basis, discount duration and resulting charge. Specify whether amounts represent a unit rate, monthly rate, annual rate or full-term total.
Validate proration conventions explicitly. Compare effective service dates, renewal boundaries and scheduled future price or quantity changes—not just the current charge.
For contracts with segmented pricing, preserve segment-level dates and quantities. Salesforce documents multidimensional quoting with separate segments and amendment behavior tied to their dates. Flattening those records should therefore require proof that the destination preserves the future schedule. (trailhead.salesforce.com)
Use contract-level checks before aggregate totals. Require exact agreement on identity, currency and effective dates; document any accepted rounding tolerance in advance. Do not let an overstatement on one customer cancel out an understatement on another.
Unfinished deals and downstream status
Give every open quote a deliberate disposition:
- Finish it in the old system.
- Rebuild and reapprove it in the new system.
- Withdraw or expire it through the appropriate process.
Do not treat migration as approval. Preserve the accepted document and its connection to the resulting commercial record.
For each billing handoff, record the last processed transaction and expected next action. If billing moves, obtain billed-through information from the billing application rather than inferring it from a quote’s start date.
Rehearse with a frozen evidence pack
Choose a test population by risk: amended contracts, unusual discounts, multiple currencies, future changes and transactions awaiting signature. Then run automated integrity and reconciliation checks across the full in-scope population.
For each rehearsal, retain:
- The source extract and its timestamp.
- The mapping version and import logs.
- Source-to-target reconciliation results.
- Supporting commercial documents.
- An exception register with owners and resolutions.
Have sales operations approve unfinished-deal handling, finance approve commercial and billing reconciliation, and the integration owner approve routing. Reject unexplained differences rather than allowing a generally successful import to hide them.
Transfer ownership without creating two live writers
Start with a bounded cohort—such as newly created opportunities—before moving existing contracts. Define the rule precisely enough that users and integrations make the same routing decision.
At each cohort cutover:
- Freeze relevant source changes and drain queued integration work.
- Capture changes since the rehearsal extract, including deletions and status changes.
- Import that final change set and rerun reconciliation.
- Switch write permissions and integration routing.
- Check the first live transactions before expanding the cohort.
Keep customer-facing sends and billing actions disabled during rehearsal. Name the system responsible for a signature arriving during the freeze, and log how that accepted deal reaches its destination.
Define rollback before launch. Before external actions occur, restoring routing may be sufficient. After customer documents or charges have been issued, require an event-by-event recovery plan; do not assume restoring a database reverses those actions.
Make the go/no-go decision concrete
Our recommended cutover gate is: no unresolved identity or relationship failures, no unexplained commercial differences, and one named owner for every unfinished transaction.
Bunny CPQ for Salesforce supports starting quotes from Salesforce opportunities and syncing deal amount, term and status back. Evaluate that connection using your mapped records and reconciliation evidence, not merely a successful connection test. (bunny.com)
If the replacement cannot reproduce a critical workflow, keeping that cohort on Salesforce CPQ is the better operational choice until the gap is resolved.
The migration is ready when you can explain what every customer has bought, what changes next and which system is authorized to act—not when the import progress bar reaches 100%.
Quoting built for subscription businesses
Bunny CPQ understands the full subscription lifecycle — new deals, upsells, renewals and ramps — not just the first signature.