This document outlines the essential steps to configure dynamic pricing within a CRM environment, leveraging the capabilities of Salesforce, Zuora, and Zoho CPQ. The process involves setting up permissions, defining attributes, mapping fields, configuring rate plans, and ensuring seamless integration for consistent pricing across different customer scenarios.
Ensure the necessary permissions are activated in your tenant: access to the catalog UI for Catalog Beta and dynamic pricing enabled in both Billing and CPQ Salesforce.

Verify that context and attributes are set under Extension Code Studio, allowing management and definition of attributes. With these permissions established, you are ready to define the signals that will guide your pricing decisions.

To start defining attributes, navigate to the store attributes section under Extension Studio and begin by creating a new attribute.

Click "Add Attribute." Name this attribute "Customer Type" and categorize it under "Business Structure."

Since this is a standard object, select "Standard Object" from the source. Choose "ZUORA" as the source, with "Account Object" being the source object.

From the "Account Object," select the custom field "Account Customer Type_C" from the dropdown, which is mapped to the "Customer Type" attribute.

This attribute is of type "String" and can take the values: B2B, B2C, and Enterprise.

Initially, the dropdown will be blank, allowing you to enter values. Proceed with CRM mapping to fetch the "Customer Type" from the "Account Object" and use it in your code object.

Fill in the mapping code to facilitate the integration.

Review the mapping code.

Click "Save" to finalize the "Customer Type" field. Then, proceed to add another attribute called "Acquisition Channel."

Select the category as "Channel," the object type as "Standard Object," source as "External," and attribute type as "String." Enter the predefined values so users or salespersons can directly select from them.

Enter the values: "Website," "Partner," and "Mobile App." Use commas to separate them and click "Save."

Now, we have two fields: "Acquisition Channel" and "Customer Type," with "Customer Type" mapped to Salesforce CRM input.

Map this field to the corresponding Salesforce account input or code field for the sales user, allowing the rate card to select the correct rate.

These attributes will serve as inputs for a dynamic pricing table. They can be automatically resolved from account data or entered manually during code creation. Proceed to build a decision table.

To build a decision table, navigate to Catalog Beta under Products. Create a product by clicking on "New Product."

Name the product "Cloud Customer Product."

Define the start and end date for the product.

With the necessary attribute details filled in, click "Save" to create the product. Proceed to create rate plans.

Create two rate plans: one is a "Usage Flat Fee" based on "Customer Type," and another is a "Recurring Monthly Fee," based on a combination of "Acquisition Channel" and "Customer Type." Start with configuring the first rate plan.

Click "Add Plan" and name it "Usage Flat Fee."

Set a start date for the plan.

Define the currencies to be used, selecting "Euro" and "USD." The selected currencies will be highlighted in blue.

Selected currencies appear in the dropdown list, highlighted in blue.

Begin adding charges to this rate plan by clicking the "Add Charge" button.

Add a charge named "Access Fee."

In the "Rate" section, select "Usage" and choose "Flat Fee" from the dropdown list of charge models. Define the pricing.

The base price in USD is 9, and in Euro, it is 7. If no rate card is applied, the base price is used.

Define the base price, then scroll down. Details on the current page are to be filled before returning to dynamic pricing.

Verify all other settings. Set "Tax Mode" to "Non-Taxable." Review finance-related settings in the Finance section.

In the "Revenue Account" section, select the appropriate revenue accounts.

Once all details of the rate plan charge are defined, configure the dynamic pricing by clicking on the "Dynamic Pricing" option. Enter a formula to calculate the price dynamically.

Begin with a basic setup. Define a rate card to derive the charge price, using "Customer Type" as the first field.

Select "Customer Type" in the field dropdown. The next column is for price, based on USD. Add customer type details.

Click the first row to see a dropdown of defined values in the "Customer Type" attribute. Define the value for B2B, then proceed to the price section.

Set the price to $30. Recall that we also had a charge in Euro.

To add Euro, click the "+" button and select "Add Currency." Choose Euro and specify the value.

Add details for other customer types. For a B2C customer, set the price.

Set the price to $28 or $32, and in Euro...

Save these changes. Note that "Enterprise" is not defined to demonstrate how the system defaults to the base plan. The access fee is now set.

