The full guide to integrating Zuora for a self-service portal
How to build a subscriber self-service portal
Table of contents
- Create a self-service portal to manage subscriptions
- Define downgrade/upgrade logic and create self-service experience
- Create a cancellation flow with loss prevention
- Let your customers buy or remove add-ons
Create a self-service portal to manage subscriptions
Self-service. We all love a good self-service portal. But let me be clear: This is where the real difficulty starts. If you thought the purchase was difficult, well you are in for a surprise. Doing self-service for subscriptions can be immensely complicated due to the variety of subscriptions being sold historically, the various statuses of the subscription lifecycle, legacy issues and migrations for grandfathered subscriptions, design and architecture choices for the subscription data, etc… It’s also genuinely difficult to create a good experience for subscribers that also doesn’t hurt retention. Self-service is ripe for personalisation, yet achieving that requires a segmentation infrastructure and testing capabilities that are often beyond the reach of most companies.
As a result, most self-service ends up being boring and doing very little. See your subscription, download some invoices, update your payment methods. Anything more complex, call us! In B2B, this means sales people having to handle small purchases and renewals that could be self-served, frustrating customers and wasting salespeople’s time. In B2C, it means a contact centre inundated with irascible messages from customers who don’t want to have to call or live chat someone in 2023.
Companies must do better if they want to retain customers. So let’s start with the basics of a self-service portal for subscriptions:
- Subscription Management: Customers can view details of their current subscriptions, including plan types, billing frequencies, terms, and pricing. This enables them to understand exactly what services they're subscribed to and at what cost.
- Plan Changes and Upgrades: Users can upgrade, downgrade, or change their subscription plans as per their changing needs. This might include switching between different tiers, adding or removing features, or changing the billing cycle.
- Renewal Management: Customers have the option to renew their subscriptions, opt into automatic renewals, or even pause and resume their subscriptions.
- Payment Method Updates: The portal allows customers to update their payment methods for future billing cycles, ensuring uninterrupted service.
- Billing History and Invoices: Users can access their past billing records and download invoices for their subscription payments, providing transparency and ease in tracking expenses.
- Cancellation Process: If a customer decides to cancel their subscription, the portal provides a straightforward way to do so, along with any information about the cancellation policy or potential impacts (like loss of data or service access).
- Promotions and Discounts Application: Customers can apply promotional codes or discounts to their subscriptions, if available, to take advantage of special offers.
- User Permissions and Access Control: Manage permissions around who can access and manipulate self-service. In a B2B context, you might want to restrict this ability to administrators or key personnel within the client organisation.
Let’s start with the basics. Customers must be able to view their subscription. This sounds pretty simple. Given you have linked the identity of the customer via authentication to the Zuora account, you pull the subscription on that account and done. Well not quite. First your customer might have multiple accounts in Zuora, for example because they have subscriptions in different currencies or use different payment methods on each account, or it just happened historically. So you will first need to consolidate all the Zuora Accounts in 1 ‘Ecommerce’ Account and pull all the relevant subscriptions.
Then comes the UI of the subscriptions. Let’s think about all the things you may need to show and integrate:
- The display name: Do you show the product name or offer name or promotional name? Is it Spotify, or Spotify Premium, or Spotify Premium - 50% Off? This can get tricky to update. This name would also often be different from the system name you might store on the Zuora Product or Rate Plan, typically stored in a custom field.
- The subscription price: What price do you show here? Is it the price the customer pays today or the upcoming price after they’ve upgraded? Is it the price with the introductory promotion rate or the general price of the subscription? How do you make this clear to the customer? For B2B, is it the unit price ($9/m/user) or the total price being paid ($99/m)? You will also need to pull this from somewhere. Do you pull it from the Zuora Catalog Rate Plan? Or from the live Zuora Subscription? And if it’s the live Zuora Subscription, which version do you use, the latest one (which may be in the future) or the current one? There are lots of pitfalls here and all those options are on the table depending on what you want the subscriber to know about.
- The previous and next charge: Ok this one at least is a bit simpler. This is what the customer should see on their bank account and then expect in the future. This could be different from the subscription price, for example if they have a credit or a temporary discount, depending on your design choice.
- The subscription term: Not to confuse with the billing frequency, the term is the period of contractual commitment, for example 1 month, 1 year or 18 months. Sometimes there is no term, the subscription is just evergreen. And to make it even more complex, you can have an initial term of 3 months, that then renews into evergreen. You will need to think about how to display clearly the contractual commitment to the customer.
- The subscription status: The status can be a real minefield. The official Zuora statuses are Draft, Active (Within a Term / Out of Term), Pending (Activation / Acceptance), Expired, Cancelled, or Suspended. You need to make sure those make sense to customers. If someone enacts a cancellation end of term, do you show the subscription as Active (as of today) or Cancelled (planned to be cancelled)? You will need to make some design choices.
- The type: Not all subscription businesses only sell subscriptions. Is it a one-off, a gift subscription, a regular subscription, usage-based? This will have an impact on the data to display as well as the action buttons.
- Auto-renew: Whether the subscription will automatically renew into the renewal terms and the customer will be automatically charged (though auto-renew is different from auto-pay, but that’s a different conversation).
- Payment methods: The payment method for this subscription. Note that out-of-the-box Zuora only allows 1 default payment method across all subscriptions held on a Zuora Customer. However, with Zuora Advanced Payment Method (APM), you can have different payment methods per subscription. Depending on your setup, you may want to display the payment method per subscription (if you use the APM) or display the payment method separately from subscriptions (if it’s the same across subscriptions). You will then need to allow the subscriber to update their payment methods, which may only allow specific payment methods for the offer they hold.
- (Physical products) Delivery address: Each subscription may have different delivery addresses that the subscriber may want to change. You might need to implement some logic to prevent changes to certain addresses where you cannot deliver or where the product is unavailable, and potentially have cutoff dates for changes.
- Action buttons: Typical actions for an active subscription will be upgrade/downgrade, cancel and for a cancelled subscription, reactivate or renew. Those buttons might be specific to some offers or types.
And this is all just to display what you have, not even getting started on making changes to it. No wonder most companies give up pretty rapidly on good self-service!
How Limio keeps it simple
But you don’t have to give up with Limio because we make it simple! Limio Components will dynamically provide a comprehensive view of customer orders and subscriptions. It acts as a central hub where users can access detailed information about each order processed through the Limio platform (and outside!). We allow for easy tracking and management of orders, offering insights into various aspects like order status, customer details, product information, and pricing. Additionally, it supports export functionality, allowing for the data to be downloaded and used for further analysis or reporting. This feature is particularly useful for businesses looking to streamline their order management process, offering a clear and concise overview of all orders in one place.
Define downgrade/upgrade logic and create self-service experience
Let’s get in the nitty-gritty and a particularly difficult experience to structure: the upgrade or downgrade experience. Before even talking about what happened on the self-service portal, you will need to think about how you define your upgrade and downgrade path. For example, you may want Digital subscribers to only be able to change their billing frequency, but not be able to upgrade to Digital + Print due to delivery rules. Or you may want your SMEs customers to upgrade from Bronze to Silver but not your Enterprise Gold subscribers to downgrade to Bronze. You may also want to encourage customers to upgrade with discounts, or you may have rules around add-ons when someone downgrades, or you may want to enable someone to only do end of term downgrades but process immediate upgrades. And you also may need to think about currencies and make sure you are showing upgrades and downgrades in the correct currencies. Lots to think about right? Here’s a breakdown of what matters:
Clear Communication: Ensure customers understand the benefits and any potential drawbacks of changing their subscription level. This includes providing detailed information on features, pricing, and how the change will affect their current service.
- Seamless Process: The switch should be easy to initiate and complete. You should minimise steps in the process and ensure it can be done directly from the user interface, without needing to contact customer support.
- Customised Experience: Tailor the upgrade/downgrade path to individual user needs. For instance, present relevant offers based on their usage history or preferences.
- Pro-Rata Adjustments: Explain how billing changes will be handled, such as whether customers will be credited or debited for the difference in subscription costs. This is particularly important for mid-cycle changes.
- Transparent Terms and Conditions: Clearly state any terms related to the subscription change, including commitments, cancellation policies, and any changes in service levels.
- Confirmation and Feedback: After a customer completes a subscription change, send a confirmation message.
- Customer Support: Provide easy access to customer support in case users have questions or encounter issues during the process.
So how do you do this commerce experience in practice with Zuora? You should:
- Display the current subscription and offer: Your subscriber should be clear on what they are about to show. This will require you to work out what Product and Pricing in the current Zuora Subscription.
- Display the available upgrades and downgrades: Assuming you have built some logic, either hardcoded, set in Zuora custom fields, or defined in a third-party tool, you will then need to display all the available downgrades and upgrades, making the relevant Zuora Catalog API calls.
- Confirm the changes: Show a preview of the old and new subscription offers, highlighting additional costs or pro-ration, making use of the Zuora Preview functionality. Also display the payment method and addresses used for the change and allow them to be changed, making separate API calls to the Payment Methods and Contact endpoints in Zuora. Finally confirm the terms & conditions of the new products, as well as included features.
- Process the changes: Back to orchestration! Salesforce, Zuora, entitlement, fulfilment systems all need to be updated to provide a seamless billing, customer service and access experience. This can be quite complex - do you use an Add/Remove Product Order or an Update Product Order? How do you communicate to the entitlement system the future-dated impact of changes? This all needs to be considered. Again, you’ll also want to handle failures and performance issues gracefully, with an ability to report and monitor them.
- Confirm the changes: Ok, success, upgrade or downgrade is successfully processed! Now you should confirm this back to the customer via an order confirmation page, that recaps similar information to the ‘confirm the changes’ step. However, instead of a Zuora Preview, you will be directly querying the Zuora Subscription endpoint.
How Limio personalise the upgrade and downgrade experience
Limio has your back on upgrades and downgrades. You don’t need to build anything. Limio includes a Journey builder, which allows you to determine upgrade and downgrade paths based on the subscriber’s current offer, but also segment or purchase country. Once that’s set, Limio Components can help you create the upgrade and downgrade experience end-to-end, from displaying the subscription, to the available offers, to previewing the change and confirming the changes. And the subscription overview will also show the impact of the upcoming changes. But if you don’t like how we do it, our SDK allows you to create bespoke upgrade and downgrade experiences and implement your own business rules.
Create a cancellation flow with loss prevention
Letting your customer cancel is somewhat an easy process. What is harder is to attempt to prevent cancellation while not frustrating customers. Even more complex in B2C is to respect evolving regulations around cancellations. When allowing subscribers to cancel online, several important considerations should be taken into account:
- Ease of Process: Ensure the cancellation process is straightforward and accessible, avoiding complex procedures that can frustrate customers.
- Feedback Collection: Implement a step in the cancellation process to gather feedback, helping you understand why customers are leaving and how to improve your service. Feedback reasons will need to be passed to different systems, for example a custom field on a Zuora Order or a record in Salesforce.
- Cancel Save Offers: Offer alternatives like pausing subscriptions, giving a discount, or downgrading plans, which can retain customers who might otherwise completely cancel.
- Pausing is a complex topic and will require using the Limited Availability feature of Zuora Suspend/Resume.
- Giving a discount will require setting up a % discount or absolute amount. % are easier to handle, especially in multi-currency setup. You will need to create a % Discount Rate Plan in Zuora and be able to process an Add Product Zuora Order if the Discount is accepted. It will also be best practice to run a Zuora Preview for the subscriber to see the impact of the discount on future billing before accepting the Cancel/Save.
- We already covered how downgrades can work with Zuora
- Clear Communication: Be transparent about the terms of cancellation, including any effects on billing, refunds, or remaining subscription periods. Once triggered, create a Zuora Cancel Order with the desired effective date - this will often be end of term (or end of next billing period for evergreen) online.
- Immediate Confirmation: Provide immediate confirmation of cancellation, ideally with a change confirmation page and follow-up email, to reassure customers that their request has been processed. Mention the last day of the subscription.
- Post-Cancellation Engagement: Consider strategies for re-engaging former subscribers, such as follow-up offers that can be re-activated from the self-service portal. Once Zuora triggers a Cancel Order, the only way to remedy this is to delete the initial Zuora Cancel Order to reinstate the subscription - this creates a data loss and is a known limitation.
These points are crucial for maintaining a positive relationship with your customers, even as they exit your service. They reflect a commitment to customer satisfaction and can impact your brand's perception in the long term and winbacks.
How Limio personalise the cancel experience
Limio can help you to prevent subscription cancellations by offering a comprehensive self-service portal. This portal allows subscribers to easily manage their subscriptions, empowering them with control and flexibility. By providing options such as changing plans, Limio reduces the likelihood of cancellations driven by inflexibility or complexity. Limio also integrates targeted retention cancel/save offers, presenting subscribers with personalised incentives to stay leveraging their cancel reason as well as segments and products information. Limio also allows Live Chat options to be embedded thus providing customers with realtime help within the self-service portal if required.
Let your customers buy or remove add-ons
Most B2C businesses may not offer add-ons, but they are common in B2B enterprises, especially in SaaS models. These add-ons can include a variety of services like additional features, training, AI bots, and more. It's important to understand that these add-ons don't alter your base subscription package; for instance, you can remain on a Pro plan while adding an AI bots feature.
To integrate add-on management in a self-service portal, consider these aspects:
- Eligibility of Add-ons: Not all plans may permit every add-on, as higher-tier plans might already include certain add-ons. It's also crucial to align the billing frequencies of add-ons with the base subscription to avoid confusion. Implement logic in your system to manage this eligibility and display only relevant add-ons to customers.
- Editing Add-ons: Any changes in add-ons, whether additions or removals, will affect the billing. Customers should be clearly informed about these financial implications. Utilising a feature like Zuora's Preview can be instrumental in providing transparent billing updates in real-time as customers modify their add-ons.
- Customization Options: Offer customization options for add-ons where possible. For instance, if an add-on provides extra service hours or additional features, let customers choose the quantity or tier of these services. This can make the Zuora Catalog more complex, requiring the use of consumption-based pricing.stre
- Add-on Processing: The operational aspect of managing add-ons needs careful consideration. Typically, adding an add-on should take effect immediately, integrating seamlessly with the current subscription term. However, removing an add-on might be programmed to occur at the end of the term. This requires a sophisticated order orchestration strategy to correctly implement Zuora's Add Product or Remove Product functions at the appropriate times, ensuring smooth transitions and clear communication with the customer.
How Limio helps you to upsell add-ons
Limio Add-ons are a powerful tool for upselling, allowing businesses to modify existing subscriptions by adding and removing new products flexibly. Integrated with Zuora, these add-ons will seamlessly update existing subscriptions in Zuora. Add-ons can be surfaced anywhere in the commerce experience via Limio's SDK, making it a flexible and efficient solution for enhancing customer subscriptions and boosting revenue.