Resources /
Blog

How to Test a Salesforce CPQ Seeded Sandbox Migration

Submit your details to get a book

14
Min Read
Resources /
Blog

How to Test a Salesforce CPQ Seeded Sandbox Migration

Download

Submit your details to get a book

14
Min Read
How to Test a Salesforce CPQ Seeded Sandbox Migration
How to Test a Salesforce CPQ Seeded Sandbox Migration

To test a Salesforce CPQ to Revenue Cloud (formerly Agentforce Revenue Management) migration, use a CPQ seeded sandbox that mirrors your production environment closely: production-like test data volumes, record relationships preserved, and PII masked.

An empty Developer sandbox can’t validate the migration on its own. The order goes like this. Use sandbox seeding to load data into a production-like Salesforce sandbox, migrate or rebuild the CPQ configuration that Revenue Cloud needs, check quoting and pricing, and then rehearse the cutover.

A real test needs four things. The first is a production-like sandbox, not an empty one, with real or production-representative data volumes and intact relationships.

The second is masked PII and strong data security.

Third, you need a repeatable loop: seed data, migrate or rebuild the required configuration, validate, fix, reseed.

Last comes a rehearsed cutover with a rollback path.

This page is only about testing the Salesforce CPQ-to-Revenue Cloud cutover. The general process of populating a Salesforce sandbox with seed data for development and testing has its own guide.

Urgency shapes the plan, so it’s worth being clear about it. Salesforce CPQ is now end of sale, which isn’t the same as shut down. Existing Salesforce CPQ customers can keep using the product, add users under the applicable terms, renew licenses and get support.

Salesforce hasn’t announced an end-of-life date for CPQ, either. The real pressure sits in the cutover rather than some sudden cliff.

Why you cannot test a CPQ migration on an empty sandbox

Salesforce CPQ keeps much of its behavior in data rather than metadata. Price rules, product options, discount schedules, configuration attributes and other CPQ configuration elements are records, often tied together through deep parent-child dependencies.

A quote line points back to a product. That product connects to a price book entry, and CPQ pricing can also hang on price rules, conditions, custom fields, configuration records and other related data.

So moving to Revenue Cloud means transferring, transforming or rebuilding the relevant configuration-as-data and logic. It isn’t a matter of deploying a small bundle of metadata. For more on the transfer itself, see migrating your CPQ data.

A newly created Developer sandbox gets a copy of production configuration and metadata, but your production records don’t come with it. An empty Developer sandbox can’t expose the failures that actually break a go-live:

  • Broken lookups and orphaned records. These only appear when related records move in the wrong order, fail to sync or get dropped.
  • Pricing that recalculates differently in realistic scenarios, because a rule that looks fine against five products may behave differently across a much larger product catalog and CPQ data set.
  • Behavior at realistic record counts, which a 20-account sample will never show you.

A raw Full Copy has the opposite problem. A Full sandbox contains production data, so it can expose many of those failures.

But copying real customer data into a lower environment can create a data security and compliance problem unless the sensitive data is properly protected. The 29-day refresh interval for a Full sandbox also limits how quickly the team can repeat full refreshes.

For many migration scenarios, the middle path is a seeded sandbox with production-like test data, preserved relationships and masked sensitive data.

One distinction matters here. A native Partial Copy doesn’t guarantee every ordinary lookup relationship in the production data it samples. Salesforce guarantees relationship sampling for Master-Detail and required lookup relationships, but not for every standard lookup.

When relationship integrity is essential to CPQ testing, the seeding process has to select and load the related records deliberately.

What "production-like" means for migration testing

“Production-like” carries a lot of weight, so it’s worth defining. For a CPQ-to-Revenue Cloud test, a production-like Salesforce sandbox has four properties:

  • Realistic data volumes. You need enough records to reproduce how pricing and quoting behave across representative production scenarios.
  • Referential integrity across the test data, meaning no broken lookups, no orphaned records and no unnecessary manual remapping.
  • The complex application layers. That’s the Salesforce CPQ and Revenue Cloud objects plus the data and systems they touch: products, price books, orders, contracts, approvals, custom fields, integrations and relevant quote templates.
  • Masked PII and other sensitive data, obfuscated as required.

Sandbox type sets the ceiling on how much data you get and how often a Salesforce sandbox refresh can happen. Seeding is how you fill that environment with the specific production-like test data you need. Here’s how each sandbox type scores for CPQ-to-Revenue Cloud migration testing:

