CPQ parallel run: two CPQs in one org for one quote cycle before cutover
A parallel run is one quote cycle — usually one to two weeks — during which reps create real quotes in the new CPQ while the old CPQ verifies them. It works because managed packages have separate namespaces and can share standard Product and Price Book records in one org. Assign each opportunity to exactly one creating CPQ, compare totals line by line, and cut over only when the comparison passes.
Why two CPQs can share an org
Salesforce CPQ (SBQQ), Conga CPQ (Apttus_*) and Kugamon (kugo2p, kuga_sub) are managed packages with distinct namespaces; Revenue Cloud Advanced runs on core objects. None of them conflict at the object level, and all but Conga price from the same standard Product2 and PricebookEntry records. The only thing to control is which package creates the quote on a given opportunity.
The procedure
- Convert the catalog first
Products, price books, tiers and contracted prices must exist in the new CPQ before any quote is created. Verify list prices match on a sample of 20 SKUs.
- Assign opportunities
Every open opportunity gets one creating CPQ, recorded in a field. New opportunities default to the new CPQ. Nothing is quoted twice as a quote of record.
- Create in the new, verify in the old
For each new quote, an admin or the rep re-creates it in the old CPQ and records four comparisons: header totals, line-by-line net prices, the generated document, and any downstream records (orders, contracts, subscriptions).
- Log every difference
A shared sheet: quote, field, old value, new value, cause, fix. Most differences are rounding, a rule with a different edge case, or a template field.
- Fix and re-verify
Fix the cause, not the quote. Re-verify the affected quotes and any others that use the same rule.
- Pass criteria
Zero unexplained differences in totals across the cycle; every document reviewed by sales ops; every downstream record created correctly. Then set the cutover date.
- Cutover day
Remove create permission on the old CPQ; leave read. Redirect any integration still pointing at old quote objects. Announce the date a week ahead.
What to compare
| Comparison | How | Tolerance |
|---|---|---|
| Header totals | Net total, discount total, term, start and end dates. | Exact. |
| Line items | Quantity, list, discount, net per line; subscription term and proration. | Exact, after rounding rule is agreed. |
| Documents | Generated PDF against the old template: fields, clauses, terms, signatures block. | Sales ops and legal sign-off. |
| Downstream records | Order, contract, subscription or asset created from the quote. | Same records, same dates and quantities. |
Length and staffing
One full quote cycle — long enough that every rep has created at least one quote and one renewal or amendment has passed through. For most teams that is one to two weeks. It needs one admin at roughly half time for verification and one sales-ops owner for the difference log; see the team page.
Yes. Managed packages have separate namespaces and can share standard Product and Price Book records. Revenue Cloud Advanced runs on core objects alongside them. Assign each opportunity to one creating CPQ so nothing is quoted twice.
One full quote cycle — usually one to two weeks — long enough that every rep has created a quote and at least one renewal or amendment has passed through.
Log the difference with its cause, fix the cause (a rule, a rounding setting, a template field), and re-verify every quote that uses the same rule. Do not cut over with unexplained differences.
Not immediately. Remove create permission and keep read access for 30–90 days so history is available. Uninstall once reporting and archives are confirmed; for Salesforce CPQ, note that uninstalling removes SBQQ__ objects and their data.
See your migration plan
Published timelines by source platform, a fixed implementation fee, and a calculator that labels every estimate.