Skip to main content

Retention Offers

Retention offers are the incentives Windback shows to customers during the Cancel Flow. Each cancellation reason can have its own offer, so the customer sees something relevant to why they want to leave.

How Offer Matching Works

When a customer submits a cancellation reason through the Cancel Flow, Windback looks up the retention offer configured for that reason. If an active offer exists, it is returned in the API response for your app to display. If no offer is configured (or the offer is inactive), the response returns offer: null and the cancellation proceeds without an intervention.

Offer Types

Windback supports five offer types:

Offer Fields

Dashboard Configuration

You can configure retention offers in the dashboard without writing any code:
  1. Go to Settings > Retention Offers in your project.
  2. Each cancellation reason is listed with its current offer (or “No offer configured”).
  3. Click a reason to create or edit its offer.
  4. Toggle is_active to enable or disable an offer without deleting it.
Use the is_active toggle to run A/B tests — disable an offer for a week and compare cancellation rates.

API Endpoints

List All Retention Offers

Response:

Create or Update an Offer

The :reason path parameter must be one of the eight standard cancel reasons (e.g., too_expensive, missing_features). See the Cancel Flow docs for the full list.

Delete an Offer

Returns 204 No Content on success. After deletion, customers who cancel with this reason will not see an offer.

Example Configuration

Here is a recommended offer for each cancellation reason:

Best Practices

Avoid offering large discounts (40%+) as a default. They set a precedent and can train customers to threaten cancellation for a deal.

Analytics

Retention offer analytics — including acceptance rates, revenue saved per reason, and A/B test results — are coming soon. Today you can view offer outcomes in the Cancel Flow event log in the dashboard.