Paddle Billing
Ask AI

Configure Cancellation Flows and salvage offers

Build a cancellation process that saves customers by presenting them with dynamic salvage attempts, as well as capturing cancellation insights for your team.

You can use Cancellation Flows, part of Paddle Retain, to build custom curated off-boarding experiences that are designed to prevent customers from churning.

Cancellation Flows presents customers with a simple survey that suggests dynamic salvage attempts, like pausing a subscription or switching plans, as well as gathering useful insights around why they want to cancel. As a last resort, you can offer customers a discount to incentivize them to stick around.

How it works

Paddle Retain combines world-class subscription expertise with algorithms that use billions of data points to automatically reduce churn. Paddle Billing is fully integrated with Retain, meaning it automatically handles dunning and retention for you.

Cancellation Flows are a part of Paddle Retain, helping you save customers from canceling and gathering cancellation insights. They ask customers why they're canceling, as well as what they found valuable about your app, then presents curated salvage attempts.

If you use Paddle Billing, Cancellation Flows automatically takes action on the related subscription for you. Cancellation Flows are built-in to the customer portal, or you can build your own workflow in your frontend using Paddle.js.

Paddle Retain works with live data for your billing platform. This means you can't integrate or test with sandbox accounts.

Before you begin

Set up Paddle Retain

If you haven't already, connect Paddle Retain to your billing platform and set up Paddle Retain.

Use Paddle Billing? Billing automatically integrates with Retain, so you're ready to get started. Go to Paddle > Retain > Settings and review your setup.

Paddle.js must be installed and verified as installed on a public page on your site. Follow the instructions during setup, click Edit under Paddle.js is not installed, or click Install under Paddle.js is not installed in web app.

Set up Cancellation Flows

How you set up Cancellation Flows depends on where you set up Retain.

Go to Retain

If you set up Retain for Paddle Billing, you can access and configure Cancellation Flows in the Paddle Billing dashboard.

  1. Go to Paddle > Retain.

  2. Click Cancellation Flows.

  3. Click Get started if setting up for the first time, or Edit if a configuration already exists.

Illustration showing the Cancellation Flows home page. It shows a screen introducing the feature, stating 'AeroEdit lost $10,383 last month from customers cancelling. Let's fix that.' and 'Cancellation Flows help you retain more users and protect your bottom line. Reduce your churn by up to 30% while gaining actionable customer insights to grow your business.'. It also includes a 'Get started' button.

Add branding

Branding lets you customize the look and feel of Cancellation Flows, so they fit the style of your app. You can change the font family, and colors for text and components.

Any changes you make aren't saved until you reach the end of the setup flow. This includes when you edit an existing configuration.

  1. Select the color for selected states and progress bars by clicking the field under Brand color and using the color picker.

  2. Select the font family for the text from the dropdown under Font.

  3. Select the color for text by clicking the field under Text color and using the color picker.

  4. Select the color for text in selected states by clicking the field under Selected text color and using the color picker.

  5. View a preview of the first screen of the flow with your style selections on the right-hand side.

  6. Click Continue to progress to the next step.

Illustration showing the Cancellation Flows 'Branding' step. It shows fields for setting the brand color, font, text color, and selected text color, with color pickers and a dropdown for font selection, and a preview of the first screen of the flow with the selected styling on the right-hand side.

Add responses for cancellation reasons

On the first screen of the flow, a customer is asked why they're canceling. You can add up to 5 responses to this question that are displayed as options the customer can select.

  1. Enter the text for responses under the Response fields.

  2. Click Add response to add a new response field.

  3. Remove a response by clicking the icon next to the response.

  4. View a preview of the first screen of the flow with the responses you've added on the right-hand side.

  5. Click Continue to progress to the next step.

Illustration showing the Cancellation Flows 'Cancellation responses' step. It shows fields for entering the text for responses, with an 'Add response' button and a preview of the first screen of the flow displaying the cancellation reason options on the right-hand side.

Add responses for cancellation insights

On the second screen of the flow, a customer is asked what they think your app or company is doing well. You can add up to 5 responses to this question that are displayed as options the customer can select.

