This topic describes best practices for migrating purchased product information from legacy CRM and ERP systems into Conga CPQ and for tracking subsequent renewals.

CPQ Implementation without Billing

To import assets in a pure CPQ implementation without Billing, it is best to create the asset line-item data directly in the Conga environment. This section describes best practices for importing legacy data, the asset types that may be imported, and those asset types' characteristics.

Maintaining Uniqueness within the Imported Data

  • When importing data into the Asset Line Item object, the combination of line number (or primary line number) and business object ID must be unique. Business object ID can be quote ID, order ID, account ID, or agreement ID (if applicable). If the combination is not unique, the Installed Products page does not complete loading data.
  • Maintaining line number uniqueness can be challenging when the process is batched for huge volumes. Implementation teams must ensure that the line number is sequenced programmatically to maintain uniqueness across multiple batches.

Renewing Assets

When performing asset renewal, ensure that bundles and their options have matching charging frequencies (one-time or recurring) if they have the same Charge Type. For example, When the bundle's Charge Type is Standard price and its option's charge type is Standard Price, then the Frequency of the bundle and its option should be the same (either one-time or recurring). 

A sample when the bundle and its option have the same charge type (standard price):


Case 1: Bundle | OptionCase 2: Bundle | OptionCase 3: Bundle | Option
FrequencyOnetime | OnetimeRecurring | RecurringOnetime | Recurring
Charge TypeStandard Price | Standard PriceStandard Price | Standard priceStandard Price | Standard price
Recommended?YesYesNo

Standalone Assets

A standalone asset line item needs the following basic data elements to be transferred successfully to Conga CPQ. Implementation teams must ensure that this data is available within the source of the purchased products.

  • The Sold To account associated with the standalone asset governs its display on the Installed Products page.
  • The unit sale price of the asset with its corresponding selling frequency becomes the asset's base price for any future asset-based orders.
  • For a recurring entity, the asset line item's term is important for prorating future asset-based orders and for determining the renewal start dates for manual and automated renewals.

  • Set the Inactive flag on the asset line item to false. Any asset with Inactive=True is not visible on the Installed Products page.
  • Set Has Attributes to True if the asset has attributes.
  • Set Asset Status to Activated. The Installed Products page does not recognize statuses such transactional statuses as Amended or Renewed. An asset's status is either Activated or Cancelled.

Bundled Assets

In addition to the points specified for standalone assets, you must specify a bundle's relationships to its child assets (options). Your legacy systems may not operate with the concept of a bundled asset. Entities are related either using a contract or an order. Implementation teams must ensure that all the data is available and structured appropriately for the bundled asset to be used with asset-based ordering.

  • Set Has Options to True on the asset.
  • Set Has Attributes to True if the asset has attributes.
  • Set Has Attributes to True at the bundle level even if the bundle has no attributes: options within the bundle may have attributes that drive quantity or cumulative range pricing. If Has Attributes is set to True, the reprice action does not reflect the change.
  • Populate the parent bundle number (representing the primary line number of the immediate parent line in the hierarchy).
  • Populate the parent asset ID (representing the primary line number of the immediate parent asset). This makes a difference when user has cloned options within the bundle structure.

Examples

The following examples show the differences in the population of the parent bundle ID and parent asset ID.

A simple bundle with one option

Asset NameCharge TypeSelling TermStart DateEnd DateIs Primary LinePrimary Line NumberBundle Asset Line ItemParent Bundle NumberParent Asset Line Item
Supernet Transportation ServiceSubscription Fee121/1/202112/31/2021Yes1


AAP OptionsSubscription Fee121/1/202112/31/2021Yes2Supernet Transportation Service1Supernet Transportation Service


A bundle with two options where one of the options is a bundle

Asset NameCharge TypeSelling TermStart DateEnd DateIs Primary LinePrimary Line NumberBundle Asset Line ItemParent Bundle NumberParent Asset Line Item
Supernet Transportation ServiceSubscription Fee121/1/202112/31/2021Yes4


AAP OptionsSubscription Fee121/1/202112/31/2021Yes7Supernet Transportation Service4Supernet Transportation Service
VPNSubscription Fee121/1/202112/31/2021Yes5Supernet Transportation Service4Supernet Transportation Service
Level 2 VPNSubscription Fee121/1/202112/31/2021Yes6Supernet Transportation Service5VPN


A bundle with a nested bundled option that is cloned

Asset NameCharge TypeSelling TermStart DateEnd DateIs Primary LinePrimary Line NumberBundle Asset Line ItemParent Bundle NumberParent Asset Line Item
Supernet Transportation ServiceSubscription Fee121/1/202112/31/2021Yes1


AAP OptionsSubscription Fee121/1/202112/31/2021Yes2Supernet Transportation Service1Supernet Transportation Service
VPNSubscription Fee121/1/202112/31/2021Yes3Supernet Transportation Service1Supernet Transportation Service
Level 2 VPNSubscription Fee121/1/202112/31/2021Yes4Supernet Transportation Service3VPN
Level 2 VPNSubscription Fee121/1/202112/31/2021Yes5Supernet Transportation Service5VPN
VPNSubscription Fee121/1/202112/31/2021Yes6Supernet Transportation Service1Supernet Transportation Service