Sandbox type What it contains Storage / refresh Fit for CPQ-to-Revenue Cloud migration testing
Developer Metadata and configuration copied from the source org; no production records copied automatically 200 MB data storage; refresh daily LimitedPoor as an empty migration test environment. Useful for development, metadata work, and isolated changes, but realistic CPQ test data must be loaded separately.
Developer Pro Metadata and configuration copied from the source org; no production records copied automatically 1 GB data storage; refresh daily LimitedMore capacity for development, integration work, training, or targeted seeded data sets, but still no production records copied automatically.
Partial Copy Metadata plus a sample of production data selected through a sandbox template, up to 10,000 records per object 5 GB data storage; refresh every 5 days GoodGood for functional migration testing and iterative UAT. Native sampling does not guarantee every ordinary lookup relationship, so controlled seeding can be valuable when a referentially intact CPQ data set is required.
Full Metadata plus all production data Production-scale data copy; refresh every 29 days Highest fidelityThe closest Salesforce sandbox to production, suited to staging, performance, and load testing. Sensitive data must still be protected appropriately.
Seeded sandbox (any type)
Approach
Any supported Salesforce sandbox type, populated or repopulated with selected production-like data through a seeding process Subject to the underlying sandbox type's storage limits; a seeding tool can repopulate data without a full Salesforce sandbox refresh StrongA strong fit for repeatable migration validation when the team needs to define a specific test data set, preserve its relationships, mask sensitive information, and reseed it repeatedly.

The practical takeaway is that a seeded Partial Copy makes a useful default for many functional Salesforce CPQ-to-Revenue Cloud migration tests. It has room for sizable production-like subsets and a five-day refresh interval, which gives the team more space to iterate than a Full sandbox does.

With a sandbox seeding tool you can also reseed data between full Salesforce sandbox refreshes, within the storage and technical limits of the target sandbox.

Use a Full sandbox when the test truly depends on every production record, or when you need Salesforce-supported performance, load or final staging tests.

Flosum Data Migrator is designed to populate Salesforce sandboxes with masked, production-like data while preserving parent-child and cross-object relationships. Teams define a data set once and reseed sandbox environments on demand.

How to mask PII in a migration test sandbox while staying compliant

For a regulated team, this question draws the boundary for everything else. Organizations working under HIPAA, GxP, 21 CFR Part 11, DORA, SOC 2 controls or other security and regulatory frameworks have to decide how sensitive production data can be used in non-production systems, based on their policies, controls, contracts and applicable requirements.

Small synthetic or sample data sets can be safer, but they often aren’t enough to validate complex CPQ scenarios. Masked, production-like test data lets the team get useful test coverage and still protect sensitive data.

Salesforce provides data-masking capabilities for sandbox environments. Depending on which Salesforce feature you use, masking can replace values with random or similarly mapped data, apply a defined pattern or remove sensitive values.

For migration testing, though, masking the visible values is only one part of the problem. The data also has to stay functionally useful, so pricing, quoting, integrations and other CRM processes still behave as expected.

If a masking or data-loading process breaks the keys and relationships that connect a quote line to its product, price book, account, contract or related CPQ configuration, the migration test can fail for reasons that have nothing to do with the migration.

That’s the job of the test-data process. It has to handle production-like volumes within the selected sandbox’s limits, maintain referential integrity, protect sensitive data and make seeding repeatable.

The test-and-cutover loop, step by step

Testing a Salesforce CPQ migration isn’t a one-time pass. You run the process, see what breaks, fix it and run it again until the results become predictable. That’s the loop.

Seed a production-like sandbox

Populate the selected Salesforce sandbox with the production-like test data the migration needs, with relationships preserved and PII and other sensitive data masked appropriately. The rest of the test runs in this environment, so set the sandbox up correctly from the start.

Automated sandbox seeding is usually the more practical way to make this repeatable. Manual seeding is slow and prone to errors, and it’s hard to maintain when dozens of related objects have to load in the correct dependency order.

Flosum also provides relationship-aware seeding templates for complex Salesforce application layers, including CPQ and Revenue Cloud. What a defined seeding template buys the team is repeatability.

Migrate or rebuild the CPQ configuration for the target

Move, transform or rebuild the relevant CPQ configuration to match the target Revenue Cloud design. CPQ price rules, product options, discount schedules, configuration attributes, custom fields and related records don’t all follow the same migration path. Some of the underlying data can be moved or transformed. Other logic has to be redesigned in the corresponding Revenue Cloud configuration.

Wherever it’s practical, use the same tools, processes, mappings and sequence you’ve planned for production. The point is to rehearse the actual migration, not to take a shortcut that won’t exist during go-live.