These response options are also used in the next step to offer a salvage attempt to the customer.

  1. Enter the text for responses under the Response fields.

  2. Click Add response to add a new response field.

  3. Remove a response by clicking the icon next to the response.

  4. View a preview of the second screen of the flow with the responses you've added on the right-hand side.

  5. Click Continue to progress to the next step.

Illustration showing the Cancellation Flows 'Cancellation insights' step. It shows fields for entering the text for responses asking what the customer thinks the app or company is doing well, with an 'Add response' button and a preview of the second screen of the flow displaying the insight options on the right-hand side.

Map responses to salvage attempts

On the third screen of the flow, a customer is offered an alternative option to canceling based on their responses to the previous question.

For each response, you can choose which salvage attempt to offer. There are five types:

TypeDescription
Contact support via emailEncourage customers to email your support team.
Book a meeting with supportEncourage customers to schedule a meeting with your team using Calendly.
Pause planEncourage customers to pause their subscription, so they can come back in the future.
Plan switchEncourage customers to switch to a different product or price, retaining them with an offer that's more suited or affordable.
No attemptDon't offer any salvage attempts. Customers are directed to the next step.

Contact support via email

  1. Select the response you want to offer this salvage attempt for from the dropdown boxes titled When a customer selects.

  2. Select Contact support via email from the dropdown under Offer.

  3. Customize another response's salvage attempt, or click Continue to progress to the next step.

Illustration showing the Cancellation Flows 'Salvage attempts' step. It shows dropdown boxes titled 'When a customer selects' for choosing the response, and a dropdown under 'Offer' set to 'Contact support via email', with a preview showing how this salvage attempt appears to customers.

Book a meeting with support

  1. Select the response you want to offer this salvage attempt for from the dropdown boxes titled When a customer selects.

  2. Select Book a meeting with support from the dropdown under Offer.

  3. Enter the text for the copy that precedes "can we chat a bit more about this?" under Header copy.

  4. Customize another response's salvage attempt, or click Continue to progress to the next step.

Illustration showing the Cancellation Flows 'Salvage attempts' step. It shows dropdown boxes titled 'When a customer selects' for choosing the response, a dropdown under 'Offer' set to 'Book a meeting with support', and a field for 'Header copy' to customize the text preceding 'can we chat a bit more about this?', with a preview showing how this salvage attempt appears to customers.

Pause plan

The number of months to pause the subscription for is automatically set to the number of months remaining on the subscription.

  1. Select the response you want to offer this salvage attempt for from the dropdown boxes titled When a customer selects.

  2. Select Pause plan from the dropdown under Offer.

  3. Enter the text for the copy that precedes "how about pausing your subscription for [x] months?" under Header copy.

  4. Customize another response's salvage attempt, or click Continue to progress to the next step.

Illustration showing the Cancellation Flows 'Salvage attempts' step. It shows dropdown boxes titled 'When a customer selects' for choosing the response, a dropdown under 'Offer' set to 'Pause plan', and a field for 'Header copy' to customize the text preceding 'how about pausing your subscription for [x] months?', with a preview showing how this salvage attempt appears to customers.

Plan switch

  1. Select the response you want to offer this salvage attempt for from the dropdown boxes titled When a customer selects.

  2. Select Plan switch from the dropdown under Offer.

  3. Enter the text for the copy that precedes "how about switching to [x]?" under Header copy.

  4. Customize another response's salvage attempt, or click Continue to progress to the next step.

Illustration showing the Cancellation Flows 'Salvage attempts' step. It shows dropdown boxes titled 'When a customer selects' for choosing the response, a dropdown under 'Offer' set to 'Plan switch', and a field for 'Header copy' to customize the text preceding 'how about switching to [x]?', with a preview showing how this salvage attempt appears to customers.

No attempt

  1. Select the response you want to offer this salvage attempt for from the dropdown boxes titled When a customer selects.

  2. Select No attempt from the dropdown under Offer.

  3. Customize another response's salvage attempt, or click Continue to progress to the next step.

Illustration showing the Cancellation Flows 'Salvage attempts' step. It shows dropdown boxes titled 'When a customer selects' for choosing the response, and a dropdown under 'Offer' set to 'No attempt', indicating that no salvage attempts will be offered for this response and customers will be directed to the next step.

