Loading

Legacy data upload with Renewals and Amendments in Salesforce CPQ

Дата публикации: Sep 24, 2025
Описание
The information contained in this article serves as a supplemental document to Legacy Data Upload for Salesforce CPQ. The primary article details the basic requirements and common considerations when importing legacy data. Use the following queries to ensure your import data is accurate and properly formatted:

NOTES: 

  • For Bundles, the Root ID field on Subscriptions (SBQQ__RootID__c) needs to be populated with the 18 Digit SFID of the Bundle Parent's Subscription or Asset Record. If this is not populated correctly, bundle structure will be lost or renewals/amendments will fail during their creation.
  • Amendments pull in the current List Price.  In order to retain a customer's existing discount on an Amendment Quote, the Additional Discount (% or Amt.) is pulled-in from the Subscription, then applied.  Therefore, expect product pricing on the Amendment Quote to reflect CURRENT list price, less the existing Additional Discount from the Subscription, should the Additional Discount be included when dataloading.
Решение

Useful Queries

1. Contract
SELECT Id, AccountId, StartDate, ContractTerm, Status, SBQQ__RenewalPriceBookId__c, SBQQ__AmendmentPriceBookId__c, SBQQ__AmendmentRenewalBehavior__c FROM Contract WHERE Id = '800xxxxxxxxxxxxXXX'

2. Subscription – Bundle Parent
SELECT SBQQ__Account__c, SBQQ__Contract__c, SBQQ__RootId__c, SBQQ__Product__c, SBQQ__Number__c, SBQQ__Quantity__c, SBQQ__RenewalQuantity__c, SBQQ__PricingMethod__c, SBQQ__ListPrice__c, SBQQ__CustomerPrice__c, SBQQ__NetPrice__c, SBQQ__ProrateMultiplier__c, SBQQ__RenewalPrice__c, SBQQ__DiscountScheduleType__c, SBQQ__DiscountSchedule__c, SBQQ__TermDiscountSchedule__c, SBQQ__Bundle__c FROM SBQQ__Subscription__c WHERE SBQQ__Contract__c = '800xxxxxxxxxxxxXXX'

3. Subscription – Child
SELECT SBQQ__Account__c, SBQQ__Contract__c, SBQQ__RootId__c, SBQQ__Product__c, SBQQ__Number__c, SBQQ__Quantity__c, SBQQ__RenewalQuantity__c, SBQQ__PricingMethod__c, SBQQ__ListPrice__c, SBQQ__CustomerPrice__c, SBQQ__NetPrice__c, SBQQ__ProrateMultiplier__c, SBQQ__RenewalPrice__c, SBQQ__DiscountScheduleType__c, SBQQ__DiscountSchedule__c, SBQQ__TermDiscountSchedule__c, SBQQ__Bundle__c, SBQQ__OptionLevel__c, SBQQ__BundledQuantity__c, SBQQ__ProductOption__c, SBQQ__OptionType__c, SBQQ__RequiredByProduct__c, SBQQ__RequiredById__c, SBQQ__ComponentSubscriptionScope__c FROM SBQQ__Subscription__c WHERE SBQQ__Contract__c = '800xxxxxxxxxxxxXXX'

4. Assets – Bundle Parent
SELECT AccountId, SBQQ__RootId__c, Product2Id, SBQQ__Number__c, Quantity, SBQQ__PricingMethod__c, SBQQ__ListPrice__c, Price, SBQQ__CombineKey__c, SBQQ__DiscountScheduleType__c, SBQQ__DiscountSchedule__c, SBQQ__TermDiscountSchedule__c, SBQQ__Bundle__c FROM Asset WHERE AccountId = '001xxxxxxxxxxxxXXX'

5. Assets – Child
SELECT AccountId, SBQQ__RootId__c, Product2Id, SBQQ__Number__c, Quantity, SBQQ__PricingMethod__c, SBQQ__ListPrice__c, Price, SBQQ__CombineKey__c, SBQQ__DiscountScheduleType__c, SBQQ__DiscountSchedule__c, SBQQ__TermDiscountSchedule__c, SBQQ__Bundle__c, SBQQ__OptionLevel__c, SBQQ__BundledQuantity__c, SBQQ__ProductOption__c, SBQQ__OptionType__c, SBQQ__RequiredByProduct__c, SBQQ__RequiredBySubscription__c, SBQQ__RequiredByAsset__c FROM Asset WHERE AccountId = '001xxxxxxxxxxxxXXX'

6. Subscribed Assets
SELECT SBQQ__Active__c, SBQQ__AssetRootId__c, SBQQ__ContractId__c, SBQQ__Subscription__c FROM SBQQ__SubscribedAsset__c WHERE SBQQ__ContractId__c = '800xxxxxxxxxXXX'


NOTE: The ID following the = symbol near the end of the query must be wrapped in quotation marks. The actual ID for each account or contract will be different in each Org from the sample IDs included in the queries above. Ensure you are using the matching IDs from your accounts or contracts.
Номер статьи базы знаний

000384279

 
Загрузка
Salesforce Help | Article