Automate Revenue Cloud Customer Asset Lifecycle Management

Rahul Chaugule
Salesforce Architects
6 min readJun 18, 2024

--

Revenue Cloud simplifies the management of sales and finance functions by allowing customization of capabilities such as product management, quote generation, and sales order creation. It also offers the ability to handle the entire asset lifecycle through the use of Customer Asset Lifecycle Management, or CALM. This is particularly useful for tracking a customer’s lifetime purchases, such as software, warranties, or maintenance plans. Revenue Cloud is crucial for businesses with complex product offerings, as it enables tracking of customer assets throughout their lifecycle.

CALM, available with Revenue Clouds CPQ Plus and Billing products, tracks customer purchases from start to finish. It provides details like purchased items, payments, and subscription expiration dates. CALM streamlines purchases and updates, making subscription management easier. By leveraging the Asset data model in Revenue Cloud, we aim to automate the CALM process effectively.

The solution that will be detailed in this article will use CALM but with the following considerations:

  • While Assets may live in Revenue Cloud, the subscriptions and licenses those assets represent will need to be activated within a third party licensing system when a new purchase is made. This involves transferring necessary data from Revenue Cloud to the licensing system to enable customers to access their purchases.
  • Orders within Revenue Cloud will be made across several direct and indirect channels. This means hundreds of orders a day with the potential of hundreds of licenses/subscriptions that could be associated to each order. This means it will be both too complex and too cumbersome to create all the Asset data that could be associated to an Order manually. We will need to fully automate the data creation process so the end customer can receive immediate access to their licenses/subscription after purchase.

These considerations are not atypical of any solution that would use CALM within Revenue Cloud. Those Assets represent real licenses/subscriptions that real customers are using in the real world. By storing all the necessary Asset data within Revenue Cloud and activating the licenses/subscriptions via Salesforce we can ensure Revenue Cloud stays as the single source of truth for customer asset lifecycle management for that organization.

This article will discuss the process of enhancing the customer asset lifecycle management, or CALM, data model, automating the new purchases process, and transferring data to a third-party licensing system.

System Landscape Diagram showing Customer Asset Lifecycle Management between a Licensing System and Revenue Cloud

Required Data Model Changes

When making updates to the standard CALM data model, there are two considerations that need to be kept in mind as we look to customize the data model for full automation:

  • We are not simply using the Asset Lifecycle Management data to track an Asset but to also activate that Asset within the licensing system
  • The scope of the existing standard CALM data model does not contain the objects/fields necessary to activate those licenses with that required information

In most use cases that involve utilizing Assets and tracking their lifecycle, that asset will more than likely not exist within Salesforce. Given the scope of Revenue Cloud, these Assets maybe as complex as the Product configurations can get within the scope of a Quote or Order. So augmenting the Asset data model means we are adding the necessary data points it will require from an accepted Quote/closed Opportunity to that license/subscription becoming active and/or available within a third party licensing system.

Let’s explore the data model needed for the Product and Asset model integration.

Data Model Diagram how to fully automate the customer asset lifecycle management, or CALM, Process in Revenue Cloud
Data Model Diagram how to fully automate the customer asset lifecycle management, or CALM, Process in Revenue Cloud

To create Lifecycle Managed Assets in Revenue Cloud, we need to set up Product records for the product and its warranty/maintenance service. This involves using the Product object model and creating additional objects like Product Product Hierarchy, Product Hierarchy Attribute, and Asset Attribute. By automating CALM with these objects, we can effectively manage the product lifecycle and assets and provide the third party Licensing System the data it needs.

To set up Asset data in Revenue Cloud, we will use the following additional objects:

  • Product Attribute: contains data needed for the Licensing system to create licenses.
  • Product Hierarchy: establishes a link between the Product being sold and the licensed services available.
  • Product Hierarchy Attribute: tracks data attributes between the product, attached services, and how services are activated in the Licensing system.
  • Asset Attribute: crucial for creating Asset Attribute records to automate the CALM process. This data is essential for generating Asset Attribute records efficiently. More details on these objects will be discussed in the next section.

Automate the CALM Process

After implementing the necessary data model changes, our next step is to automate the creation of data for activating licenses/subscriptions in the third-party licensing system. To achieve this, we have outlined the following approach:

  1. Generating CALM data from each Order Product record linked to the accepted Quote/closed Opportunity.
  2. Transmitting Asset data to the third-party licensing system for activation.

Given the complexity of our data model and the potential volume of Order Products associated with an Order, we will employ the following automation methods:

  • Implement a record-triggered automation on the Order Product record to generate Asset records from both standard and new Product objects. This process may involve multiple DML statements for creating and updating records.
  • When executing Cross-Object CRUD operations, it is crucial to consider the downstream implications. Refer to the Record-Triggered Automation Decision Guide for guidance on managing these considerations.
  • While Flow is recommended for this process, your specific requirements may dictate using a different automation tool. Consult the Architect’s Decision Guide for Record-Triggered Automation to determine the most suitable solution.

Upon completion of the record-triggered automation, the newly created Asset data must be transmitted to the third-party licensing system. We recommend implementing an event-driven solution, such as a publisher/subscriber architecture, where the licensing system can subscribe to events triggered by the automation process.

Utilizing an event-driven architecture ensures real-time updates to the Asset data are reflected in the licensing system, facilitating seamless management of licenses and subscriptions. Consider using Platform Events for this process, but refer to the Architect’s Decision Guide for Event-Driven Architecture to explore alternative solutions based on your specific criteria.

Below is a diagram of the kind of process we need to build using Revenue Cloud data, record triggered automation and event driven architectures.

Diagram of a Record-Triggered Automation on how to create CALM records in Revenue Cloud
Diagram of a Record-Triggered Automation on how to create CALM records in Revenue Cloud

Lets break the above diagram down further and the processes involved to create the appropriate CALM records:

  1. To start, we will create an Asset record that is linked to an Order Product record from the initial Order. It is important to map all relevant data to the Asset record to ensure that the Licensing System receives the necessary information.
  2. Next, we will update the Asset field on the Order Product to connect the Asset to the Order and Product.
  3. We will then generate Asset Attribute records based on the Product Attributes created earlier. These records will be linked to the Asset and will transfer the Product Attribute data to the Asset as an Asset Attribute record.
  4. Licenses and Subscriptions are time-based, and our system, CALM, is designed to handle this. The Asset State Period record will determine the duration of the license or subscription, informing the Licensing System of the necessary active period.
  5. The Asset Action Record will document any changes made to a managed asset throughout its lifecycle, such as adjustments to the license or subscription. This record will also update the Asset State Period record accordingly.
  6. We will create Asset Action Source Records to track the transactions that triggered changes in the managed assets. This will provide visibility into the origins of any modifications made to the assets.
  7. Lastly, we can now male CALM Asset data available to the licensing system using Platform Events and a Publish / Subscribe Event Design Pattern. By subscribing to these events, the licensing system can efficiently generate licenses for end users, ensuring that data between Salesforce and the licensing system stays synchronized and current. Key data such as Asset Id, Asset Start Date, Asset End Date, Asset Quantity, Product Information, and other relevant details can be sent over a Platform Event for activating licenses or subscriptions. Any updates or changes to this information will be promptly transmitted in near real-time to the licensing system.

We have completed all the necessary steps to activate our customer’s new product purchase, including creating the required assets, attributes, state periods, actions, and action sources. To ensure timely activation of licenses and subscriptions, we sent all this data back to the licensing system through a Platform Event that the system can subscribe to.

Additional Resources

--

--