When a user cancels their account, that moment carries information most product teams never capture. They know someone left, but not why, not what tipped the decision, and not whether it was something fixable.
A well-timed churn survey changes that. Shown at the right moment, it’s one of the most direct signals you’ll ever get about product gaps, pricing friction, or experience failures. And because the user is still in the product when they see it, responses tend to be honest and specific.
Userback gives you two ways to set one up. Path A uses a survey share link, no developer required. Path B uses the JavaScript SDK to trigger the survey programmatically at the exact cancellation moment, with richer user context attached to every response.
💡 Tip: Response rates drop sharply if you ask too late. Place the link on the cancellation confirmation page itself, not just in a follow-up email. The closer to the moment of cancellation, the more honest and useful the response.
Before You Start: Create your Survey
Whichever path you choose, start by creating your churn survey in Userback.
Go to Surveys in your Userback dashboard and click Create Survey.
Select the Churn template from the template library.
Review the default questions and customize them for your product.
Give your survey a clear internal name.
Save and activate your survey. You’ll come back to it in the next step.
💡 Suggested questions:
What’s the main reason you’re leaving? (multiple choice + open text)
Was there anything we could have done to keep you? (open text)
Would you consider coming back in the future? (yes / no / maybe)
💡 Tip: Keep it to 2–3 questions max. A user who has just decided to cancel is already disengaged so a long survey will go unanswered.
Path A: No-Code: Add a Survey Link to Your Cancellation Flow
This is the fastest way to get churn feedback running. No developer required.
Every Userback survey has a unique share link that opens the survey in a standalone page hosted by Userback. You embed that link wherever a user lands after they cancel, a confirmation page, a confirmation email, or both.
📘 Note: The share link opens your survey in a standalone page hosted by Userback. No installation required on your end.
Get Your Survey Share Link and Link Your Cancellation Confirmation
Open your churn survey in Userback.
Click the ellipsis menu (three dots) and select Share. Copy the share link.
Add the share link to the confirmation page or email your users see immediately after cancelling. Here are two examples:
💬 Cancellation confirmation page: “Your account has been cancelled. Before you go, we’d love to know why. It takes less than a minute and helps us build a better product.” Share your feedback →
💬 Cancellation confirmation email: “We’re sorry to see you go. If you have a moment, tell us what we could have done better. Your feedback goes directly to the product team.” Take the survey (2 questions) →
Path B: JavaScript SDK: Trigger the Survey Programmatically
This path gives you more control, the survey appears at exactly the right moment in your cancellation flow, and every response is automatically enriched with user context. It requires a developer to implement.
The benefit over Path A is precision and data quality. Rather than hoping users click a link after cancelling, the survey is shown in-app at the moment they confirm cancellation, when the experience is freshest. And because you’re passing user data alongside the trigger, you can filter responses by plan type, tenure, or any other attribute when you analyze them.
📌 Plan requirement: The JavaScript SDK is available on the Business plan and above.
Get Your Survey ID and Programmatically Trigger the Survey on Cancellation
Open your churn survey in Userback.
Click the ellipsis menu (three dots), select Share, and copy the Survey ID.
Use Userback.openSurvey(survey_id) to trigger the survey at the moment a user confirms cancellation, for example, when they click the final confirm button in your cancellation flow. See the full Userback Dev Docs for more help.
// Trigger on cancellation confirmation
function onCancellationConfirmed() {
Userback.openSurvey('YOUR_SURVEY_ID');
}
💡 Recommended: Call Userback.identify() before openSurvey() so each response is linked to the user who cancelled. Without it, responses arrive without user context and are harder to analyze. See the User Identification docs.
Optional Extra: Attach Additional Context with setData()
If you’re on the Business plan or up, you can use Userback.setData() to attach session-specific metadata to each response. This is useful for capturing information that isn’t part of the user’s permanent profile, like which feature they last used, or how many days have passed since they last logged in.
function onCancellationConfirmed() {
Userback.setData({
last_feature_used: 'session_replay',
days_since_last_login: 12
});
Userback.openSurvey('YOUR_SURVEY_ID');
}
💡 Tip: Pass attributes that will help you segment churn responses later, plan type, tenure, and feature usage are the most valuable. If your cancellation flow includes a reason-selection step before the survey fires, you can also pass that as a setData() value to enrich your analysis further.
Analyzing Your Churn Survey Responses
Once responses start coming in, go to Surveys in your Userback dashboard and open your churn survey. You can:
Filter responses by user attributes: plan, tenure, feature usage, if you used identify() or setData() in Path B
Use AI Assist to automatically categorize responses by theme, so you don’t have to read every entry
Track patterns over time: a spike in a particular cancellation reason often signals a product issue worth investigating
Review churn survey responses as part of your regular product cycle, not just when churn spikes. A steady trickle of ‘too expensive’ responses means something different to a sudden surge. One is a pricing positioning problem. The other may signal a value delivery issue
Related Articles:

