Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.brew.new/llms.txt

Use this file to discover all available pages before exploring further.

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.

How it works

  1. Brew mints a unique webhook URL for your brand and you paste it into your RevenueCat Dashboard webhook configuration.
  2. RevenueCat doesn’t sign request bodies — instead you give them an Authorization header value (a shared secret you generate). On every webhook Brew constant-time compares the Authorization header against the stored secret.
  3. For each verified event Brew (a) starts every matching automation 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

Generate a shared Authorization secret

Run openssl rand -hex 32 to generate a random 32-character secret. RevenueCat does NOT sign request bodies — it echoes this Authorization header value back on every webhook, and Brew constant-time compares it on receipt.
3

Add the webhook in RevenueCat

Open app.revenuecat.com, go to Integrations → Webhooks → + Add new configuration, and configure:
  • Webhook URL — the Brew URL from step 1
  • Authorization header — the secret from step 2 (a Bearer <secret> prefix is OK; Brew strips it before comparison)
  • Environment — Production, Sandbox, or both as needed
Click Save.
4

Paste the same secret into Brew

Paste the secret from step 2 into the Brew connect form and click Connect. Brew constant-time compares the Authorization header on every webhook against this value.
5

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, recheck the Authorization header value in both places.
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, RevenueCat events show up as available triggers in the automation builder. Open the Manage tab in the RevenueCat integration to enable the specific events you want to fire automations.

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

GoalRevenueCat event
Welcome to premiumINITIAL_PURCHASE
Receipt + 1-year loyalty milestoneRENEWAL
Thank-you for one-time purchasesNON_RENEWING_PURCHASE
Tier-change confirmationPRODUCT_CHANGE
Win-back during grace periodCANCELLATION
Welcome back after re-subUNCANCELLATION
Re-engagement after access endsEXPIRATION
Dunning (“update your payment method”)BILLING_ISSUE
Pause acknowledgmentSUBSCRIPTION_PAUSED
Courtesy “your sub was extended”SUBSCRIPTION_EXTENDED
Ops alert on entitlement transferTRANSFER

Personalization

VariableExample
{{@trigger:output.payload.productId}}pro_monthly
{{@trigger:output.payload.store}}APP_STORE, PLAY_STORE, STRIPE, AMAZON, RC_BILLING
{{@trigger:output.payload.environment}}PRODUCTION or SANDBOX
{{@trigger:output.payload.priceUsd}}9.99
{{@trigger:output.payload.currency}}USD
{{@trigger:output.payload.cancelReason}} (CANCELLATION)CUSTOMER_SUPPORT
{{@trigger:output.payload.newProductId}} (PRODUCT_CHANGE)pro_yearly

Troubleshooting

Brew provisions every RevenueCat event disabled-by-default. Open the RevenueCat integration in Brew, go to the Manage tab, and toggle the event ON. Then make sure at least one of your automations uses it as a trigger and is set to 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 Authorization header value RevenueCat is sending doesn’t match the secret stored in Brew. Make sure they’re identical (a Bearer prefix is optional — Brew strips it before comparing).
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 analyze documentation with ChatGPT or Claude for deeper insights.