Billing Providers

Stripe

Integrate Churnkey with your Stripe account

How to Connect Stripe and Churnkey

After you register for a Churnkey account, you can connect it to your Stripe account on our Settings | Billing Provider page.

Connect Stripe

Once your account has been successfully connected, you should see something like this:

Connected stripe account in Churnkey

How is the Stripe connection used?

I. Add discounts to your cancel flow

đź’ˇ
Coupons in Test Mode If you want to test coupons in your flow in test mode, please create coupons in your Stripe test mode with IDs that match the coupons that you’ve selected to be part of your cancel flow. For instance, if you have added a coupon with id 40_off_2_months in Stripe live mode, this coupon will also need to exist in your Stripe test account to use in Churnkey’s test mode.

After you connect Stripe (live mode), you’ll be able to offer your customers temporary discounts as part of your cancel flow. Please note that you will only see your Stripe coupons after you’ve connected your live Stripe account. We only pull in coupons from the live account, not your Stripe test account.

  1. In the “Offers” tab of the flow builder, choose “Apply Stripe Coupon”
  2. Choose the coupon you’d like to offer customers in the dropdown labeled “Stripe Coupon”

Screenshot of coupon

II. Personalize cancel flows with customer attributes and segmentation

Use customer segmentation to reduce voluntary churn with targeted cancel flows. With segmentation, you can target specific customers based on subscription attributes and serve up unique cancel flows for each of them. After all, someone who signed up yesterday should be spoken to differently from a customer who’s been a paying subscriber for years.

🚀 Customer Segmentation Launch Details

Available attributes for segmentation

  • Plan
  • Price
  • Subscription age
  • Subscription creation date
  • Billing interval (monthly, annual, etc)
  • Trial vs Active subscription

III. Updating customer subscriptions on your behalf

When a customer goes through your cancel flow and (hopefully) accepts a pause or discount offer, Churnkey takes care of the billing updates for you.

Churnkey is able to perform the following actions on your behalf

  1. Pause a subscription
  2. Apply a discount
  3. Change the subscription plan
  4. Cancel a subscription
  5. Create a new subscription via reactivation campaigns

We'll look at each one of these in a little bit more detail.

Pause Subscription

Churnkey uses Stripe's built-in pause feature which will update the subscription's pause_collection[behavior] to mark_uncollectible. The resumes_at field will automatically be set by Churnkey depending on the length of the pause selected.

You can specify the maximum pause length allowed by customers while configuring your offboarding flow.

When a customer chooses to temporarily pause their account, if a subscription ID was provided when initializing the Churnkey embed, the subscription under that ID will be canceled. If just a customer ID is provided, each active subscription will be paused.

If you would like to implement a custom function for handling pause events, you can do so using the handlePause callback (see Custom Callbacks).

Apply a Discount

In the Churnkey offer builder, you can offer specific discounts to customers. These discounts are populated based on the coupons that you have created in your Stripe account.

When a customer accepts a discount, if a subscription ID was provided when initializing the Churnkey embed, the coupon will be applied to that subscription with stripe.subscriptions.update. If just a customer ID is provided, that coupon is applied directly to the Stripe customer account via stripe.customers.update.

If you would like to implement a customer function for applying discounts, you can do so using the handleDiscount callback (see Custom Callbacks).

Plan Change

The specific subscription is updated to the new plan via stripe.subscriptions.update . You can optionally set to not prorate changes.

Cancel Subscription

Churnkey can handle canceling your customer's subscription for you. By default, a customer's subscription will be set to cancel at the end of the current period, but this behavior can be modified to cancel a user's subscription immediately.

When a customer chooses to cancel their account, if a subscription ID was provided when initializing the Churnkey embed, the subscription under that ID will be canceled. If just a customer ID is provided, each active, delinquent, and past due subscription will be canceled.

Under the hood, Churnkey follows Stripe's best practices on canceling:

I. If not using subscription schedules:

  • For active and trialing subscriptions, they are set to cancel at the end of the term via stripe.subscriptions.update(subscriptionId, { cancel_at_period_end: true }) . If you have set subscriptions to cancel immediately in your cancel flow settings, subscriptions will cancel immediately via stripe.subscriptions.del .
  • Inactive customer subscriptions are always canceled immediately via stripe.subscriptions.del.

II. If using subscription schedules

  • For active and trialing subscriptions, the subscription schedule is first released via stripe.subscriptionSchedules.release , and then is set to cancel at the end of the term via stripe.subscriptions.update(subscriptionId, { cancel_at_period_end: true }) . If you have set subscriptions to cancel immediately in your cancel flow settings, subscriptions will be released from their schedule and then canceled immediately via stripe.subscriptions.del .
  • Inactive customer subscriptions are canceled immediately via stripe.subscriptionSchedules.cancel

If you would like to implement a customer function for canceling subscriptions, you can do so using the handleCancel callback (see Custom Callbacks).

Creating New Subscriptions via Reactivations

If you are using Churnkey Reactivation campaigns, Churnkey will handle reactivating your customer's subscription. When a customer chooses to reactivate their account, Churnkey will create a subscription identical to the one that was previously canceled that triggered the reactivation campaign. This is done with stripe.subscriptions.create. All subscription data, including metadata, will be copied over to the new subscription.

IV. Calculating boosted revenue

Once you’ve connected your Stripe account, you’ll be able to track customer reactivations and boosted revenue - that’s all the extra revenue you receive from customers who stayed on instead of canceling.

You can track boosted revenue on your Churnkey dashboard.

Screenshot of recovered revenue