Salesforce CPQ Data Deployments Tutorial
Salesforce CPQ data deployment entails the seamless transfer of CPQ object's data from one Salesforce CPQ Org to one or multiple other Salesforce CPQ Orgs. Following meticulous testing and approval of data modifications within a designated Sandbox or Development Org, these changes can be seamlessly transitioned to Test and User Acceptance Testing (UAT) Sandboxes, and finally, into the production environment, leveraging the powerful automation of FlexDeploy. This entire process is orchestrated with meticulous attention to detail, including obtaining necessary approvals and adhering to stringent quality gate criteria.
FlexDeploy facilitates seamless data deployment for both Cross-Reference and Self-Reference CPQ objects.
With FlexDeploy, you can bundle numerous data files (objects) into a single package, enabling the migration of data from multiple, distinct objects in one go, simplifying the process of moving data from one organization to another.
Flexibility to establish a specific sequence for deploying these objects data, ensuring precise control over their deployment order.
Creating sets of Data File Types, often referred to as templates, allows you to migrate data as a group, preserving and maintaining the hierarchical (parent-child) relationships between records.
The Project Setup in FlexDeploy is the same for code and data deployments. Create a new project for Salesforce or use an existing Salesforce project to start migrating your Salesforce CPQ data. Check our Salesforce Tutorial if you did not create a Salesforce project to start with.
Before diving into the data deployment process for CPQ objects, it's crucial to establish the required configurations in both Salesforce and FlexDeploy. This comprehensive setup process lays the foundation for a successful data deployment. Refer our Salesforce Data Deployments Tutorial for comprehensive information on data deployment, including details about setting up data deployment using FlexDeploy, creating packages and data files, understanding the concept of External IDs, and more.
Before you get started, you should be familiar with the Salesforce CPQ Objects and its Relationships, Object Dependencies, External IDs, Security Settings, etc.
1. Data Deployment - Bidirectional Lookup Relationship (⇌)
A Bidirectional Lookup Relationship (Cross-Reference) in Salesforce represents a special type of relationship between two objects where each object can reference the other using a Lookup field. This means that two objects are related to each other in a bidirectional or two-way manner. This Cross-Reference object's data deployment ensures that complex relationships and dependencies between CPQ objects, such as products, price books, and quotes, are maintained accurately in different environments.
Steps to Deploy Cross-Reference Object’s Data:
Create a Package in FlexDeploy as you would normally.
Make a list of all the objects (having cross-reference) data files you would like to migrate. e.g., Opportunity ⇌ Quote
a. Opportunity have a 'lookup' or reference to Quote, and conversely, Quote have a 'lookup' or reference with its parent Opportunity. This establishes a bidirectional or two-way linkage between these two objects.Use Create button to Create a new data object template file to migrate (build and deploy). Start creating with the top-level object data file which is Opportunity in this case and repeat the same step for Quote. You can adjust sequencing if got created in the wrong order.
Create Opportunity Object Data File:
a. Select Operation type - Insert (for creating records)
b. Select the Object - Opportunity
c. Select all the columns (fields) you would like to migrate, except SBQQ__Quote__c [Reference] field
d. Click SaveRepeat the same steps to create Quote Object Data File. In this step, select all the all the columns (fields) you would like to migrate including Opportunity [Reference] field.
Â
Now, create another Opportunity Object Data File:
In this case, we will update the SBQQ__Quote__c reference field
a. Select Operation type - Update (for updating records)
b. Select the Object - Opportunity
c. Select only SBQQ__Quote__c [Reference] and External ID fields (columns)
d. Select the External ID, ensuring it matches the configuration in the project properties and is also selected in the Column Names selection in #c.
e. Click Save
7. All set! Your package is ready for build and deployment whenever necessary. You can repeat the build to get fresh data updates for the same set of files and fields.
2. Data Deployment - Self Lookup Relationship (↺)
A Self Lookup Relationship (Self-Reference) in Salesforce refers to a relationship type where records within the same Salesforce object can be linked or related to one another. Unlike traditional relationships in Salesforce, which connect records in one object to records in another object, Self Lookup Relationships allow records within the same object to establish connections. This can be particularly useful for modeling hierarchical or self-referential data structures.
Steps to Deploy Self-Reference Object’s Data:
Create a Package in FlexDeploy as you would normally.
List out all the objects (having self-reference) data files you would like to migrate. e.g., Contact ↺
a. Contact object is linked to itself through a 'lookup' or self-reference, creating a self-referential connection within the Contact object.Use Create button to Create a new data object template file to migrate (build and deploy).
Create Contact Object Data File:
a. Select Operation type - Insert (for creating records)
b. Select the Object - Contact
c. Select all the columns (fields) you would like to migrate, include Contact [Reference] field as well
d. Select the External ID, ensuring it matches the configuration in the project properties
e. Add Retry Count, any number (automatically retries failed records up to a specified number of times until successful deployment)
f. Click Save
Â
Â
All set! Your package is ready for build and deployment whenever necessary. You can repeat the build to get fresh data updates.
3. Bulk Data Deployment with FlexDeploy in a Single Package
Deploying multiple data objects, including those with Cross and Self-reference relationships, in a single package streamlines your data migration process, saving time and reducing the risk of errors associated with multiple, manual deployments. Consolidating multiple data objects into a single package simplifies the deployment process. You can manage all your data migration tasks from one central point, enhancing overall project organization.
Here are the steps you need to follow:
To initiate a CPQ bulk data deployment, the first step involves identifying the top-level objects within your CPQ system. These top-level objects are essentially those entities that have no dependencies on any other objects; they stand independently within the system. e.g., Account, Price Book, Discount Category, etc.
Once the top-level objects are identified, the next crucial task is to categorize the remaining objects into different levels. Objects dependent on top-level entities will be categorized as second-level objects, and this categorization continues down the hierarchy as necessary.
The concept of "levels" in this context is crucial for structuring the data deployment process. It ensures that objects are organized based on their dependencies, thus preventing any deployment-related issues.
Once you have categorized your CPQ objects into these levels, you can establish a clear order of sequence for deployment. This sequence will dictate how the data files are arranged within your deployment package.
This sequential arrangement of data files is a key factor in the successful execution of the deployment process. It ensures that dependencies are resolved in the correct order during deployment, preventing any potential data inconsistencies.
It's important to note that the same categorization process should be applied to objects with cross-references or self-referential relationships. This consistency in approach ensures that these complex relationships are also handled systematically.
By structuring your data files based on these levels and their corresponding order of sequence, you can package them together efficiently. This organized approach streamlines the deployment process, reducing the risk of data loss or errors.
After successful deployment of data files, you will be able to view the deployment results in the "Deploy Execution - Reports" section.
Note - The data deployment process will terminate/fail, if any data file in the sequence from the package encounters errors, and no further deployment attempts will be made for subsequent files.
- style