> For the complete documentation index, see [llms.txt](https://developer.paddle.com/llms.txt).

# More flexibility for working with Cancellation Flows using Paddle.js

Use Cancellation Flows where you haven't passed a customer to Paddle Retain.

---

## What's new?

We updated Cancellation Flows for Paddle Billing so that you can launch them even when you haven't passed `pwCustomer` as part of initialization.

## How it works

Retain [Cancellation Flows](https://developer.paddle.com/build/retain/configure-cancellation-flows-surveys.md) presents customers with a simple survey that suggests dynamic salvage attempts — like pausing a subscription or switching plan — as well as gathering useful insights around why they want to cancel. In our testing, we found that it automatically reduced churn through cancellations by up to 30%.

To start a cancellation flow, you can use the [`Paddle.Retain.initCancellationFlow()`](https://developer.paddle.com/paddlejs/methods/paddle-retain-initcancellationflow.md) method in Paddle.js.

Previously, this method required you to pass `pwCustomer` to [`Paddle.Initialize()`](https://developer.paddle.com/paddlejs/methods/paddle-initialize.md) or [`Paddle.Update()`](https://developer.paddle.com/paddlejs/methods/paddle-update.md).

With this update, you can use [`Paddle.Retain.initCancellationFlow()`](https://developer.paddle.com/paddlejs/methods/paddle-retain-initcancellationflow.md) in cases where you haven't passed `pwCustomer`. Paddle Retain infers the customer from the `subscriptionId` passed and presents a cancellation flow.

## Next steps

This change is live in Paddle.js now. You don't need to do anything to get the latest version of Paddle.js — we serve the latest version automatically.

If you don't use Cancellation Flows, check out our guide to get started: [Configure Cancellation Flows and salvage offers](https://developer.paddle.com/build/retain/configure-cancellation-flows-surveys#configure-cancellation-flows-and-salvage-offers.md).