Skip to main content
Connect Stripe to Brew so subscription and payment events trigger automations. Send onboarding when a customer subscribes, recover failed payments with dunning sequences, win back churned users.

What you can do

  • Trigger automations from Stripe events. Kick off email flows when subscriptions are created, payments fail, customers cancel
  • Auto-sync customers into your audience. Every customer.* and subscription event upserts the customer into Brew with stripe_* custom fields (stripe_customer_id, stripe_subscription_status, stripe_subscription_plan, stripe_lifetime_value_cents, stripe_renews_at, etc.) you can filter and segment on
  • Backfill historical customers with one click. After connecting, use the Sync customers button to import every Stripe customer in the background
  • Personalize with billing context. Reference plan, amount, and customer details inside emails
  • Recover revenue. Dunning and win-back automations fire automatically without you wiring up webhooks

How it works

  1. You click Connect with Stripe in Brew — a one-click OAuth flow (“Stripe Apps OAuth”). Brew never sees your Stripe API keys.
  2. Brew automatically registers a Connect webhook in your Stripe account on completion. No manual webhook setup, no URL to paste.
  3. Stripe signs every webhook with its signing secret. Brew verifies the signature with the official Stripe SDK on receipt.
  4. For each verified event Brew (a) starts every Published automation whose trigger matches, (b) upserts the Stripe customer into your audience with stripe_* custom fields, and (c) optionally syncs the customer’s first/last name (toggle per-event in Manage → Settings → Sync customer name if you’d rather keep contact names you own).
See How event triggers work for the conceptual flow shared by every event-source integration.

Setup

1

Click Connect with Stripe in Brew

Open Integrations in Brew, click the Stripe card, and click Connect. You’ll be redirected to Stripe to authorize the connection.
2

Approve the OAuth scopes

Brew requests read access to customers, subscriptions, invoices, charges, refunds, payment intents, quotes, prices, and checkout sessions. You can revoke access at any time from your Stripe Dashboard.
3

Brew provisions everything else

Once Stripe redirects you back, Brew automatically registers the Connect webhook and provisions the 22 supported event rows on this brand. No manual webhook setup. No per-event toggle to flip. Whether any individual event actually fires emails is gated by the bound automation being Published.
4

Explore the Manage tab

The Manage tab has four sub-tabs:
  • Sync — backfill every historical Stripe customer into your Brew audience in the background.
  • Events — live feed of every Stripe webhook this brand has received, useful for confirming the integration is wired up.
  • Settings — read-only event catalogue plus a per-event Sync customer name Switch (lets you opt OUT of letting Stripe overwrite contact first/last names you may have authored elsewhere). Triggers don’t have an enable/disable toggle — they fire as long as a Published automation is wired to them.
  • Templates — one-click starter automations (welcome, trial-end, failed-payment recovery, win-back) preloaded into chat.
5

Build + publish your first automation

Open the canvas, create an automation, pick a Stripe event as the trigger, and click Publish. The moment Stripe fires that event for any of your customers, Brew runs the automation.
6

Verify it's working

Trigger a test event (in Stripe test mode: create a 100% off coupon, place a subscription on yourself, or use Send test webhook from the Stripe Dashboard’s webhook page). Within a few seconds it should appear in Manage → Events on the Stripe integration page in Brew, and any Published automation bound to that event runs against the test payload.
Brew only listens for events. It can’t create charges, refund payments, or modify subscriptions.

Triggering automations

Connecting Stripe provisions all 22 supported events as triggers in one step — there’s no per-event opt-in. Each event row sits dormant until you publish an automation bound to it. To start firing emails from a Stripe event:
  1. Open the automation builder and create a new automation.
  2. Pick the Stripe event you want from the trigger picker (e.g. customer.subscription.created).
  3. Build the flow: filters, delays, sendEmail nodes, and any branching.
  4. Hit Publish. The next matching event will fire the automation.
Saving an automation as a Draft is fine for iteration — Brew records the matching events under the integration’s Manage → Events sub-tab but won’t run any nodes. Hitting Unpublish later pauses every flow bound to that trigger without losing your work.
Why no per-event toggle? Triggers in Brew are always-on — the fire decision lives entirely on the automation’s Published state. This way “I want to pause one specific email” stays in the automation builder where the rest of the flow logic lives, instead of being split across two tabs. See How event triggers work.

Supported events

Brew supports 22 Stripe events as automation triggers, across 6 categories: Checkout
  • checkout.session.completed
  • checkout.session.async_payment_succeeded
  • checkout.session.async_payment_failed
Customer
  • customer.created
  • customer.updated
  • customer.deleted
Subscription
  • customer.subscription.created
  • customer.subscription.updated
  • customer.subscription.paused
  • customer.subscription.resumed
  • customer.subscription.trial_will_end
  • customer.subscription.deleted
Invoice
  • invoice.created
  • invoice.paid
  • invoice.payment_failed
  • invoice.upcoming
Quote
  • quote.finalized
  • quote.accepted
  • quote.canceled
Payment
  • charge.refunded
  • refund.created
  • payment_intent.payment_failed
In chat, say “Send this email when a subscription is canceled” and Brew will scaffold the automation with customer.subscription.deleted pre-selected.

Common patterns

GoalStripe event
Welcome new subscribercustomer.subscription.created
Plan-change confirmationcustomer.subscription.updated
Dunning for failed paymentsinvoice.payment_failed
Pre-renewal reminderinvoice.upcoming
Notify before trial endscustomer.subscription.trial_will_end
Win-back on cancelcustomer.subscription.deleted
Receiptinvoice.paid
Refund confirmationcharge.refunded or refund.created
Post-purchase confirmationcheckout.session.completed
Quote follow-upquote.finalized, quote.accepted, quote.canceled

Personalization

VariableExample
{{@trigger:output.payload.firstName}}Alex
{{@trigger:output.payload.lastName}}Morgan
{{@trigger:output.payload.amount}}2999 (cents)
{{@trigger:output.payload.currency}}usd
{{@trigger:output.payload.status}}paid, past_due, canceled, etc.
{{@trigger:output.payload.invoiceNumber}}B23B89B0-0001
{{@trigger:output.payload.subscriptionId}}sub_1A2B3C

Bulk-import existing customers

After connecting, click Sync customers in the Stripe integration panel to import every existing Stripe customer into your Brew audience in the background. Brew pages through Stripe’s customer list so the dialog renders live progress, and the job is resumable from the last cursor if anything fails. Imported customers land with the same stripe_* custom fields the webhook contact-sync writes, so they’re immediately filterable and ready to receive automation emails.

Troubleshooting

Open the canvas and confirm at least one automation bound to this event is set to Published (not Draft). The Brew integration’s Manage → Events sub-tab confirms the webhook is arriving — if it isn’t there, disconnect + reconnect Stripe (resets the Connect webhook secret). If the event is there but no email sent, the only remaining gate is automation.published.
Disconnect and reconnect the Stripe integration in Brew. The webhook secret is managed by Brew automatically — if it’s out of sync, reconnecting re-registers a fresh signing secret.
Use refund.created — it ships with richer refund-specific details (reason, status, partial vs full). charge.refunded is also supported but only carries charge-level totals.
In the Stripe integration’s Manage → Settings sub-tab, every event has a separate Sync customer name toggle. Turn it off for events where you’d rather keep the names already in your audience.
Connect Brew to your Stripe test mode first. Create a test customer and subscription, watch them appear in Manage → Events, pre-publish your automations as Drafts, run test sends, then connect production once you’re happy.

Requirements

  • A Stripe account with admin access (needed to authorize OAuth)
  • Live mode connected for production automations; test mode is supported for testing

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.