# Create Update Subscription Experience

The Update Subscription flow in Limio allows customers to change their current subscription — upgrading, downgrading, or adding/removing add-ons. While the [Switch](/product/self-service/what-are-the-standard-functionality-of-limio-self-service-manage-my-account/how-to-create-a-personalised-switch-upgrade-or-downgrade-experience.md) experience already allowed simple mid-term or end-of-term changes, it has more powerful capabilities for multi-product companies such as B2B SaaS, such as displaying proration calculations, supporting multi-product changes, hybrid pricing such as per unit recurring and usage pricing, and add-on purchases.

{% hint style="warning" %}
For simple, B2C changes, consider using the Switch experience: [Create Personalised Switch Experience](/product/self-service/what-are-the-standard-functionality-of-limio-self-service-manage-my-account/how-to-create-a-personalised-switch-upgrade-or-downgrade-experience.md).
{% endhint %}

This guide explains how to configure offers, add-ons, and pages to configure the Update Subscription experience.

## Step 1: Configure offers

This step assumes you have already created the offers and add-ons you want to use during the update subscription flow.

First, you will need to configure offer attributes related to the update subscription flow.

| Offer attribute      | What it controls                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | How to populate                                                                           |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| Downgrade CTA        | Text shown on the [https://docs.limio.com/components/component-library/self-service-components/component-update-subscription-offers](https://docs.limio.com/components/component-library/self-service-components/component-update-subscription-offers "mention") button to users when this offer is defined as a downgrade compared to the offer the user currently owns                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Populate with text, typical examples are "Downgrade", "Downgrade plan", or "Change plan". |
| Upgrade CTA          | Text shown on the [https://docs.limio.com/components/component-library/self-service-components/component-update-subscription-offers](https://docs.limio.com/components/component-library/self-service-components/component-update-subscription-offers "mention") button to users when this offer is defined as an upgrade compared to the offer the user currently owns                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Populate with text, typical examples are "Upgrade", "Upgrade plan", or "Change plan".     |
| Update configuration | Determines the next page to send the user to when they select this offer to change to                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Populate with a Limio page tag, such as /update-cart (step 2 below).                      |
| Downgrade offers     | Determines which offers are shown as downgrade options in the [https://docs.limio.com/components/component-library/self-service-components/component-update-subscription-offers](https://docs.limio.com/components/component-library/self-service-components/component-update-subscription-offers "mention") component when this offer is the current offer that the customer owns                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Populate with an offer label. Note that only published offers will be displayed.          |
| Upgrade offers       | Determines which offers are shown as upgrade options in the [https://docs.limio.com/components/component-library/self-service-components/component-update-subscription-offers](https://docs.limio.com/components/component-library/self-service-components/component-update-subscription-offers "mention") component when this offer is the current offer that the customer owns                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Populate with an offer label. Note that only published offers will be displayed.          |
| Cross-sell add-ons   | <p>Determines the cross-sells shown in both the <a data-mention href="https://docs.limio.com/components/component-library/cart-components/component-cross-sell"><https://docs.limio.com/components/component-library/cart-components/component-cross-sell></a> (used in acquisition) and the <a data-mention href="https://docs.limio.com/components/component-library/self-service-components/component-compatible-add-ons"><https://docs.limio.com/components/component-library/self-service-components/component-compatible-add-ons></a> (used in update subscription) when this offer is the current offer in the basket<br><br>Also determines whether an existing add-on will be removed during an upgrade or a downgrade. If an add-on is compatible with the new offer the user has selected, the add-on will be kept on the subscription. Otherwise, the add-on will be removed when the upgrade or downgrade happens.</p> | Populate with a cross-sell label. Note that only published add-ons will be displayed.     |

## Step 2: Configure pages

You will typically need 3 pages for the update subscription flow:

1. Subscription Details page - displays the customer’s current subscriptions and provides the starting point for initiating update actions such as upgrade, downgrade, or add add-ons
2. Update Offers page - presents available upgrade and downgrade options when the customer chooses to change their offer
3. Update Cart page - summarizes the pending update and allows the customer to review and submit the order

#### a. Subscription Details page

Use the Subscription Details component on this page.

#### b. Update Offers page

<figure><img src="/files/yH24NmvxHaA6Nkc6dsi3" alt=""><figcaption></figcaption></figure>

This page uses the [https://docs.limio.com/components/component-library/self-service-components/component-update-subscription-offers](https://docs.limio.com/components/component-library/self-service-components/component-update-subscription-offers "mention") component.

#### c. Update Cart page

<figure><img src="/files/VY5631J5vzftzToVi6C9" alt=""><figcaption></figcaption></figure>

| Key | Component name                                                                                                                                                                                                                 | Notes                                                                                                                                       |
| --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- |
| A   | [https://docs.limio.com/components/component-library/self-service-components/component-update-cart-items](https://docs.limio.com/components/component-library/self-service-components/component-update-cart-items "mention")   | Displays the offers and add-ons in the customers update cart (not the offers or add-ons the customer currently owns)                        |
| B   | [https://docs.limio.com/components/component-library/self-service-components/component-compatible-add-ons](https://docs.limio.com/components/component-library/self-service-components/component-compatible-add-ons "mention") | Displays add-ons configured in the cross-sell add-ons attribute of the offer currently in the update cart                                   |
| C   | [https://docs.limio.com/components/component-library/standard-components/component-text](https://docs.limio.com/components/component-library/standard-components/component-text "mention")                                     | Generic text field                                                                                                                          |
| D   | [https://docs.limio.com/components/component-library/self-service-components/component-change-summary](https://docs.limio.com/components/component-library/self-service-components/component-change-summary "mention")         | Only displays when the customer is being credited an amount, so they understand the total owed                                              |
| E   | [https://docs.limio.com/components/component-library/cart-components/component-cart-summary](https://docs.limio.com/components/component-library/cart-components/component-cart-summary "mention")                             | Displays what the customer owes today. If the customer owes an amount in the future, the amount will be 0.00.                               |
| F   | [https://docs.limio.com/components/component-library/self-service-components/component-billing-schedule](https://docs.limio.com/components/component-library/self-service-components/component-billing-schedule "mention")     | Displays the customer's upcoming charges                                                                                                    |
| G   | [https://docs.limio.com/components/component-library/self-service-components](https://docs.limio.com/components/component-library/self-service-components "mention")                                                           | In an update subscription flow, is only used for the Submit button to submit the order, error display, and rerouting upon successful order. |

## Step 3: Testing end-to-end behaviour

Using this configuration, the following flows will be supported:

* Upgrade an offer (effective immediately)
* Upgrade an offer, and add add-ons (effective immediately)
* Downgrade an offer (effective at end of term)
* Downgrade an offer, and add add-ons (effective at end of term)
* Add add-ons (effective immediately)

During all of these flows, existing add-ons will be kept if they are a compatible add-on to the new offer. An add-on is compatible if it is in the offer's **Cross-sell add-ons** attribute. If an existing add-on is not compatible, it will be removed at the order effective date (see above).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.limio.com/product/self-service/what-are-the-standard-functionality-of-limio-self-service-manage-my-account/how-to-configure-an-update-subscription-flow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
