Cancel widget
One tag on the page that already has your cancel button.
It runs inside your product, in your brand, the moment someone moves to cancel. It renders in its own sealed layer, so your styles and ours never collide.
Your cancel screen today
With Tenure
Today
The cancel button goes straight to a confirmation
With Tenure
A save flow renders in your own brand, and the cancel path stays open
Today
A survey is the only save attempt
With Tenure
The offer is chosen per subscriber from your library, priced from your margins
Today
Everyone sees the same coupon
With Tenure
Discount-seekers and low-value accounts pass through without one
Today
A cancellation in support chat is a lost cause
With Tenure
Your agent is handed one offer and the caps it cannot cross
Today
A failed card quietly ends the subscription
With Tenure
We chase the payment, retry it, handle the bank check, and offer something on the third try
Today
Churn is a number at month end and the reasons are guesswork
With Tenure
Reasons are segmented, and every offer carries what it cost you
What most cancel screens do today, against what this one does.
You do not have to wait for the click
A cancel button is the last signal, not the first. The widget can fire before anyone presses anything.
- Name a path like /account/cancel and the flow runs when someone lands on it, button or no button
- A billing-page signal you opt into
- Usage and recency feed the decision, so someone who stopped showing up is treated differently
- Path and title only — never query strings, form values or keystrokes. One attribute switches it off
It looks like you built it
Brand inheritance is the default, not a theming project.
- Reads your page's colours, type and radius
- Or set eleven CSS variables and control it exactly
- Its own sealed layer: your styles and ours can never collide
- Per-flow themes, and templates per vertical
The cancel path always completes
A tool that can trap someone on a cancel screen is a legal problem, not a feature.
- If Tenure is slow or unreachable, the button does what it did before
- Cancel stays visible and reachable at every step
- The handoff fires once, never after a confirmed cancellation
- Your page can take the handoff and Tenure stands down
Everywhere else too
Not every cancel happens on a page you control.
- A hosted flow you can link from email, an account page or a native app
- iOS, Android, React Native and Flutter clients open it in a webview
- Signed identity, so an offer never reaches someone who cannot claim it
- Test mode, against your own account first
How it works
Four steps, and you are live
Put the tag on the page
One script tag, one attribute on the button you already have.
It decides who gets an offer
Discount-seekers and low-value accounts pass straight through to cancel.
It makes the offer, in your brand
One offer, matched to their reason and priced from your margins.
You see what it earned
Every attempt lands in one report with what it saved and cost.
What holds, always
Things that are true of every install
These are not configuration. They hold whatever you set up, and the first one holds even when we are the thing that is broken.
- The cancel path always completes, even when Tenure is the thing that is broken
- Its own sealed layer, so your styles and ours never collide
- Inherits your colours, type and radius; eleven CSS variables if you prefer explicit
- Config cached at the edge; nothing blocks your page rendering
- Templates for streaming, fitness, dating, SaaS, news and gaming
- Test mode runs end to end without touching a real subscriber or charge
The rest of it
Everything reports to the same place.
Setup from your app
AI reads your site and billing, then writes the flow.
AI agent access
Give a support agent the offer, and the limits it may not cross.
Offer reporting
Which discounts are worth what they cost you.
Payment recovery
Failed cards, and the subscriptions they quietly end.
Win-back
The ones already gone, and when it is worth asking again.
Try it against your own account first.
Test mode runs the whole flow end to end without touching a real subscriber or a real charge.