Loom cancel flow · 2023
Graceful goodbyes
I redesigned Loom’s cancel flow on the principle that being straight with people about what they were giving up, and offering them a smaller plan instead of fully leaving, would retain customers better than any dark patterns would.
1 · Ask before offering Nine reasons, checkboxes rather than radio buttons, because people leave for more than one reason at a time. Loom’s checkboxes had been plain rows until this one; setting each into a filled row made the list easier to scan and brought it up to date. Nothing is pitched yet — what someone selects here decides what the next screen offers.
2 · A smaller plan The offer is built from this account’s own activity: five people have not recorded anything in thirty days, so drop those seats and the bill goes to $30 a month.
3 · The alternative is a quick action Taking the offer opens the member list, with the new bill and the consequences updating beside it as seats are unchecked.
4 · What you are actually giving up Four cards, each with this workspace’s real numbers rather than a feature list: 28 videos down to a limit of 25, unlimited length down to five minutes, five Creators downgraded, and the tools that stop working. Complete cancellation is the main solid button.
5 · Leave the door open, and say where it is The exact date access changes, what happens after it, and one line saying the decision can be undone from Plan and Billing.
What happened
- Praised publicly
- users posted about the cancel flow, which essentially never happens to a cancel flow
- +35% MRR
- retained from the same cohort, A/B tested against the old flow
- Adopted twice
- the cards became the pattern for Loom’s other retention surfaces, and a year later Atlassian Commerce rebuilt their own cancel flow from the designs and docs I handed over
What it replaced
The old flow was standard. It listed what you would lose, but did not offer any alternatives. The survey arrived after the decision had been made, so it collected data for Loom and changed nothing for the customer. The exit was a text link sitting underneath the main button to keep your plan.
1 · Are you sure? Keep my current plan is the solid one and Continue with cancellation is a text link underneath it. Removing this pattern was the point.
2 · The survey, at the end In the new flow this screen moved to the front, where the answers decide what gets offered.
3 · Sorry it didn’t work out “Next billing cycle” was vague. The replacement gives the exact date and one line saying the decision can be undone from Plan and Billing.
The bet
Three principles drove the design changes:
- Warmer language. Written to sound like a person rather than a policy.
- Show what they lose, in their own numbers. Specific figures that feel personal, instead of a giant feature matrix.
-
No dark patterns. The mandate was retention and the scope was mine, and the first thing I did with that scope was narrow it: no buried cancel button, no guilt copy, no discount that makes leaving feel expensive. Which meant hitting a retention number with my hands tied.
The constraint is why we found the seat-reduction offer. Banning discounts forced us to ask why people were actually leaving, and a chunk of them weren’t leaving over value at all — they were paying for seats nobody used. The save offer became “pay us less,” not “here’s a discount if you stay.”
What it took to ship
- Taking a hypothesis to data science rather than waiting for a report — the seat-waste finding came out of a question I asked them to test, not a deck they handed me
- A/B testing the whole flow against the old one, so the retention claim is measured rather than argued
- Three full content passes on four cards, because they had to tell someone their team was about to lose things without frightening them into a decision or burying the news so politely they missed it
- Handing the designs and the documentation to Atlassian Commerce after the acquisition, who rebuilt their own cancel flow from them a year later
The same card, three ways
Three passes went into four cards. They had to tell someone their team was about to lose things, with real numbers attached, without either frightening them into a decision or burying the news so politely that they missed it.
The first pass states the policy and leaves the reader to work out what it means for them. The second adds their own numbers and a red header, which raises the alarm. What shipped is calmer to look at but much harder to ignore: it leads with the thing you would have to do, then sets your own number against the new limit, 28 against 25, with the limit in red.