Support Multi-entity in Zuora CPQ
To enable and support multiple entities in Zuora CPQ, you must have both Zuora Quotes 7.2 or later version and Zuora 360 3.2 or later version installed and configured as described in this article.
Currently, multi-entity and bundling cannot be enabled in the same Salesforce org.
This feature is in Limited Availability. If you want to have access to the feature, submit a request at Zuora Global Support.
The following configurations were tested and certified between Zuora CPQ and Zuora in the Zuora Multi-entity environment:
- Multiple Zuora entities synchronizing to one Salesforce org
- One Zuora entity synchronizing to one Salesforce org
If you are turning on Multi-entity in Zuora CPQ Q3 2016 release or earlier, make sure your tenant names are not longer than 38 characters, including special characters.
Set up Multi-entity in Zuora
When you add new entities or initially enable multiple entities in your Zuora tenant, perform the following tasks in each entity being enabled. The tasks listed are required for Zuora CPQ and is a subset of required tasks for Multi-entity in Zuora.
- In all your Zuora entities, enable the Multi-Entity setting.
- The Features setting must be the same in all entities. The setting should be either enabled for all of the Zuora entities or disabled for all of those Zuora entities.
- Set the prefixes in the Zuora settingsto be unique. The Subscription Number Prefix must be unique across all entities. We recommend the other prefix settings are set to be unique in all entities.
- In each entity, set the Zuora settings for Billing, Payment, Finance,Commerce, and Reporting.
Set up Multi-entity in Zuora CPQ
Follow the steps below to configure Zuora 360 to work with multiple Zuora entities:
- Install the Zuora Quotes, Version 7.2, and Zuora 360, Version 3.2, packages.
- Grant the permissions on the Billing Entity object in Zuora 360.
- Grant the field level permissions on the new entity id fields in Zuora 360.
- Update any page layout with the deprecated SKU field (zqu__SKU__c). Replace the SKU field (zqu__SKU__c) with the new SKU field (zqu__SKU2__c).
- For the custom fields defined in all your Zuora entities, create the corresponding fields in Salesforce with the same API name.
- Enable the Multi-Entity setting in Zuora Quotes.
- Set the organization wide default values in Default Value Settings.
The organization level default values are used as the default when making new entities. - Run the 360 syncs from each new Zuora entity you want to connect to Zuora CPQ.
- Run the Product Catalog sync. The Product Catalog sync updates the Billing Entity information in Zuora Quotes with the information from Zuora.
- Run the Account and Related Objects sync.
- (Optional) Run a Salesforce report with the Entity Id field to verify that the accounts in each entity are synchronized correctly.
- In Zuora Quotes Connection Settings, test connections to all Zuora entities.
- Configure Zuora Config settings for each entity in Zuora Config Default Value Settings.
- You must set the Subscription Name field to Auto-number for subscription names to be automatically generated in the Multi-entity setting.
- Migrate the previously synced data.
- Update WSDL to the version 76 in Zuora 360.
- If using Order Builder, update the settings in Connection Setup to use the Zuora WSDL version 76 in the Endpoint field. For example: https://services422.zuora.com/apps/services/a/76.0
- Update your Order Builder code to add the Entity Ids in the zlogin method.
- Add the Billing Entity field to the Quote Template and Invoice Template page layouts.
- Open existing Quote Templates and set the Billing Entity field.
- Add new Quote Templates for new entities.
- Open existing Invoice Templates and set the Billing Entity field.
- Add new Invoice Templates for new entities.
- Open Communication Profile Settings in Zuora Config and click Refresh Profiles from Zuora.
- Open Payment Pages Settings in Zuora Config and click Refresh Payment Pages.
Grant the Object and Field Levels Permissions on the Billing Entity Object to Sync User Profile
To enable access to the new Billing Entity object added in this release, grant the Read, Create, Edit, and Delete permissions on the object to the sync user profile.
Additionally, grant the Read and Edit field level permissions on all fields in the new object to the same sync user profile.
To each sync user profile, grant permissions for the new Billing Entity custom object:
- Navigate to Setup > Manage Users > Profiles.
- Click the sync user profile to which you want to grant permissions.
- Click Object Settings.
- Click Billing Entities.
- On the Profile page, click Edit.
- In the Object Permissions section, select Read, Create, Edit, and Delete.
- In the Field Permission section, select Read and Edit for all the fields.
- Click Save.
Grant the Field Level Permissions on the New Entity Id Fields to Sync User Profile
Grant the Read and Edit permissions to the sync user profile on the following new fields.
The Entity Id field was added to the following objects.
Object | New Field |
---|---|
Billing Account | Entity ID |
Communication Profile | Billing Entity |
Hosted Page Setting | Billing Entity |
Invoice Template | Billing Entity |
Payment Gateway | Entity ID |
Payment Method | Entity ID |
Payment Pages Setting | Billing Entity |
Payment Term | Entity ID |
Product |
Billing Entity Entity ID SKU (zqu__SKU2__c) |
Product Rate Plan | Entity ID |
Product Rate Plan Charge | Entity ID |
Product Rate Plan Charge Tier | Entity ID |
Unit of Measure (Zuora__UnitofMeasure__c) |
Entity ID |
Unit of Measure (zqu__ZUnitofMeasure__c) |
Billing Entity |
Feature | Billing Entity |
To each sync user profile, grant permissions for all newly added fields:
- Navigate to Setup > Manage Users > Profiles.
- Select the sync user profile to which you want to grant the field-level permissions.
- Click Object Settings.
- Click the object listed in the above table.
- Click Edit.
- In the Field Permissions section, select the Read and Edit permissions for each new field.
- Click Save.
- Repeat the Steps 4 to 7 for each object listed in the above table.
Migrate Previously Synced Data
If you are upgrading from a single entity environment, a full sync is necessary to populate the entity on existing records. By default, previously synchronized Product and Account records are not migrated.
Take the following steps to trigger a full sync in the next 360 Sync. You need to get the entity id of the previously existing entity from your Zuora tenant.
- Navigate to Setup > Develop > Custom Settings and click Manage next to MigrationSettings.
- Click MultiEntity_BillingAccount_<your entity id>.
- Click Edit.
- Clear the Migrated field.
- Click Save.
- Click MultiEntity_Product_<your entity id>, and repeat the steps 3 through 5.
Run a Report to Verify Accounts Synced for Entity
Optionally, you can run a report in Salesforce to verify that the accounts in each entity are synchronized correctly.
To create and run a report on Billing Accounts:
- In the Reports tab, click New Report....
- Expand the Accounts & Contacts folder, and click Accounts with Billing Accounts.
- Click Create.
- In the Billing Account: Info folder, drag Entity ID and drop it in the Preview area.
- Click Run Report.
- Verify that the Billing Accounts belong to the correct Entity IDs.
Enable the Multi-Entity Setting
To support multiple billing entities, the Enable Multi-Entity setting must be turned on in Zuora Quotes. The setting is automatically enabled at 0:00AM on the following day after the corresponding Zuora setting is enabled in your Zuora tenant.
If you want to immediately update the Enable Multi-Entity setting before the next schedule permission check happens, you can manually run the permission check.
Before you manually run the permission check script, make sure:
- The API user has access permission to all the entities.
- The Test Connections are successful. See Test Zuora Config Connection Settings for details.
- In each entity, you are using the right Salesforce credentials under 360 Sync in the right Salesforce org.
- A Product Catalog Sync is run successfully.
To execute the permission check script:
- In Salesforce, open Developer Console.
- Navigate to Debug > Open Execute Anonymous Window.
- In the Enter Apex Code window, type:
zqu.RefreshCustomSettingSchedulable.refreshMultiEntityPermission(); - Click Execute.
- In Zuora Quotes, verify that the Enable Multi-Entity setting is correctly updated in Advanced Quoting Configuration Settings in the Zuora Config tab.
Test Zuora Config Connection Settings
To update the Zuora WSDL version and check connections to Zuora entities:
- In the Zuora Config tab, click Zuora Connection Settings.
- Click Edit Settings.
- Click Test Connection. Check the connection status to all your Zuora entities.
The entity information is synchronized from each Zuora entity in the Product Catalog sync. Test Connection only tests the connections to the entities that have been synchronized by the Product Catalog sync.
Add Billing Entity to Quote Template and Invoice Template Page Layouts
To add the Billing Entity field to the Quote Template page layout:
- Navigate to Setup > Create > Objects.
- Click Quote Template.
- In the Page Layouts section, click Edit for Quote Template Layout - V5.0.
- Click Fields.
- Drag and drop Billing Entity to the Quote Template Detail section.
- Click Save.
To add the Billing Entity field to the Invoice Template page layout:
- Navigate to Setup > Create > Objects.
- Click Invoice Template.
- In the Page Layouts section, click Edit for Invoice Template Layout.
- Click Fields.
- Drag and drop Billing Entity to the Invoice Template Detail section.
- Click Save.