How It Works
The complete lifecycle of a RetainQ retention flow.
The Customer Journey
- Trigger — Customer clicks your cancel/unsubscribe button
- Intercept — RetainQ widget opens instead of your cancellation page
- Email — Collects their account email (or auto-identified via script)
- Reason — Asks why they want to cancel (single-choice survey)
- Offer — Shows a personalized retention offer based on their reason
- Decision — Customer accepts or declines the offer
- Outcome — Accept: you get notified to fulfill. Decline: redirected to cancel URL.
What Happens Behind the Scenes
Session Created
Every time the flow opens, a flow_session is created. This tracks the customer's journey through the flow, their answers, and the final outcome.
Customer Tracked
The customer's email is matched against existing records. If they've been through the flow before, their churn risk score updates. Repeat cancellers are flagged.
Offer Presented
The offer shown depends on how you've configured your flow. In Simple mode, each cancellation reason maps to a specific offer. In Advanced mode, you can use condition nodes for complex branching.
Notifications Fired
When a customer accepts an offer or completes cancellation, you receive notifications via email and/or webhook (configurable in Settings → Notifications).
Manual Fulfillment (V1)
In the current version, offers are not auto-applied to any billing provider. When a customer accepts a "20% off" offer, you receive a notification and need to manually apply the discount in Stripe/Paddle/your billing system. Billing integrations are planned for V2.
Data & Privacy
- All data is scoped to your workspace — no cross-workspace sharing
- Customer emails are stored for tracking but never shared externally
- The AI features only analyze your own workspace data
- You can delete customer data at any time from your dashboard