Flosum Data Migrator can move relational Salesforce data between orgs while preserving its dependencies. In a CPQ-to-Revenue Cloud project, that makes it part of the data-migration and test-seeding layer. It doesn’t automatically translate CPQ pricing rules, bundle logic or other commercial behavior into the Revenue Cloud model.

Validate

This is what the whole exercise is for. Run comparable quotes in Salesforce CPQ and Revenue Cloud with the same commercial inputs, then compare the pricing, totals, products, discounts and expected outcomes line by line.

The technical implementation doesn’t have to be identical, because the two products use different data and rules models. The commercial result, though, should be understood and validated wherever equivalent behavior is required.

Test more than the happy path. Use the scenarios that create real complexity: different products, bundles, quantities, discounts, amendments, renewals, approvals, customer types and any custom pricing behavior in the Salesforce org.

Make sure approval workflows still trigger where required, integrations keep exchanging the correct data, connected systems receive the expected values and reporting still ties out. Confirm that no records were orphaned and no relationships broke.

If the numbers differ, the cause could be a data issue, a configuration-translation issue, or a functional difference (intended or not) between the Salesforce CPQ configuration and the Revenue Cloud configuration. Finding it here costs far less than finding it after a cutover.

Fix, reseed, and repeat

Fix what validation exposed, reseed a clean sandbox and run the process again. Salesforce doesn’t mandate a number of migration-test cycles. One practical project target is two to four full end-to-end cycles. The first usually uncovers problems, the second checks whether the fixes hold, and later cycles show whether the process is stable and repeatable.

If later cycles are still turning up new material failures, the team should question whether it’s ready to cut over. A green result only has value if you can reproduce it. What keeps repeated testing affordable is a fast data refresh and seeding process.

That’s why a seeded Partial Copy is attractive for many functional migration scenarios. The team can keep reseeding the required data set without waiting for a new Full sandbox refresh every time.

Rehearse the production cutover and keep a rollback path

Once the loop is clean, rehearse the cutover from start to finish: sequence, timing, freeze window, migration steps, deployment steps, validation checklist, dependencies and the go/no-go decision. Production should only be touched after a clean, repeatable dry run, with a documented rollback or recovery path in place in case something goes wrong on the day.

Be precise about what rollback means. Rolling back a metadata deployment, restoring data and reversing migrated transactional or configuration records aren’t necessarily the same process. Define the recovery method for each part of the cutover rather than assuming one rollback button reverses everything.

Where Flosum DevOps is used for Salesforce metadata deployment, Flosum provides rollback capabilities for deployment changes.

The migration team should still define, separately, how CPQ data and other migrated records will be restored, reversed or otherwise recovered if validation fails.

Version and log every seeding and migration job. Flosum Data Migrator records migration and seeding activity for auditability, and that history gives you useful evidence of what data moved and when each process ran.

Common mistakes that make migration tests lie to you

Most weak migration tests fail in the same few ways. Watch for these:

  • Testing on config-only or tiny sample data and calling it validated. A pass on 20 accounts tells you very little about production behavior.
  • Loading unmasked production data, or masking badly. Unmasked sensitive data is a data security and compliance risk. Masking that destroys the data your relationships or business behavior depend on is a test-signal risk. You have to solve both.
  • Treating sandbox refresh and data seeding as the same thing. A refresh recreates or updates the Salesforce sandbox from its source under Salesforce’s refresh rules. Seeding populates an existing environment with the data set you define, and a seeding tool makes test-data refreshes more flexible between Salesforce sandbox refreshes.
  • Running a single test pass. One clean run doesn’t establish a repeatable process, so iterate until the migration behaves consistently.
  • Letting environments fall out of sync. If the CPQ configuration changes in production while the migration sandbox goes stale, the team may end up validating the wrong version of the solution.
  • No rollback plan for the real cutover. Hope isn’t a cutover strategy. Decide in advance how you’ll reverse or recover from a bad go-live, and rehearse that as well.

Test the migration before you commit to it

There’s no need to guess if your Salesforce CPQ-to-Revenue Cloud cutover will hold. Test it first with masked, production-like data, repeat the loop until it runs clean, and cut over only once the team has a documented recovery path.

Flosum is a destination-neutral migration-safety layer: it doesn’t configure quotes, and it doesn’t replace Salesforce CPQ or Revenue Cloud. Its job is to support the controlled movement and seeding of Salesforce data, so the move to whichever destination you’ve chosen can be tested again and again.

