Note that sample data seeding is not the same as using Salto to treat CPQ data as metadata or to align CPQ data across environments; that is a different use case with its own set of implications. If that's what you are looking for, read this help article.
We consider CPQ data seeding to have the following properties:
The source of the data is another Salesforce org. Salto does not support uploading data from CSV or JSON files. If that’s your use case, we recommend the SFDX Data Move Utility.
The data is being seeded just for testing and development; you don’t intend to sync this data back to its source environment after making changes to it in other environments. If that’s what you want to do, read this help article.
It can be a partial set of data, i.e. only certain products and their configuration attributes.
Now that we are on the same page as to what CPQ data seeding is, let’s see how to do it in Salto.
Use a fresh sandbox
If possible, we recommend you use a sandbox that has been recently refreshed or one where you have high confidence that the product and CPQ metadata is somewhat aligned to Production.
Using an old sandbox may result in errors. For example, you may try to deploy Product records that have a value on a field called
Created_In_Production__c. If this field doesn't exist in the sandbox you want to seed, the initial deployment will fail.
You can, of course, include the field in your deployment since Salto supports the deployment of CPQ data and metadata at the same time, but this is only going to make the seeding a bit more complex.
For that reason, we highly recommend you use a fresh sandbox.
Enable CPQ in your Salto environments
To fetch your CPQ data with Salto - check 'Include CPQ' when connecting your Salesforce CPQ Org to your new Salto Environment:
Contact support if you wish to customize your Salesforce CPQ connection, or enable it to an existing environment that is already connected to a Salesforce Org without CPQ.
Use deployments to seed data
Once your environments are configured, simply create a deployment from Production to the destination sandbox:
Once the deployment has been created, use the “Type” column filter only to see records of the CPQ package. You can do this by typing SBQQ in the filter text box.
Then just select “(Select All)”—this will select all the SBQQ objects and make them available for selection:
Now use the “Changes” column filter to include only Additions. This will only show the records that don’t exist in the target environment, which are likely the ones we want to seed into it. We are not concerned about Modifications and Removals in this scenario:
Once these 2 filters are in place, the selection table will only show CPQ data that does not exist in the target environment. Now you just have to select the ones you want to deploy:
Beware of dependencies
As you select records to deploy, Salto will let you know if you need to include dependent data. There are 2 scenarios:
You may select a record that has child records. You don’t need to include them in your deployment, but most of the time, you will want to; this will make sure sample data is as close to its source as possible.
Salto will highlight these records as additional dependencies:
In the screenshot above, the Discount Schedule has child records of the Discount Tier object.
You may select a record that has a relationship to another record. In this case, Salto will let you know that the other record must be included in your deployment:
In the screenshot above, the Configuration Attribute record is related to a Product Feature record, so the Product Feature must be included if you want to deploy the Configuration Attribute.