Skip to main content

Widget Customization

Customize the look, feel, and behavior of the Windback cancellation widget to match your brand.

Themes

The widget ships with two built-in themes.

Light Theme

Clean white background with dark text. Best for light-themed apps.

Dark Theme

Dark background with light text. Best for dark-themed apps.

Custom Cancel Reasons

By default, the widget shows a standard set of cancel reasons. You can customize these in Settings > Cancel Flow in your dashboard, or pass them programmatically:
When allowFreeText is true, the widget shows a text area for the customer to elaborate. This free-text feedback is sent to Windback and used by the AI to personalize recovery emails.

Event Callbacks

Register callbacks to respond to widget events in your application:

Callback Reference

Called when the customer submits their cancel reason. The data object contains:
string
The selected cancel reason ID (e.g., too_expensive).
string
The human-readable cancel reason label.
string
Free-text feedback if provided. Empty string if not.
string | null
The retention offer the customer accepted, or null if they declined all offers.
string
The customer’s email address.
Called when the customer closes the widget without submitting a cancel reason. No data is passed. Use this to keep the customer on their current plan.

Required Fields

The widget requires certain data to function correctly:
If customerEmail is not provided when calling show(), the widget will display an email input field. For the best experience, always pass the customer’s email programmatically.

Full Example