Ramped Assets

To persist discrete data points associated with each period for billing and revenue recognition in a Quote-to-Cash (Q2C) environment, CPQ creates one asset for each period while processing a ramped (multi-year) deal. The following examples show the structure of such assets:

  • Ramped assets are all connected using a primary ramp asset, acting as a loosely-coupled bundle that holds the assets for all periods.
  • CPQ populates the bundle asset line item.
  • You must set the Is Primary Ramp Line flag to True for the first period.

Examples

The following examples show the differences in the population of the parent bundle ID and parent asset ID.

A standalone ramped asset

Asset NameCharge TypeStart DateEnd DateIs Primary LineIs Primary Ramp LinePrimary Line NumberBundle Asset Line ItemParent Bundle NumberParent Asset Line Item
CPQSubscription Fee1/1/201712/31/2017YesYes1


CPQSubscription Fee1/1/201812/31/2018

1CPQ

CPQSubscription Fee1/1/201912/31/2019

1CPQ


A ramped asset with bundle level ramps that cascade to the options

Asset NameCharge TypeStart DateEnd DateIs Primary LineIs Primary Ramp LinePrimary Line NumberBundle Asset Line ItemParent Bundle NumberParent Asset Line Item
ApttusSubscription Fee1/1/201712/31/2017YesYes1


ApttusSubscription Fee1/1/201812/31/2018

1Apttus

ApttusSubscription Fee1/1/201912/31/2019

1Apttus

CPQSubscription Fee1/1/201712/31/2017YesYes2Apttus1Apttus
CPQSubscription Fee1/1/201812/31/2018

2Apttus1Apttus
CPQSubscription Fee1/1/201912/31/2019

2Apttus1Apttus
ABOSubscription Fee1/1/201712/31/2017YesYes3Apttus1Apttus
ABOSubscription Fee1/1/201812/31/2018

3Apttus1Apttus
ABOSubscription Fee1/1/201912/31/2019

3Apttus1Apttus
BillingSubscription Fee1/1/201712/31/2017YesYes4Apttus1Apttus
BillingSubscription Fee1/1/201812/31/2018

4Apttus1Apttus
BillingSubscription Fee1/1/201912/31/2019

4Apttus1Apttus


A ramped asset with option-level ramps

Asset NameCharge TypeStart DateEnd DateIs Primary LineIs Primary Ramp LinePrimary Line NumberBundle Asset Line ItemParent Bundle NumberParent Asset Line Item
Apttus- Service IncludedStandard Price1/1/201712/31/2017YesYes1


Apttus- Service IncludedSubscription Fee1/1/201712/31/2019

1Apttus- Service Included

CPQSubscription Fee1/1/201712/31/2017YesYes2Apttus- Service Included1Apttus- Service Included
CPQSubscription Fee1/1/201812/31/2018

2Apttus- Service Included1Apttus- Service Included
CPQSubscription Fee1/1/201912/31/2019

2Apttus- Service Included1Apttus- Service Included
ABOSubscription Fee1/1/201712/31/2017YesYes3Apttus- Service Included1Apttus- Service Included
ABOSubscription Fee1/1/201812/31/2018

3Apttus- Service Included1Apttus- Service Included
ABOSubscription Fee1/1/201912/31/2019

3Apttus- Service Included1Apttus- Service Included

Linkage to Child Objects

You can link an imported asset line item to its attribute detail using the asset attribute value object. You can link it to its usage detail using the asset usage tier values if applicable.

Quote-to-Cash Implementation with Standard Billing

For a Q2C implementation where there is a need to generate billing for assets, the recommended strategy is to create the order and order lines. Activation of the order and order lines will then generate the assets and the billing. The following are the best practices in those scenarios:

  • Specify the billing frequency and billing method for the price list item associated with the order line item. If you do not specify, order activation will fail.
  • Set the status of the order header and order lines to Pending Activation.
  • Set the Line Status of the order line items to New.

Quote-to-Cash Implementation with Custom Billing

For a Q2C implementation to generate custom billing (using a billing plan) for assets, create the proposal and proposal line items, attach a billing plan to the proposal header, accept the quote, and activate the corresponding order. In such a scenario:

  • Follow the standard process to create or import a proposal.
  • Auto-activate orders by passing either the Ready for Activation Date from the proposal (if the billing is aligned to this date) or by setting the Auto Activate Order flag to True.
  • Do not create the renewal suite on order activation while going through this process.

Renewal Pipeline Generation for Imported Assets

To generate the renewal pipeline for legacy assets, use the OnDemand mode in conjunction with the lead time.

  • To group the generated renewal quotes by quote ID, use the Apttus_QPConfig ProposalId r.Name grouping field.
  • Do not generate renewal suites for legacy assets on order activation in a batch process. This overwhelms CPQ resources, violates the governor limits, and causes unpredictable behavior.

Using a Batch Process to Create Imported Assets

  • Asset import through an order involves calling several data manipulation languages (DMLs) and APIs. Executing too many orders in one batch can result in a Too many SOQL queries: 201 error.
  • You must ensure that the batch size is optimized to prevent errors based on the size of your order and the size of each line item.