Recurly is a mature subscription billing platform popular with media and enterprise SaaS companies. ChurnRecovery extends Recurly with modern cancel flow and retention capabilities.
Recurly handles complex subscription scenarios at enterprise scale — volume discounts, gift cards, trial management, and sophisticated dunning. ChurnRecovery complements Recurly by adding the human-facing cancel flow layer that converts would-be churners into retained customers.
Our integration uses Recurly's Push Notifications (webhooks) to detect cancellation intent and payment failures, then applies targeted retention offers via Recurly's subscription API before the churn becomes permanent.
Specialized flows for media/content subscriptions with pause offers
Escalate enterprise cancellations to account managers automatically
Offer volume pricing via Recurly coupons to at-risk customers
Rescue trial users who cancel before converting
Real code for your Recurly integration. Copy and customize.
npm install @churnrecovery/recurlyimport ChurnRecovery from '@churnrecovery/recurly'
const cr = new ChurnRecovery({
apiKey: process.env.CHURNRECOVERY_API_KEY,
recurly: {
apiKey: process.env.RECURLY_PRIVATE_KEY,
subdomain: process.env.RECURLY_SUBDOMAIN,
}
})// pages/api/recurly-webhook.js
import { parseStringPromise } from 'xml2js'
export default async function handler(req, res) {
const parsed = await parseStringPromise(req.body)
const eventType = Object.keys(parsed)[0]
if (eventType === 'canceled_subscription_notification') {
const sub = parsed[eventType].subscription[0]
await cr.handleCancellation({ subscriptionId: sub.uuid[0] })
}
if (eventType === 'failed_payment_notification') {
const sub = parsed[eventType].subscription[0]
await cr.handleFailedPayment({ subscriptionId: sub.uuid[0] })
}
res.json({ ok: true })
}Most SaaS companies recover 20–30% of would-be churners with cancel flows. ChurnRecovery makes this affordable for Recurly users — $20/month, all features included.
Start Free Trial →