Skip to main content

Churn Events

Churn events represent customer cancellations and failed payments. Each event triggers AI-powered recovery workflows.

Event Status Lifecycle

Every churn event moves through a defined lifecycle:

Create a Churn Event

Create a new churn event manually (alternative to webhooks).

Request Body

string
required
Customer’s email address.
string
Customer’s display name.
string
required
Type of churn: cancellation or payment_failed.
string
Free-text reason for cancellation. Drives AI strategy selection.
integer
Monthly recurring revenue in cents.
string
ISO 4217 currency code. Defaults to usd.
string
Subscription plan name.
integer
Days the customer has been subscribed.

Example Request

Example Response


List Churn Events

Retrieve a paginated list of churn events for a project.

Query Parameters

integer
default:"1"
Page number.
integer
default:"20"
Items per page (max 100).
string
Filter by status: new, processing, variants_generated, email_sent, recovered, lost.
string
Filter by type: cancellation or payment_failed.

Example Request

Example Response


Get a Churn Event

Retrieve a single churn event by ID.

Example Request

Example Response


Mark as Recovered

Mark a churn event as recovered when the customer reactivates.

Example Request

Example Response

Stripe and Razorpay integrations automatically mark events as recovered when a payment_succeeded or payment.captured event is received.

Update Cancel Reason

Update the cancel reason on an existing churn event. Useful when the reason is collected after the event is created.

Request Body

string
required
The updated cancel reason.

Example Request

Example Response