Skip to main content

Multi Subscription Quoting

Zuora

Multi Subscription Quoting

The Multi-Subscription Quoting (MSQ) feature is in the Early Adopter phase. We are actively soliciting feedback from a small set of early adopters before releasing it as generally available. If you want to join this early adopter program, contact your Client Success Manager.

Overview

Multi-Subscription Quoting (MSQ) is a comprehensive approach to subscription management that allows you to create, amend, and renew multiple subscriptions to your customers in a seamless and efficient manner with a single quote. It goes beyond traditional single-subscription models, enabling you to tailor subscriptions based on your customer preferences, market trends, and changing needs.

Multi-Subscription Quoting can be compared to the concept of child quotes nested within a parent quote. This concept broadens to include an array of subscription plans, with each plan acting as a distinct child quote integrated into the larger context.

Using Parent and Child Quotes

A quote can have child quotes.

  • A quote that has child quotes is referred to as a parent quote. 
    • A parent quote can have multiple sub-quotes.
    • Products cannot be added to a parent quote. 
  • A child quote is referred to as a sub-quote.
    • One or more products can be added to a sub-quote.

Prerequisites for using MSQ

Before utilizing MSQ, there are certain prerequisites that should be considered. These prerequisites ensure a smooth enablement and usage of MSQ within your organization. 

To use the MSQ, you must meet the following requirements:

  • You must be on or upgrade to the latest version of Zuora Quotes (See the Release Notes for the latest version).
  • Ensure you are using Zuora Quotes-Lightning to utilize MSQ functionality.
  • The Zuora 360 package must be installed in your Salesforce org. 
  • Starting with Quotes version 10.44.1, you can enable high-speed quote preview or results transfer in MSQ from Zuora Billing to CPQ using the Preview Service, depending on the quote size:
    • Set up the sync credentials to connect to Salesforce using OAuth. For more information, see Set up Sync Credentials to Connect to Salesforce.
      • If the Zuora Connector for Salesforce CRM has already been enabled with OAuth credentials for 360+ sync, you can use the existing OAUTH credentials stored in Zuora Billing.
      • If you are using a Sandbox environment, after you refresh your Salesforce org, you must set up the sync credentials again to connect to Salesforce using OAuth.
    • Request your Salesforce Administrator to grant the necessary Salesforce permissions to the user who authorized or enabled the connector to push the results from Zuora Billing to CPQ.
      • Ensure that the API Enabled permission is enabled for the user.
        This permission would already be enabled when setting up OAuth credentials. In case the permission is not enabled, your Salesforce Administrator can enable it using one of the following options:
        • Option 1 - Profile level 
          • In your Salesforce org, click Set upand select Setup. The Setup homepage opens.
          • Navigate to Administration > Users > Users in the left navigation menu. The All Users page is then displayed on the right.
          • Select the user from the user list, and click the username.
          • Click System Administrator in the Profile field.
          • Select the API Enabled option under Administrative Permissions for the user to provide access to Salesforce APIs.
        • Option 2 - Permissions Sets level
          • In your Salesforce org, click Set up and select Setup. The Setup homepage opens.
          • Navigate to Administration > Users > Users in the left navigation menu. The All Users page is then displayed on the right.
          • Select the user from the user list, and click the username.
          • Click Permission Set Assignments and click Zuora Quotes End User.
          • Click Clone.
          • Provide a label and API name and click Save.
          • Click System Permissions from the System section and click Edit.
          • Select the API Enabled option and click Save
  • From the user profile, select Object Settings and enable Read and Write access for the MSQ Preview Notifications (zqu__MSQ_Preview_Notification__e) object. 
  • Add Zuora Quotes to the user's managed packages to provide access to the CPQ package.
  • Set permissions for Zuora Quotes custom objects by assigning the Zuora Quotes End User permission set to the user. For more information, see Set Permissions for Zuora Quotes Custom Objects.
  • Enable Multi-Subscription Quoting under Zuora Config > Admin Config setting.
  • Set up access to the MSQ feature for profiles within the Zuora Config > Quote Studio Settings > Feature Access Config.

Enable Multi Subscription Quoting

  1. Submit a request at Zuora Global Support to ask for the latest Zuora Quotes package link. Include your Salesforce Org ID and request the activation of the MSQ feature in your organization.
  2. After MSQ activation, go to Zuora Config > Quote Studio Settings > Admin Config.
  3. Click the Enable Multi-Subscription Quoting button to enable Multi-Subscription Quoting for your Salesforce org.

Lightning Web Security cannot be turned off once enabled. 

Considerations

  • A maximum of 15 child quotes can be created per New, Amend, or Renew quote.
  • In Quote Studio, only up to 200 products can be added to a single child quote at a time.
  • There is a limit of 300 as the total order actions allowed in a single MSQ per the Asynchronous Order API limits.
  • Cancelling multiple subscriptions in one quote is not supported.
  • Creating Pending subscriptions within MSQ is not supported.
  • Rules will only work for a single active child quote when the quote is loaded (Initial Load event), navigated to another child quote (Save/Submit event), or any change made on the active child quote (every time event).
    When you navigate from child 1 to child 2 quote, the MSQ Rules Engine executes twice: 
    • Child 1 - For active child quote (Save/Submit event)
    • Child 2 - For to be activated child quote (Load event).
  • Creating Order Line Items within MSQ is not supported.
  • Cloning existing MSQs is not supported.
  • The "updatequote" event within the Extensibility Framework can only be used to update Parent Quotes and Active Quotes.

Additional considerations for using MSQ

If you are utilizing custom components in the Extensibility Framework, use the following approach to retrieve the product timeline from the quote state:

New WAY to get Product timelines in the Extensibility Framework:

const productTimelinesProxy = JSON.parse(JSON.stringify(this.quoteState.subscription.productTimelines));

Previously, you might have utilized the below approach to get Product timelines in the Extensibility Framework:

const productTimelinesProxy = JSON.parse(JSON.stringify(Object.values(this.quoteState.subscriptions)[0].productTimelines));

For MSQ, you need two additional @API properties, masterQuoteStateand parentQuoteState, to support extensibility framework components.

Get started with MSQ

Refer to the following documentation to learn how to configure, and use MSQ through UI