Why RevenueCat Apps Need Their Own Email Layer
RevenueCat is the source of truth for who is subscribed, but it does not talk to your users. Apple and Google send a receipt and, in some regions, a renewal notice. Everything else is up to you: the reminder before a trial converts, the note that a card failed, the question to someone who just turned off auto-renew, the offer to someone who left two months ago.
Most subscription apps handle this by wiring RevenueCat webhooks into a customer engagement platform such as Braze or Customer.io, or by writing a webhook server that calls an email API. Sequenzy replaces both with an integration built for exactly these events. If you are still choosing tools, our guide to email marketing for subscription apps covers the full program.
| RevenueCat webhook | Sequenzy event | Tag change | Email to send |
|---|---|---|---|
| INITIAL_PURCHASE (trial) | saas.trial_started | adds trial | Welcome and first-value tips |
| (scheduled, 3 days before end) | saas.trial_will_end | none | Trial ending reminder |
| RENEWAL (trial conversion) | saas.trial_ended + saas.purchase | removes trial, adds customer | Thank you and next feature |
| INITIAL_PURCHASE / RENEWAL | saas.purchase | adds customer | Receipt-style welcome or nothing |
| BILLING_ISSUE | saas.payment_failed | adds past-due | Update your payment method |
| CANCELLATION | saas.cancelled | adds cancelled | Ask why, make a save offer |
| CANCELLATION (refund) | saas.refund | adds refunded | Feedback request |
| EXPIRATION | saas.churn | adds churned | Win-back track |
The Trial Reminder Apple Does Not Send
App store trials convert silently. There is no RevenueCat webhook a few days before the end of a trial, because the stores do not send one. Sequenzy schedules its own saas.trial_will_end event 3 days before each trial's end date, based on the expiration RevenueCat reports.
That one email matters more than it looks. Users who are reminded and stay are less likely to request a refund, and users who were going to cancel anyway do it without a one-star review about surprise charges. Pair the email with a push notification the day before, and show the plan they are about to keep with the features they actually used.
Billing Issues Are Revenue You Can Still Save
When a renewal fails, Apple and Google retry the charge for days and may give the user a grace period with full access. RevenueCat reports this as BILLING_ISSUE. Sequenzy turns it into saas.payment_failed and tags the contact past-due if they were a paying customer.
App subscribers cannot update a card inside your app. The email has to send them to the right place: Settings, then their name, then Payment and Shipping on iOS, or Payments and subscriptions in the Play Store on Android. The contact's revenuecatStore attribute lets you show the right steps to each user. When the retry succeeds, the next purchase event removes the past-due tag, so the sequence can end as soon as the payment goes through.
Cancellations Leave Time to Ask Why
A RevenueCat CANCELLATION usually means the user turned off auto-renew. They keep access until the end of the period, so you have days or weeks before the subscription actually ends. Sequenzy tags the contact cancelled and records the cancel reason on the event.
Use that window for a one-question email ("What made you cancel?") that people can answer with a reply, then a recap of what they would lose. If the user turns auto-renew back on, RevenueCat sends UNCANCELLATION and Sequenzy clears the pending cancellation. When the period ends, EXPIRATION becomes saas.churn, the tags move to churned, and your win-back sequence takes over.
Segment on Subscription Data
Every matched contact carries the subscription state RevenueCat reported:
| Attribute | Example use |
|---|---|
| mrr | Prioritize high-value subscribers in save offers |
| ltv | Exclude long-time subscribers from discount offers |
| billingInterval | Find monthly subscribers for annual upgrade campaigns |
| billingPeriodEnd | Time reminders around the next renewal |
| revenuecatStore | Show App Store or Google Play instructions |
| trial_ends_at | Countdown copy in trial emails |
Combine these with events from your app, sent through the Sequenzy mobile SDKs, and you can target segments like "trial users who never completed a workout" or "annual subscribers who stopped opening the app" with smart segments.
Email, Push and In-App From the Same Events
RevenueCat apps live on the phone, so email should not be the only channel. Sequenzy ships SDKs for Swift, Kotlin, React Native and Flutter that register push tokens and show in-app messages. Push and in-app messages are steps in the same sequences as your emails and are unlimited on every plan.
A billing issue flow might send an email immediately, a push the next morning, and an in-app banner the next time the user opens the app. Each step can check whether the purchase already arrived and stop early. Build it visually in the automation builder or describe it in plain English with AI sequences.
What You Need to Know Before Connecting
- Users need an email. Sequenzy cannot email anonymous users. Call
Purchases.shared.attribution.setEmail()(or your SDK's equivalent) or set$emailfrom your backend after sign-in, or use your login email as the app user ID. - No historical import. Subscribers appear as RevenueCat sends new events for them. Import a CSV of existing users if you need them sooner.
- Use the Production environment. Sandbox purchases are processed like real ones, so point the webhook at production events only.
- One subscription source per app. Do not connect RevenueCat and Superwall or Adapty for the same app, or purchases count twice.
- Revenue is gross. Amounts include store fees and tax.
The full setup, including HMAC signing and field-by-field mapping, is in the RevenueCat integration docs. For the webhook side in more depth, read how to turn RevenueCat webhooks into lifecycle emails.