Click "Done." Having added the access fee, proceed to add a charge for the monthly fee.

For a recurring charge, select "Recurring" in the rate section and set the charge model to "Flat Fee" per month.

Define the base price: $20 in USD and $18 in Euro. Verify other conditions.

Set the end date and billing period to "Advance." Keep it non-taxable.

Review the Finance section, and ensure accounts are selected in the Revenue Account section.

After configuring settings, define dynamic pricing. The recurring charges are a combination of "Acquisition Channel" and "Customer Type." Click on "Dynamic Pricing" to create the rate card.

The first field is "Customer Type." Add another field, "Acquisition Channel," by clicking the "+" button.

Prices in USD and Euro are displayed, showing the base price. Define the rate card: if "Customer Type" is B2B and "Acquisition Channel" is "Website," set the price to $18 in USD.

Set the price to 16 euros. Add other rate details similarly.

Define the rate plans with various combinations of customer types and acquisition channels. Errors will be shown for duplicates.

After defining the rate card, save the decision table. The charge is now defined.

Click "Done" to save the charge. The access fee and the cloud monthly rate plan are set. Refresh the page and notice the "Pricing Waterfall" button.

Click "Pricing Waterfall" to verify pricing functionality. The waterfall for the monthly recurring fee combines "Customer Type" and "Acquisition Channel."

For a B2B customer acquired through a website, the price is $18.

For a B2B customer from a website, the net price is $18 in USD and 16 euros. Verify your pricing waterfall similarly.

Clicking the waterfall at the rate plan level shows the combination of monthly recurring and access fees for a specific combination. A B2B customer acquired from a website incurs a monthly charge of $20 and an access fee of $9.

Click "Update."

After verification in Zoho Billing, proceed to Zoho CPQ to start creating a new quote.

In CPQ, initiate a new quote by clicking the "New Quote" button.

Follow the standard procedure by verifying the quote details.

Verify the subscription details with the quote information. Add products by clicking "Browse Products" and search for the product created in Zoho Billing.

The "Used Flat Fee" rate plan from Zoho Billing appears, showing the monthly plan and access fee. A message indicates a recurring fee requires additional selection.

Select the rate plan and click "Add Selections." Two list prices are displayed: one from the access fee without errors, indicating the rate plan is governed by dynamic pricing logic and applies the correct price at runtime. Verify this.

Before delving into details, verify the customer's account details. The customer is Harper or L. Access the account section to check details.

For L, the account's custom field "Customer Type" is B2C. Ensure the rate card reflects the appropriate B2C pricing. Verify this information.

Check if the access fee rate is correct. Click on the number to view the rate card. The "Customer Type" field auto-selects B2C, applying correct pricing for the access fee.

With no changes needed, cancel this step. The monthly recurring charge shows a red icon, indicating missing information or attributes. The alert prompts sales to fill in the details.

Click the list price to view the rate card. "Customer Type" auto-fills from the account as B2C, but the "Acquisition Channel" is not filled. Sales should select the "Acquisition Channel." For a "Website" channel, the derived price is $19.

Check other combinations. For a B2C customer from a partner, the derived price is $14. Set the "Acquisition Channel" to "Partner" for a B2C customer.

Click "Confirm" to finalize. The access fee is now $32, returning to the access fee...

Correction: the access fee is $14. Returning to the access fee...

If any combination is unavailable in the rate card, the application defaults to the base charge.

Once attributes are complete and price updates occur in real-time, no manual adjustments are needed. The quote is now defined. Click "Save."

The quote is saved successfully, with quote metrics calculated. Submit and send the quote to Zuora for processing. Once accepted and converted to an order, the same dynamic pricing rules from Catalog Beta apply.

Prices remain consistent as products are added to subscriptions. Downstream processes like billing and revenue recognition follow the configured charge settings, ensuring pricing logic aligns with catalog governance.

Confirming dynamic pricing also functions with Zuora CPQ. Key takeaways: no SKU duplications, one product adapts to various customer types and markets.

Centralized governance of dynamic pricing rules in Catalog Beta, seamless CRM integration from Salesforce, minimizing manual input, and ensuring a consistent experience from quoting to revenue, ensuring accurate real-time pricing across the customer lifecycle. This concludes the demonstration.
