Skip to main content
Connect RevenueCat so in-app purchase and subscription events fire Brew automations across every billing platform. The same lifecycle email flow can serve Apple App Store, Google Play, Amazon, Stripe, and Web Billing subscribers without per-store glue code.

What You Can Do

  • Trigger automations from RevenueCat events. Welcome new paid customers, win-back during cancellation grace periods, re-engage after expiration, drip dunning on billing issues
  • Auto-sync subscribers into your audience. Every RevenueCat event upserts the subscriber into Brew with revenuecat_* custom fields (revenuecat_subscription_status, revenuecat_product_id, etc.) you can filter and segment on
  • Cover every store with one connection. App Store, Play Store, Amazon, Stripe, Web Billing: RevenueCat normalises receipts, Brew normalises triggers
  • Personalize with product context. Reference plan, price, store, and cancellation reasons inside emails
RevenueCat webhooks require the Pro plan or above. The free / Starter plans don’t ship webhooks.
Every marketing recipient must have opted in to hear from you. Importing or syncing contact data into Brew is not permission to email it. See What You Can Send.

How It Works

  1. Brew mints a unique webhook URL for your brand and you paste it into your RevenueCat Dashboard webhook configuration.
  2. You enable HMAC webhook signing on the RevenueCat configuration and paste the one-time signing secret into Brew. On every webhook Brew verifies RevenueCat’s timestamped X-RevenueCat-Webhook-Signature header against that secret, with a replay-protection window.
  3. For each verified event Brew (a) starts every Live automation whose trigger matches and (b) upserts the subscriber into your audience with revenuecat_* custom fields, using the $email subscriber attribute as the contact’s email.
See How event triggers work for the conceptual flow shared by every event-source integration.

Setup

1

Generate your Brew webhook URL

In Brew, open Integrations, click the RevenueCat card, and click Generate URL. Copy the URL Brew generates.
2

Add the webhook in RevenueCat and enable HMAC signing

Open app.revenuecat.com, go to Integrations → Webhooks → + Add new configuration, and configure:
  • Webhook URL: the Brew URL from step 1
  • Environment: Production, Sandbox, or both as needed
Save, then enable HMAC webhook signing on the configuration. RevenueCat shows the signing secret once, so copy it before closing the dialog.
3

Paste the signing secret into Brew

Paste the signing secret into the Brew connect form and click Connect. Brew verifies the timestamped X-RevenueCat-Webhook-Signature header on every webhook against this secret.
4

Verify it's working

Trigger a sandbox purchase in RevenueCat (test purchase on iOS / Android, or use the Send test event button in the webhook config). Within a few seconds it should appear in the Manage → Recent events panel of the RevenueCat integration page in Brew. If it doesn’t, re-generate the HMAC signing secret in RevenueCat and reconnect Brew with the new value.
RevenueCat doesn’t include user emails on most events by default. Call Purchases.setEmail(email) from your iOS / Android / Web SDK right after sign-in so Brew can resolve the real recipient. Without it, automations fan out to a placeholder address.

Triggering Automations

Once connected, every RevenueCat event below is provisioned automatically and available as a trigger in the automation builder. The Manage tab is a read-only catalogue plus a live Recent events stream, no per-event enable step. Whether an event fires is controlled by whether the bound automation is Live.

Supported Events

Brew supports the following 11 RevenueCat events: Purchase
  • INITIAL_PURCHASE
  • NON_RENEWING_PURCHASE
Subscription
  • RENEWAL
  • PRODUCT_CHANGE
  • CANCELLATION
  • UNCANCELLATION
  • EXPIRATION
  • SUBSCRIPTION_PAUSED (Google Play only)
  • SUBSCRIPTION_EXTENDED
  • TRANSFER
Billing
  • BILLING_ISSUE
CANCELLATION does NOT revoke access. It only signals intent. Use it to drip win-back during the grace period. Wait for the matching EXPIRATION event before deactivating user-facing features.
In chat, say “Send a dunning email when a payment fails” and Brew will scaffold the automation with BILLING_ISSUE pre-selected.

Common Patterns

Personalization

These resolve as merge tags in the email body, subject line, and preview text. Use a fallback wherever an empty value would read badly, like {{ firstName | there }}.

Troubleshooting

Open the canvas and confirm at least one automation bound to this event is set to Live (not Draft). The Brew integration’s Manage → Recent events panel confirms the webhook is arriving, if it isn’t there, the issue is upstream (signing-secret mismatch, RevenueCat plan tier). If the event is there but no email sent, the only remaining gate is automation.published.
RevenueCat doesn’t carry user emails by default. Set the $email subscriber attribute in your app’s RevenueCat SDK after sign-in: Purchases.setEmail(email) on iOS / Android / Web. Brew uses that attribute as the recipient on every event for that subscriber.
The HMAC signature on the webhook doesn’t verify against the signing secret stored in Brew, usually because the secret was re-generated in RevenueCat without reconnecting Brew, or the webhook was set up without HMAC signing enabled. Re-generate the signing secret in RevenueCat and reconnect Brew with the new value.
CANCELLATION only signals intent: RevenueCat doesn’t revoke access yet. Drip a win-back email on CANCELLATION and only revoke features on the matching EXPIRATION event.
RevenueCat webhooks require the Pro plan or above. Free / Starter accounts won’t deliver webhooks even if the configuration looks correct in the dashboard.

Requirements

  • A RevenueCat account on the Pro plan or above (free and Starter plans don’t ship webhooks)
  • Permission to create webhook configurations in the RevenueCat dashboard

Need Help?

Our team is ready to support you at every step of your journey with Brew. Choose the option that works best for you:

Search Documentation

Type in the “Ask any question” search bar at the top left to instantly find relevant documentation pages.

ChatGPT/Claude Integration

Click “Open in ChatGPT” at the top right of any page to explore it further with ChatGPT or Claude.