C
ChurnRecovery
Get started free
🔁

ChurnRecovery + Recurly

Recurly is a mature subscription billing platform popular with media and enterprise SaaS companies. ChurnRecovery extends Recurly with modern cancel flow and retention capabilities.

Setup time
45 minutes
Difficulty
Medium
Avg save rate
20%
Price
Free

Overview

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.

What's included

  • Recurly Push Notification (webhook) support
  • Cancel flow on subscription_canceled events
  • Coupon application through Recurly API
  • Plan change and downgrade support
  • Dunning email sequences for failed invoices
  • Account hierarchy support for B2B
  • Works with Recurly's advanced trial logic

Use cases

Media Subscription Retention

Specialized flows for media/content subscriptions with pause offers

Enterprise Account Saves

Escalate enterprise cancellations to account managers automatically

Volume Discount Offers

Offer volume pricing via Recurly coupons to at-risk customers

Trial-to-Paid Conversion

Rescue trial users who cancel before converting

Code examples

Real code for your Recurly integration. Copy and customize.

Installbash
npm install @churnrecovery/recurly
Initializejavascript
import 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,
  }
})
Handle Recurly webhookjavascript
// 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 })
}

Setup checklist

  1. 1Install @churnrecovery/recurly via npm
  2. 2Add Recurly API key and subdomain to ChurnRecovery
  3. 3Configure Push Notification URL in Recurly → Integrations → Push Notifications
  4. 4Enable canceled_subscription and failed_payment notifications
  5. 5Test with Recurly sandbox
🚀

Ready to get started?

Free forever. No credit card. Set up in 45 minutes.

Get early access →

Stop losing customers you could keep

Most SaaS companies recover 20–30% of would-be churners with cancel flows. ChurnRecovery makes this free for Recurly users.

Get early access — it's free