Moving from ProfitWell Retention to RRLabs without interrupting billing
ProfitWell Retention (now part of Paddle) is a churn-reduction product covering both involuntary churn recovery and cancellation salvage.
Why teams compare the two
- Involuntary churn needs channels beyond email.
- Retry policy should differ per decline code.
- Recovery attribution should be tied to a provider-confirmed charge.
ProfitWell Retention vs RRLabs, side by side
| Capability | ProfitWell Retention | RRLabs |
|---|---|---|
| Channel reach | Email-based recovery alongside in-product cancellation flows. | Multi-channel: email (Resend or SendGrid), WhatsApp (Cloud API or Twilio) and SMS (Twilio), chosen per attempt. |
| Recovery timing | Sequence-based recovery campaigns. | Retry timing is derived from the decline reason — insufficient_funds, expired_card and 3ds_required each get a different schedule, with quiet hours respected in the customer's timezone. |
| Copy tuning | Templated campaign copy. | Message copy is generated per attempt from the decline reason, amount at risk and customer tenure, with a deterministic template fallback if the AI provider is unavailable. |
| Pricing model | Performance-based on retained or recovered revenue. | Performance-aligned: a monthly base plan plus a success fee charged only on provider-confirmed recovered revenue. Current figures live on the pricing page. |
| Implementation | Connect the billing platform and enable retention features. | Connect your billing provider with read-only credentials and point one webhook at RRLabs. No code changes to your checkout and no migration of subscriptions. |
| Attribution | Reported against the connected billing platform. | A recovery is only counted when the payment provider confirms the charge succeeded — the provider stays the source of truth for every dollar. |
ProfitWell Retention details reflect that vendor's own public product documentation and may change. RRLabs details describe what is implemented today.
What happens after a payment fails
T+0s
Payment failed
Provider webhook received and verified
T+2s
AI analysis
Decline reason classified, amount at risk scored
T+5s
Dynamic email
Copy generated for that decline code and customer
Day 2
Smart retry
Retry scheduled only when the decline code is retryable
Day 2
WhatsApp push
Second channel used when the email went unanswered
On success
Recovered
Counted only when the provider confirms the charge
Timings describe the configured workflow, not a guaranteed outcome. Every step is skipped when the decline reason makes it counter-productive.
Switching without a billing interruption
Step 1
Run RRLabs alongside ProfitWell Retention
Connect your payment provider to RRLabs with read-only credentials and leave ProfitWell Retention switched on. RRLabs ingests the same failure webhooks and builds its recovery view without sending anything yet.
Step 2
Move one segment across
Enable outbound recovery for a single plan, currency or decline reason. Both systems keep reading from the provider, so nothing about the active subscription or its billing cycle changes.
Step 3
Turn ProfitWell Retention messaging off
Once provider-confirmed recoveries are landing in RRLabs for that segment, disable ProfitWell Retention's outbound dunning and widen the RRLabs scope. Historic attribution stays in ProfitWell Retention — RRLabs never rewrites past invoices.
Frequently asked questions
- Can RRLabs handle voluntary churn too?
- No. RRLabs only handles involuntary churn — subscriptions lost because a payment failed. Cancellation flows and win-back campaigns are outside its scope.
- Should I keep a retention tool alongside RRLabs?
- Often yes. Cancellation salvage and failed-payment recovery are different problems, and running a retention product for the former with RRLabs for the latter is a common split.
Run RRLabs alongside ProfitWell Retention first
Connect your payment provider with read-only credentials. RRLabs reads the same failure events and shows you what it would have done before it sends anything.
Get early access