Skip to main content

Subscription Upgrades

This guide covers everything you need to know about setting up and using Subscription Upgrades in the Post-Purchase upsell flow. Not sure which feature you need? There are two separate subscription features in Aftersell:
  • Subscription upsell - offer a customer a new subscription product after checkout. See Subscriptions in Post-Purchase Offers.
  • Subscription upgrade - modify a customer’s existing subscription after checkout. This is what this guide covers.
Subscription Upgrades let you offer existing subscribers the ability to modify their subscription right after checkout. This could mean changing their delivery frequency, swapping to a different product, or both. The feature connects natively with Recharge, Skio, and Loop to modify the customer’s existing subscription in real time via each platform’s API. You can also apply a discount to the upgraded plan as part of the offer. Note: Subscription Upgrades is currently available by request. To get it enabled on your account, please reach out to our support team.

Prerequisites: API Configuration

Before Subscription Upgrades appear in your dashboard, you need to connect your subscription platform via API. Select your provider below for setup instructions and supported features.

Recharge

Supported features: All upgrade types (frequency, replacement, both) · Prepaid and postpaid frequencies To generate your API token:
  1. Log in to your Recharge merchant portal.
  2. Navigate to Tools & Apps and click API Tokens.
  3. Click Create an API Token.
  4. Enter a name and contact email for the token.
  5. Set the following permissions to Read and Write: Orders, Products, Subscriptions.
  6. Granting access to Plans is recommended but not required.
  7. Click Save and copy the API key.
For more details, see Recharge’s API documentation.

Skio

Supported features: All upgrade types (frequency, replacement, both) · Prepaid and postpaid frequencies To generate your API token:
  1. In your Skio dashboard, go to API & Integrations > API.
  2. Enter a name for your new API key and click Generate API key.
  3. Copy the key immediately — it will only be shown once.
  4. Make sure to grant all necessary scopes: edit, delete, and create subscription.
For more details, see Skio’s API documentation.

Loop

Supported features: All upgrade types (frequency, replacement, both) · Postpaid frequencies only Limitations to know before setup:
  • No prepaid support. Billing frequency is automatically synced to delivery frequency, and prepaid upgrade attempts will be rejected.
  • Selling plans must be pre-configured. Loop requires a matching selling plan to already exist in your Loop dashboard for the target frequency. Aftersell cannot create selling plans programmatically.
  • Multi-line subscriptions are handled in two steps: the target product line is split into a new subscription with the desired frequency, then removed from the original. This involves multiple API calls and may require checking your Loop dashboard if something looks off.
To generate your API token:
  1. Open the Loop app and navigate to Settings in the bottom left corner.
  2. Under Admin, click API Tokens.
  3. Click Generate New Token.
  4. Provide a name, select the appropriate scopes, and click Generate Token.
  5. Click Show Token to view and copy your key. Treat it like a password and store it somewhere safe.
For more details, see Loop’s API documentation.

Setup in Aftersell

  1. In Aftersell, go to Settings > Subscription Upgrades.
  2. Select your subscription provider from the dropdown.
  3. Paste your API token and click Save.
If the token is missing or lacks the required permissions, the Subscription Upgrades section will not appear in the Post-Purchase funnel editor. Subscription Token

Accessing Subscription Upgrades

Once your API token is configured:
  1. In your Aftersell dashboard, go to Post-Purchase Funnels.
  2. Open an existing funnel or create a new one.
  3. Click Edit Offer on the upsell you want to configure.
  4. In the Edit Upsell Product panel, click Product Selection to expand it.
  5. The Subscription Upgrades section will appear directly below, marked as New.
Subscription Upgrades

Configuration

Step 1: Enable the Feature

Toggle Enable Subscription Upgrade on.

Step 2: Select the Eligible Product

Choose the product the customer must already have as an active subscription for the upgrade offer to apply. If a customer checks out with this product as a subscription, they will be shown the upgrade offer on the post-purchase page.

Step 3: Choose an Upgrade Method

Method A: Change Frequency Use this to move a customer to a different delivery or billing interval - for example, upgrading a monthly subscriber to a prepaid plan.
  • Delivery Frequency is how often the product is shipped.
  • Billing Frequency is how often the customer is charged. This must be equal to or greater than the delivery frequency.
Example prepaid setup (charged every 6 months, delivered monthly):
  • Billing Frequency: Every 6 months
  • Delivery Frequency: Every 1 month
Note for Loop users: Prepaid frequencies are not supported. The billing frequency field is automatically synced to the delivery frequency. Method B: Replace with a Different Product Use this to swap the subscribed item with a different product - for example, upgrading a single bottle to a bundle. Select Replace with a different product and choose the new product and variant from your catalog. The replacement applies to all future recurring orders, not just the next shipment. Method C: Change Frequency and Replace Product Use this to change both the delivery frequency and the subscribed product in a single offer.

Subscription Upgrade Discount

You can offer a discount as an incentive for accepting the upgrade. In the Subscription Upgrades settings:
  • Discount type: Choose between Percentage or Fixed Amount.
  • Discount value: Enter the amount. Percentage discounts have a maximum of 100%.
The discount is applied through your subscription platform when the upgrade is processed.

The Offer Product

Why can’t I use the subscription product itself as the upsell offer?

