Save them before they cancel
Catches people who open the cancel flow but have not finished it, and answers the reason they gave with a pause, a downgrade, a discount or a call.
Authored by Intempt Technologies
Recipe curators
Agentic workflow
Coming soon5 steps Blu runs end to end. It drafts a plan and nothing runs until you approve it.
- 1
Catch cancel intent live
Coming soonBlu builds a step
- 2
Find who is halfway out
Coming soonBlu builds a step
- 3
Write one offer per reason
Coming soonBlu builds a step
- 4
Make one matched offer
Coming soonBlu builds a step
- 5
See which saves actually work
Coming soonBlu builds a step
About this recipe
When to use it
Once cancellation is confirmed, most save offers are too late. This catches the user mid-flow, before they've clicked confirm, and calibrates the offer to their value and stated reason.
What it delivers
When a user starts the cancellation flow but hasn't completed it, fires a contextual save sequence - a pause offer, a downgrade offer, a retention discount, or a human handoff - calibrated by user value and stated cancel reason.
How you prompt this
Describe the outcome in your own words and Blu Agent maps it to this recipe, or run it by name. It drafts a plan first and nothing runs until you approve it.
Tell Blu Agent what you want
“Catches people who open the cancel flow but have not finished it, and answers the reason they gave with a pause, a downgrade, a discount or a call.”
recipe.md preview
Built from the published catalog. Blu Agent's full step prompts load in your workspace when you run it.
Inputs & outputs
What the recipe needs before it runs, and what it leaves in your workspace.
Inputs
- Nothing declared beyond an Intempt workspace. Blu asks for anything else it needs as it goes.
Outputs
How the recipe runs
Blu follows the steps in order and shows you each one before anything goes live.
- 01Catch cancel intent liveCreate an AI-derived attribute 'cancel_intent_signal' on the User object. Computed in real-time. Inputs: (a) visited /cancel or /downgrade page in last 14 days; (b) clicked 'cancel subscription' button (which triggers cancel-modal not cancellation); (c) submitted cancel reason in cancel-flow form without confirming. Output: object with intent_level (browsing / interacting / committing), stated_reason if captured (price / unused / competitor / feature-gap / pause-needed / other), and timestamp. The signal expires after 7 days of no further activity.
- 02Find who is halfway outBuild a segment 'Cancel-intent active' capturing paying users where cancel_intent_signal.intent_level is 'interacting' or 'committing' AND subscription is still active (not yet cancelled, once cancelled, post-cancel-winback takes over). Excludes users on trial (different motion) and users who have already received a cancel-save offer in last 90 days (no spam). Use the result of "Catch cancel intent live".
- 03Write one offer per reasonThis step builds a designed marketing email (HTML). Generate branched save-offer content per cancel reason. (a) Price reason: offer 20% retention discount for 3 months OR downgrade-to-lighter-plan option; (b) Unused reason: offer 60-day pause OR a 1:1 onboarding call to drive activation; (c) Competitor reason: offer a 1:1 call with PM to address feature gaps + competitive comparison sheet; (d) Feature-gap reason: roadmap visibility for the specific missing feature + interim workaround; (e) Pause-needed reason: 1-click pause for up to 90 days (preserves data); (f) Other/no-reason: ask 'what would have made you stay?' + offer 1:1 call. Send-from: the customer's CSM if assigned, else success@ address. Use the result of "Catch cancel intent live", "Find who is halfway out".
- 04Make one matched offerBuild a branched journey triggered when cancel_intent_signal becomes 'interacting' or 'committing'. Branch on stated_reason: each user gets ONE save offer matched to their stated reason. Touch 1 (within 1 hour of intent signal): the matched save offer email. Touch 2 (Day 2, if no engagement): softer follow-up reinforcing the offer. For high-LTV customers (top 10% by ARR), additionally create urgent CSM task at intent detection: human save attempt parallel to email. Exit on: save_offer_accepted (recorded as retention_win event), Subscription canceled (proceed to post-cancel-winback), or 14-day timeout. Use the result of "Catch cancel intent live", "Find who is halfway out", "Write one offer per reason".
- 05See which saves actually workCompose a save-flow dashboard: cancel-intent volume by week, save rate (intent users who DON'T cancel within 30 days), save rate by stated reason (which save offers actually work), save rate by offer type (discount vs. pause vs. downgrade vs. 1:1 call: informs offer strategy), and ARR saved this quarter. Also surface: stated cancel reasons distribution (voice-of-customer for product/pricing teams) and cohorts where save attempts fail consistently (deep churn signal: those segments need product fixes, not save offers). Use the result of "Catch cancel intent live", "Find who is halfway out", "Write one offer per reason", "Make one matched offer".
Install Intempt and run it
- 1
Sign up
Create a free Intempt workspace.
- 2
Connect your data
Add the sources this recipe reads from.
- 3
Ask Blu
Type /pre-cancellation-save in Blu once this recipe is live there.
- 4
Review and approve
Blu builds each step and waits for your OK before anything goes live.