Configure salvage attempts

Once you've mapped responses to salvage attempts, you must configure the salvage attempts you selected.

You can't customize salvage attempts on a per-response basis. Your configuration applies to all responses that offer the same salvage attempt.

Contact support via email

  1. Click on the Contact support via email dropdown box.

  2. Enter the email address to direct customers to under Email for customer cancellation updates.

  3. Customize another salvage attempt, or click Continue to progress to the next step.

Illustration showing the Cancellation Flows 'Salvage attempt configuration' step. It shows a dropdown box for 'Contact support via email' that can be expanded, and a field labeled 'Email for customer cancellation updates' where you enter the email address to direct customers to, with configuration options visible.

Book a meeting with support

  1. Click on the Book a meeting with support dropdown box.

  2. Copy your Calendly scheduling link on the Calendly platform.

  3. Enter your Calendly scheduling link under Calendly link.

  4. Customize another salvage attempt, or click Continue to progress to the next step.

Illustration showing the Cancellation Flows 'Salvage attempt configuration' step. It shows a dropdown box for 'Book a meeting with support' that can be expanded, and a field labeled 'Calendly link' where you enter your Calendly scheduling link, with configuration options visible.

Pause plan

  1. Click on the Pause plan dropdown box.

  2. Select the unit of time to pause the subscription for from the dropdown under For.

  3. Enter the number of time units to pause the subscription for in the field under For.

  4. Customize another salvage attempt, or click Continue to progress to the next step.

Illustration showing the Cancellation Flows 'Salvage attempt configuration' step. It shows a dropdown box for 'Pause plan' that can be expanded, and fields under 'For' with a dropdown to select the unit of time (days, months, or years) and a number field to enter how many time units to pause the subscription for, with configuration options visible.

Plan switch

  1. Click on the Plan switch dropdown box.

  2. Select the plan that customers would be switched from using the dropdown under If customer is on.

  3. Select the plan that customers are offered to switch to using the dropdown under Offer.

  4. Enter any additional details you want to display with the offer under Information to display.

  5. Optional Click Add product to set up another plan switch pairing.

  6. Optional Click the icon next to the Salvage plan dropdown box to remove an existing pairing.

  7. Customize another salvage attempt, or click Continue to progress to the next step.

Illustration showing the Cancellation Flows 'Salvage attempt configuration' step. It shows a dropdown box for 'Plan switch' that can be expanded, with dropdowns labeled 'If customer is on' to select the plan customers would be switched from, 'Offer' to select the plan to switch to, and 'Information to display' for additional details, along with options to add or remove product pairings.

Customize the final discount offer

Discounts let you reduce the amount a customer pays on subsequent transactions for their subscription. You can optionally offer a one-time, percentage-based discount to encourage customers who reject the salvage attempts to stay.

You can add up to 32 discounts to offer. Customers are offered the discount that matches the billing period of the subscription they are attempting to cancel. If there isn't a discount with a matching billing period, no discount is offered.

If you choose to not offer a discount, or no discount can be offered, the customer is sent directly to the final page after they reject the salvage attempts.

You can also set the percentage amount to discount by, and the number of billing periods the discount applies for.

Offer a final discount

  1. Toggle Offer a discount on to enable the final discount offer.

  2. Select the billing period the discount and subscription must match for the discount to be offered from the dropdown under Billing period.

  3. If you selected Every number of days, months, or years, select the time unit from the dropdown and enter the number of time units.

  4. Enter the percentage amount to discount by in the field under Percentage off.

  5. Enter the number of billing periods the discount applies for in the field under Discount length.

  6. Optional Click New discount to add a new discount to match against.

  7. Optional Click to remove an existing discount.

  8. Click Continue to progress to the next step.

Illustration showing the Cancellation Flows 'Salvage discount' step. It shows a toggle for 'Offer a discount' in the on state, a dropdown under 'Billing period' to select the billing period the discount and subscription must match, a field under 'Percentage off' to enter the discount percentage, a field under 'Discount length' to enter the number of billing periods the discount applies for, and buttons to add or remove discounts.

Turn off the final discount offer

  1. Toggle Offer a discount off to disable the final discount offer.

  2. Click Continue to finish the flow setup and save your changes.