FAQs

Can you test a Salesforce CPQ migration in a sandbox?
Yes, you should test before any production cutover. Run the migration in a seeded Salesforce sandbox that represents the important production data, relationships, CPQ configuration, and business scenarios while masking sensitive data as required. An empty Developer sandbox will not show how pricing rules and quotes behave against production-like data.
What is a CPQ seeded sandbox?
A CPQ seeded sandbox is a Salesforce sandbox populated with the Salesforce CPQ data required for realistic testing. Sandbox seeding can copy selected records from a production org or another source environment while preserving the relationships between products, price books, quotes, quote lines, contracts, and other relevant records when the seeding process is designed to include those dependencies. Where sensitive production data is involved, masking should form part of the data security process.
What kind of sandbox is required to test a CPQ-to-Revenue Cloud migration?
There is no single Salesforce sandbox type required for every migration test. A seeded Partial Copy is often useful for repeated functional testing and UAT. A Full sandbox is appropriate when testing depends on all production data or when formal performance, load, or final staging validation is required. Developer and Developer Pro sandboxes copy configuration and metadata but do not automatically copy production records, so additional seed data must be loaded before they can represent production scenarios. They can still be useful for targeted migration tests when their storage limits are sufficient.
Do you need a Full sandbox for a CPQ migration?
Not necessarily. For many functional migration tests, a seeded Partial Copy sandbox can provide a valuable production-like data set while offering a shorter Salesforce refresh interval. When validation must cover every production record, or when the team is conducting formal load and performance testing, a Full sandbox is the appropriate Salesforce sandbox type.
What is the difference between sandbox refresh and sandbox seeding?
A sandbox refresh recreates or refreshes the sandbox from its source Salesforce org and is governed by the refresh interval for that sandbox type. Developer and Developer Pro can be refreshed daily, Partial Copy every five days, and Full every 29 days. Sandbox seeding is the process of populating an existing sandbox with a defined set of records. With the right seeding tool, the team can reseed test data between Salesforce sandbox refreshes without recreating the entire sandbox each time.
How do you get production-like data into a Salesforce sandbox without exposing PII?
Use sandbox seeding and masking controls that protect sensitive fields while preserving the relationships and business characteristics required for testing. Salesforce provides masking capabilities for sandbox data, and third-party tools can also combine seeding and masking. The important requirement for CPQ testing is that the resulting data set should preserve the relationships and values needed for the scenarios being tested. Otherwise, the results may not represent how the production system behaves.
Can a Developer or Developer Pro sandbox be used for Salesforce CPQ testing?
Yes, for some development and testing purposes. Developers and admins can use these environments for metadata work, isolated configuration, proof-of-concept development, targeted integrations, and selected training exercises. However, because production records are not copied into these sandbox types automatically, they need additional test or seed data before they can validate production-like CPQ migration scenarios. A seeded Developer or Developer Pro sandbox can therefore be useful when the required test data fits within its storage and functional limits.
Why does referential integrity matter when seeding CPQ data?
Salesforce CPQ records exist in a connected data model. Products, price book entries, quote lines, configuration attributes, price rules, contracts, and other records depend on relationships. If seeding breaks those relationships, CPQ may return errors or incorrect behavior even though the migration logic itself is correct. Maintaining those relationships minimizes false failures and makes the test more representative of production.
Can seeded data also be used for training users?
Yes, provided the sandbox and data-security controls are appropriate. A masked, production-like data set can be useful for training users because it allows them to practice realistic Salesforce and CPQ scenarios without working directly in the production environment. Training should normally follow core migration validation so users are practicing against a stable configuration rather than a solution that is still changing.
How many test cycles should you run before a migration go-live?
Salesforce does not prescribe a universal number of CPQ migration-test cycles. A practical project plan is two to four full end-to-end cycles, depending on migration complexity and what each cycle uncovers. The first should expose problems, while subsequent cycles confirm that fixes hold and that the process can be repeated consistently. If new material bugs continue to appear late in testing, that is a signal to keep testing rather than push the migration into production. Move to production only after a clean, repeatable dry run, with a clearly defined recovery or rollback path in place.

Request a demo to see Flosum seed a production-like, masked sandbox for a CPQ-to-Revenue Cloud migration.

Table Of Contents
Author
Stay Up-to-Date
Get flosum.com news in your inbox.

Thank you for subscribing

Ship Salesforce changes faster
Teams on Flosum report 40% higher development velocity and 75%
fewer merge conflicts.
Free to start  |  No credit card required