This is a Shopify platform limitation. Shopify’s post-purchase API does not allow adding a second subscription to an order that already contains one. Because of this, Aftersell automatically forces the purchase option to one-time when a subscription is already in the checkout. If your offer product is subscription-only (meaning it requires a selling plan and cannot be sold as a one-time purchase), the offer will be skipped entirely.

What product should I use?

You need a product that can be sold as a one-time purchase. This is the product added to the customer’s order via Shopify’s post-purchase changeset. It is separate from the subscription modification that happens through your provider. Common approaches:
  • Use the same product if it supports both one-time and subscription purchase options. It will be added as a one-time line item, while the subscription is modified separately through your provider.
  • Use a dedicated upgrade product - a low-cost or zero-cost product that acts as the order-level record of the upgrade. The actual value is in the subscription change handled by your provider.
  • Use a complementary product - an add-on that pairs well with the upgrade, such as a sample pack when upgrading to a larger subscription.
The key requirement: the product must support one-time purchase.

How does the two-step process work?

When a customer accepts a subscription upgrade offer, two things happen:
  1. Shopify changeset: The offer product is added to the order as a one-time line item via Shopify’s post-purchase API.
  2. Provider API call: Aftersell calls your subscription provider (Recharge, Skio, or Loop) to modify the customer’s existing subscription — changing the frequency, swapping the product, or both.
These two steps are independent. The offer product is what appears on the Shopify order. The subscription change is what happens in your provider’s system.

Funnel Triggers and Targeting

Why do I need product-specific triggers?

Without a product trigger, your funnel may show to customers who do not have the eligible subscription product in their order. This results in wasted impressions and a subscription modification that silently fails, the offer product gets added to the order, but no subscription is changed. Enable these two triggers together for most subscription upgrade funnels:
  • Product trigger: Set this to the same product as your eligible (target) product.
  • Subscription trigger: Set to Include, so the funnel only fires when the order contains at least one subscription line item.
All enabled triggers use AND logic, meaning every condition must be met for the funnel to show. Note: If Show to all customers is enabled, it overrides all other triggers and the funnel will fire for every checkout. This is not recommended for subscription upgrade funnels.

What happens if the funnel fires for a customer without the eligible product?

The offer will still appear on the post-purchase page. If the customer accepts:
  • The Shopify changeset will succeed and the offer product will be added to the order.
  • The subscription upgrade call to your provider will fail because no matching subscription can be found. The error is logged, but the customer still sees a success state.
The result: the offer product is added to the order as a one-time purchase, but no subscription is modified. This is why product-specific triggers matter.

Important Notes

  • Subscriptions only. This feature only triggers if the customer purchased the subscription version of the eligible product. It will not trigger for one-time purchases.
  • Frequency on replacements. When replacing a product, the new item inherits the original subscription’s frequency. Selecting a different frequency is not supported unless using Method C (Change Frequency and Replace Product).
  • Multi-product upsells. Subscription upgrade settings must be configured individually for each product in a multi-product upsell.
  • One subscription per post-purchase flow. Only one subscription offer can be accepted per post-purchase page. If your funnel has multiple steps that include subscription products, only the first accepted offer will go through. The funnel editor will show a warning if it detects this conflict.

Troubleshooting

The Subscription Upgrades section does not appear in my funnel editor. Go to Settings > Subscription Upgrades and make sure you have selected a provider (not “None”) and saved a valid API token. Both fields are required. Refresh the funnel editor after saving. The upgrade offer was accepted but the subscription was not modified.
  • Check that your API token is still valid and has the correct permissions.
  • For Loop: confirm the target selling plan exists in your Loop dashboard for the configured frequency.
  • For Loop with multi-line subscriptions: the split operation involves multiple API calls — one may have failed. Check your Loop dashboard for duplicate subscription lines.
  • Review error logs in Sentry/Datadog for aftersell.subscriptionUpgrade metrics.
I am using Loop and cannot change the billing frequency. This is expected. Loop does not support prepaid subscriptions through this integration. The billing frequency field is disabled and automatically synced to the delivery frequency. My upgrade offer is showing to customers who are not subscribers.
  • Check that Show to all customers is not enabled, this overrides all other triggers.
  • Add a Product trigger matching your eligible subscription product.
  • Add a Subscription trigger set to Include.
  • Check funnel priority, a higher-priority funnel with broader triggers may be firing first.
The Order Browser shows “Cannot upsell a subscription to an order that already contains one.” The offer product is subscription-only and cannot be sold as a one-time purchase. Shopify does not allow adding a second subscription to an order that already has one, so the offer was skipped. Either update the product in Shopify to allow one-time purchases, or use a different offer product. See the Offer Product section above for guidance. The customer accepted the offer but their subscription was not changed, and an unexpected product was added to their order. This is expected two-step behavior. The product added to the order is the offer product (the Shopify changeset). The subscription modification is a separate API call to your provider. If the subscription was not modified, check the following:
  • Your provider API token is valid and has the correct permissions.
  • The eligible product in the funnel matches what the customer actually subscribed to.
  • For Loop: the target selling plan exists in your Loop dashboard.
If the provider call failed, the Shopify changeset still succeeds, the offer product stays on the order but the subscription is not changed.