Catch churn signals before subscribers leave

Monitor subscription churn signals in real time — auto-renew toggles, billing failures, and expirations delivered to Slack with Yeethook.

The Problem


Churn is the silent killer of subscription businesses. By the time you see it in analytics dashboards, the subscribers are already gone. You need early warning signals.


Churn Signals Yeethook Delivers


Yeethook routes four key churn signals to your Slack channel:


1. Auto-Renew Disabled (DID_CHANGE_RENEWAL_STATUS)

The earliest signal. The customer turned off auto-renew but their subscription is still active until expiration. This is your window for retention.


2. Billing Failure (DID_FAIL_TO_RENEW)

Involuntary churn — the customer wanted to stay but their payment failed. Apple retries automatically, but you should monitor the volume.


3. Grace Period Expired (GRACE_PERIOD_EXPIRED)

Apple exhausted all billing retries. The customer loses access. Consider sending a win-back offer.


4. Subscription Expired (EXPIRED)

The definitive churn event. The subtype tells you why:

  • VOLUNTARY — Customer chose to leave.
  • BILLING_RETRY_PERIOD — Payment never succeeded.
  • PRICE_INCREASE — Customer rejected the new price.

How to Set It Up


  1. Sign up at yeethook.com.
  2. Configure App Store Server Notifications via Quick Start.
  3. Create a #churn Slack channel for churn signals.
  4. Route churn events to the channel.

Best Practices


  • Separate churn from revenue: Use #churn for cancellation signals and #revenue for positive events. This prevents alert fatigue.
  • Track subtypes: AUTO_RENEW_DISABLED is actionable. EXPIRED is informational.
  • Measure churn composition: High BILLING_RETRY_PERIOD churn is a payment problem. High VOLUNTARY churn is a product problem.

Related Events

Learn More

Ready to get started?

Set up Yeethook in minutes and start receiving catch churn signals before subscribers leave notifications in Slack.

Get Started Free