This page documents the subscription cancellation and retention flows implemented in the Dashboard > Account > Settings > Manage Subscription > Cancel Subscription, including user experience, backend behavior, emails, and auditing.
Provides a high-level overview of the cancellation and retention system, explaining how the platform intelligently handles different user states and implements retention strategies. Trial users are offered a 7-day trial extension, while paying users are offered 1 free month (next invoice $0). Immediate cancellation is available in all cases via "Continue to Cancel".
Emails: All emails are sent through the configured email service provider. Trial extension emails include "What happens next" and new end date. 1 month free emails have terms that billing resumes automatically after the free month. Cancellation emails provide confirmation with next steps and contact instructions.
Auditing: Each action is recorded in the system for compliance and analytics purposes. The logs include user identification, action type, relevant details, and timestamps. Logging operates on a best-effort basis and will not interrupt user flows if the logging system is temporarily unavailable.
Configuration: Email service API key and sender email address must be configured. Payment processor API key must be set for subscription and coupon operations. Billing portal is used for account management.
Details the user interface components and interaction flows within the Manage Subscription page, including dialog behaviors and user experience patterns.
Dashboard → Account → Settings → Manage Subscription → Cancel Subscription

Explains the specific retention mechanism for trial users when they select the "Extend Trial" option, including the 7-day extension process, database updates, and user communication flow.

Describes the immediate cancellation process when users select "Continue to Cancel", including Stripe subscription termination, local state updates, and webhook handling for redundancy.
When a user chooses to continue with cancellation, their subscription is immediately terminated through the Stripe API. This triggers a cascade of system updates, including changing the user's account status and subscription flags in our database to reflect the cancelled state. The system then sends a detailed confirmation email to the user containing important information about the cancellation, including when their access will end, how to download any data if needed, and instructions for reactivating their subscription in the future if desired.
To ensure reliability, we implement a backup system using Stripe webhooks. These webhooks automatically process subscription state changes and can trigger additional notifications if needed. This redundancy helps maintain consistency between Stripe's subscription state and our local database, even in cases where the primary cancellation flow encounters issues. Every cancellation action is carefully logged in our audit system, recording the user ID, timestamp, and specific details of the cancellation for compliance and analytics purposes.
For paying customers who are offered the one-month free retention option, our system automatically generates and applies a one-time 100% discount coupon to their next invoice through Stripe. This effectively makes their next billing cycle free ($0). The user receives a branded confirmation email that clearly explains the terms of this offer, specifically emphasizing that regular billing will automatically resume after the free month unless they choose to cancel beforehand. Like all significant account actions, this retention offer and its acceptance are recorded in our audit logs for future reference and analysis.
Provides a comprehensive testing checklist to verify that all cancellation and retention flows work correctly across different user states and scenarios.