Illustration showing the Cancellation Flows 'Salvage discount' step. It shows a toggle for 'Offer a discount' in the off state, disabling the final discount offer, and a 'Continue' button to finish the flow setup and save changes.

Customize the final feedback page

If the customer rejects the discount, or if no discount was offered, the customer is sent to the final feedback page to give any final feedback before confirming their cancellation. You can customize the copy on this page to encourage customers to provide feedback and fit your brand.

  1. Enter the text for the page's header copy under Header copy.

  2. Optional Enter the text for the copy following the header under Body copy.

  3. Click Continue to finish the flow setup and save your changes.

Illustration showing the Cancellation Flows 'Final feedback' step. It shows a field labeled 'Header copy' for entering the text for the page's header, and a field labeled 'Body copy' (marked as optional) for entering additional text following the header, with a 'Continue' button to finish the flow setup and save changes.

Preview Cancellation Flows

Once Cancellation Flows are set up, you can preview the flow customers see when they try to cancel a subscription. The flow is interactive, so you can view each page and check how it behaves.

  1. Go to Paddle > Retain > Cancellation Flows.

  2. Click the button in the Cancellation flow card.

  3. Click to preview the flow.

Illustration showing the Cancellation Flows 'Preview' step. It shows a three-dot menu, opened to reveal a button labeled 'Preview' that can be clicked to preview the flow, with a preview in the bottom left showing the first page of the flow in action.

Integrate Cancellation Flows into your frontend

How you integrate Cancellation Flows into your frontend depends on where you set up Retain and the Cancellation Flow.

If you handle cancellations using the customer portal, you don't need to do anything. The customer portal automatically launches Cancellation Flows when customers try to cancel a subscription.

If you've built your own cancellation logic outside the customer portal, you need to:

  1. Call the Paddle.Retain.initCancellationFlow() method when a customer tries to cancel a subscription on your website or app, passing the Paddle ID of the subscription entity that the customer wants to cancel.

  2. Optional Attach a callback to build workflows around the result.

  3. Retain automatically handles pausing, applying a discount, switching plans, or canceling the related subscription in Paddle Billing. When those events occur in Paddle, handle provisioning in your app as normal.

Example

Simulate Cancellation Flows

Once you've set up Cancellation Flows, you can simulate one to check how it looks to customers.

  1. Go to a page where you've installed Paddle.js for Retain.

  2. Open your browser console.

Subscribe to notification emails

You can subscribe to receive notification emails based on the outcome of a cancellation flow for monitoring and reporting purposes. You choose which emails you'd like to receive by toggling the available options.

  1. Go to Paddle > Retain > Cancellation Flows.

  2. Click on Edit in the Notification email settings section.

  3. Enter the email address you want to receive the notifications at under Notification email.

  4. Toggle the notification options you want to receive emails for.

  5. Click Save.

Illustration showing the Cancellation Flows 'Subscribe to notification emails' step. It shows a box labelled 'Notification email settings' with an 'Edit' button to open a modal to enter the email address you want to receive the notifications at, toggles for the different notification options, and a 'Save' button to save the settings.

Subscribe to receive reports

You can subscribe to receive a weekly CSV report of Cancellation Flows activity. The report is an activity log with one row for every time a cancellation flow is initialized. Use it to analyze cancellation patterns, measure your save rate, and identify which salvage attempts are most effective.

Certain fields in the report map to those in the return object of Paddle.Retain.initCancellationFlow().

  1. Go to Paddle > Retain > Cancellation Flows.

  2. Click on Edit in the Weekly report email section.

  3. Enter the email address you want to receive the report at.

  4. Optional Add more email addresses by clicking Add email.

  5. Click Save.

Illustration showing the Cancellation Flows 'Subscribe to report' step. It shows a box labelled 'Weekly report email' with an 'Edit' button to open a modal to enter the email address(es) you want to receive the report at.

Related pages

AI Assistant

Ask me about Paddle

Discover, integrate, and debug faster. I'm here to help with all your questions and use cases.

Looking for help with a purchase? Visit paddle.net.

Powered by kapa.ai
|
Protected by hCaptcha