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.
Go to Paddle > Retain.
Click Cancellation Flows.
Click Get started if setting up for the first time, or Edit if a configuration already exists.
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.
Select the color for selected states and progress bars by clicking the field under Brand color and using the color picker.
Select the font family for the text from the dropdown under Font.
Select the color for text by clicking the field under Text color and using the color picker.
Select the color for text in selected states by clicking the field under Selected text color and using the color picker.
View a preview of the first screen of the flow with your style selections on the right-hand side.
Click Continue to progress to the next step.
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.
Enter the text for responses under the Response fields.
Click Add response to add a new response field.
Remove a response by clicking the trashcan button icon next to the response.
View a preview of the first screen of the flow with the responses you've added on the right-hand side.
Click Continue to progress to the next step.
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.
Enter the text for responses under the Response fields.
Click Add response to add a new response field.
Remove a response by clicking the trashcan button icon next to the response.
View a preview of the second screen of the flow with the responses you've added on the right-hand side.
Click Continue to progress to the next step.
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:
| Type | Description |
|---|---|
| Contact support via email | Encourage customers to email your support team. |
| Book a meeting with support | Encourage customers to schedule a meeting with your team using Calendly. |
| Pause plan | Encourage customers to pause their subscription, so they can come back in the future. |
| Plan switch | Encourage customers to switch to a different product or price, retaining them with an offer that's more suited or affordable. |
| No attempt | Don't offer any salvage attempts. Customers are directed to the next step. |
Contact support via email
Select the response you want to offer this salvage attempt for from the dropdown boxes titled When a customer selects.
Select Contact support via email from the dropdown under Offer.
Customize another response's salvage attempt, or click Continue to progress to the next step.
Book a meeting with support
Select the response you want to offer this salvage attempt for from the dropdown boxes titled When a customer selects.
Select Book a meeting with support from the dropdown under Offer.
Enter the text for the copy that precedes "can we chat a bit more about this?" under Header copy.
Customize another response's salvage attempt, or click Continue to progress to the next step.
Pause plan
The number of months to pause the subscription for is automatically set to the number of months remaining on the subscription.
Select the response you want to offer this salvage attempt for from the dropdown boxes titled When a customer selects.
Select Pause plan from the dropdown under Offer.
Enter the text for the copy that precedes "how about pausing your subscription for [x] months?" under Header copy.
Customize another response's salvage attempt, or click Continue to progress to the next step.
Plan switch
Select the response you want to offer this salvage attempt for from the dropdown boxes titled When a customer selects.
Select Plan switch from the dropdown under Offer.
Enter the text for the copy that precedes "how about switching to [x]?" under Header copy.
Customize another response's salvage attempt, or click Continue to progress to the next step.
No attempt
Select the response you want to offer this salvage attempt for from the dropdown boxes titled When a customer selects.
Select No attempt from the dropdown under Offer.
Customize another response's salvage attempt, or click Continue to progress 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
Click on the Contact support via email dropdown box.
Enter the email address to direct customers to under Email for customer cancellation updates.
Customize another salvage attempt, or click Continue to progress to the next step.
Book a meeting with support
Click on the Book a meeting with support dropdown box.
Copy your Calendly scheduling link on the Calendly platform.
Enter your Calendly scheduling link under Calendly link.
Customize another salvage attempt, or click Continue to progress to the next step.
Pause plan
Click on the Pause plan dropdown box.
Select the unit of time to pause the subscription for from the dropdown under For.
Enter the number of time units to pause the subscription for in the field under For.
Customize another salvage attempt, or click Continue to progress to the next step.
Plan switch
Click on the Plan switch dropdown box.
Select the plan that customers would be switched from using the dropdown under If customer is on.
Select the plan that customers are offered to switch to using the dropdown under Offer.
Enter any additional details you want to display with the offer under Information to display.
Optional Click Add product to set up another plan switch pairing.
Optional Click the trashcan button icon next to the Salvage plan dropdown box to remove an existing pairing.
Customize another salvage attempt, or click Continue to progress to the next step.
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
Toggle Offer a discount on to enable the final discount offer.
Select the billing period the discount and subscription must match for the discount to be offered from the dropdown under Billing period.
If you selected Every number of days, months, or years, select the time unit from the dropdown and enter the number of time units.
Enter the percentage amount to discount by in the field under Percentage off.
Enter the number of billing periods the discount applies for in the field under Discount length.
Optional Click New discount to add a new discount to match against.
Optional Click trashcan button to remove an existing discount.
Click Continue to progress to the next step.
Turn off the final discount offer
Toggle Offer a discount off to disable the final discount offer.
Click Continue to finish the flow setup and save your 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.
Enter the text for the page's header copy under Header copy.
Optional Enter the text for the copy following the header under Body copy.
Click Continue to finish the flow setup and save your 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.
Go to Paddle > Retain > Cancellation Flows.
Click the overflow button button in the Cancellation flow card.
Click view button to preview the flow.
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:
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.Optional Attach a callback to build workflows around the result.
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
123456789101<!-- Cancellation button -->
2<button onclick="cancelSubscription();">Cancel my subscription</button>
3
4<script type="text/javascript">
5 function cancelSubscription() {
6 Paddle.Retain.initCancellationFlow({
7 subscriptionId: 'sub_01h8bqcrwp0vjd1p3bv20y7323'
8 });
9 }
10</script>Simulate Cancellation Flows
Once you've set up Cancellation Flows, you can simulate one to check how it looks to customers.
Go to a page where you've installed Paddle.js for Retain.
Open your browser console.
Type and enter
Paddle.Retain.demo({feature: 'cancellationFlow'}).
11Paddle.Retain.demo({feature: 'cancellationFlow'})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.
Abort Cancellation
Notify when a customer starts to cancel but is successfully retained and doesn't go through with it.
Cancellation
Notify when a customer completes a cancellation despite going through the flow.
Pause Plan
Notify when a customer accepts a pause offer instead of cancelling.
Switch Plan
Notify when a customer accepts a plan switch as an alternative to cancelling.
Salvage Offer
Notify when a customer accepts a discount or other salvage offer.
Go to Paddle > Retain > Cancellation Flows.
Click on Edit in the Notification email settings section.
Enter the email address you want to receive the notifications at under Notification email.
Toggle the notification options you want to receive emails for.
Click Save.
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().
Internal ID for this row.
Unique identifier for this cancellation flow session.
Identifier for your Paddle account.
Unique Paddle ID of the customer who triggered the cancellation flow, prefixed with ctm_.
Outcome of the cancellation flow session.
When the cancellation flow was initialized.
When the status was last updated.
ID of the cancellation reason the customer selected. Maps to your configured cancellation reasons. Corresponds to the label text returned as cancelReason by Paddle.Retain.initCancellationFlow().
ID of the satisfaction insight the customer selected. Maps to your configured insight responses. Corresponds to the label text returned as satisfactionInsight by Paddle.Retain.initCancellationFlow().
The type of salvage attempt that was offered to the customer, based on your configuration.
The salvage attempt the customer accepted and engaged with.
Whether the customer accepted or rejected the salvage attempt, or no attempt was made.
Whether the salvage attempt successfully prevented the customer from canceling.
Whether the customer accepted or rejected the final discount offer.
ID of the discount offer that was presented to the customer.
Paddle ID of the subscription the cancellation flow was triggered for, prefixed with sub_.
Free-text feedback provided by the customer on the final feedback page before confirming cancellation.
ID of the plan map configuration used for a plan switch salvage attempt.
Additional context about the salvage attempt outcome, as a JSON string.
Monthly recurring revenue at risk from this cancellation, in cents, in the subscription currency.
Three-letter ISO 4217 currency code for the subscription.
Paddle ID of the price the customer was subscribed to, prefixed with pri_.
Whether the customer used one-click cancellation. 1 if true, 0 if false.
Go to Paddle > Retain > Cancellation Flows.
Click on Edit in the Weekly report email section.
Enter the email address you want to receive the report at.
Optional Add more email addresses by clicking Add email.
Click Save.
Related pages
- Configure Cancellation Flows and salvage offers
- How it works
- Before you begin
- Set up Paddle Retain
- Set up Cancellation Flows
- Preview Cancellation Flows
- Integrate Cancellation Flows into your frontend
- Simulate Cancellation Flows
- Subscribe to notification emails
- Subscribe to receive reports
- Related pages