Paddle Forward

Join us live to see all the latest Paddle product updates, innovations, and insights

Register now
Paddle logo
Paddle logo
Paddle Retain: Cancellation Flow Event Callback

This document explains how to use cancellation flow event callbacks to understand customer decisions during the cancellation process. This information is crucial for updating your user interface, tracking analytics, and taking appropriate actions based on customer behavior.


How it Works

The initCancellationFlow() method initiates the cancellation flow for a customer. Once the customer completes or exits this flow, a Promise resolves, providing a result object that tells you what the customer decided.


Understanding the Outcomes

The result object will contain a status field, indicating one of four possible outcomes:

  1. status: 'retained' ✅ (Customer Stayed)

    • Meaning: Customer decided to keep their subscription, often after accepting a retention offer.

    • Action: Show a thank you message, track as "Cancellation Avoided" in analytics. Subscription remains active.

  2. status: 'chose_to_cancel' ❌ (Customer Cancelled)

    • Meaning: Customer completed the flow and confirmed intent to cancel.

    • Action: Redirect to a goodbye page or show a confirmation message. Track cancellation reason and feedback. Subscription will be cancelled.

    • Additional Data: result.cancelReason, result.additionalFeedback, result.salvageOfferResult.

  3. status: 'aborted' 🚪 (Customer Exited)

    • Meaning: Customer closed the modal without completing the flow.

    • Action: Typically, no immediate action is needed. Subscription remains active. Track as "Cancellation Flow Abandoned."

  4. status: 'error' ⚠️ (Something Went Wrong)

    • Meaning: An issue occurred (e.g., invalid subscription ID, network error, feature not enabled).

    • Action: Display a friendly error message and suggest contacting support. Log the error. Subscription remains unchanged.


Best Practices

  • DO: Handle all four status cases, provide clear customer feedback, track cancellation reasons, update UI based on result, and handle errors gracefully.

  • DON'T: Manually cancel subscriptions (if auto-cancel is enabled), assume flow succeeded, ignore error statuses, or block customers if flow fails.

Quick Reference

Status

Meaning

Subscription Status

What To Do

retained

Customer stayed

Active (possibly modified)

Celebrate! Show thank you message

chose_to_cancel

Customer cancelled

Will be cancelled

Show confirmation, redirect

aborted

Closed modal

Unchanged

Do nothing

error

Flow couldn't start

Unchanged

Show error, offer support


For more detailed information, refer to the Paddle.js documentation.