Stripe + Fromly

Email the right customer at every Stripe event

Trials, payments, failed charges, cancellations: each one lands on the contact as a tag and an event, so the right email goes to exactly the people it concerns.

Start free

Your first 1,000 emails free. No credit card.

Something happens in Stripe

  • Payment failedPro plan · $29/mo
  • Trial startedgrace@hopper.dev

Tags update on their own

Ada Lovelace

ada@lovelace.dev

payment-failedlifecycle:past-dueplan:pro

The dunning email goes out

Acme · hello@acme.com

Your card didn’t go through

Update your card

What the Stripe integration does

Fromly connects to Stripe as a Stripe App, through OAuth, so you never paste a secret key. The access is read-only across nine permissions, and the tokens are encrypted at rest.

The first sync imports your customers, their subscriptions, every payment, including one-off buyers who never became a Stripe customer, and the invoice history behind them. From then on, webhooks keep contacts current in real time and a daily pass re-checks everything Stripe cannot stream.

Each contact carries its billing life: the plan, the monthly recurring revenue, the first payment date, and a set of tags (on a trial, paying, past due, churned, one-time buyer) that Fromly recomputes in full on every change so they can never drift out of date.

Past history is imported as backfilled events that automations ignore, so connecting Stripe never emails your old customers. Only what happens after you connect can trigger an automation.

How it connects

A read-only OAuth install. No API keys change hands.

01

Install the Fromly app for Stripe

Approve the OAuth consent in Stripe: nine read-only permissions, shown before you accept. No secret key is ever pasted into Fromly.

02

Full import, quiet by design

Customers, subscriptions, payments and invoices come in. Past events are marked as backfilled and automations ignore them, so your old customers hear nothing.

03

Webhooks keep it live

Subscription changes, successful and failed payments stream in as they happen. A daily re-check catches anything a webhook missed.

04

Tags and events, ready to use

Lifecycle tags are recomputed in full on every change, and events like a failed payment or a cancellation are there for your automations to key on.

The Fromly app for Stripe is in Stripe’s app review. Until it is published, Stripe connections are enabled per workspace: start free and request it from your workspace settings.

What data syncs

Billing truth on every contact: plan, revenue, lifecycle tags and the events behind them. MRR is computed per subscription: trials excluded, discounts ignored, metered prices counted as zero, and currencies never summed together.

Contact fields

NameWhat it holds
planThe plan the contact is on right now.
mrr_centsMonthly recurring revenue, normalised to a month, with its currency.
first_paid_atThe first time this contact ever paid you.
stripe_customer_idThe Stripe customer behind the contact, for cross-checking.

Events

NameWhat it holds
trial.startedA trial began.
trial.endedA trial ran out.
subscription.createdA new subscription started.
subscription.updatedA plan, quantity or status changed.
subscription.canceledA subscription ended. The win-back moment.
payment.succeededA payment went through.
payment.failedA charge failed. The dunning moment.

Tags

  • lifecycle:trialOn a trial right now.
  • lifecycle:activePaying.
  • lifecycle:past-dueA renewal is failing.
  • lifecycle:churnedWas paying, is not anymore.
  • lifecycle:one-timeBought once, never subscribed.
  • plan:<slug>The current plan, as a tag you can segment on.
  • billing:monthlyBilled monthly.
  • billing:yearlyBilled yearly.
  • has-paidHas paid at least once; it survives a churn.
  • trial-usedHas already used a trial.
  • cancels-at-period-endCancelled, but still running until the period ends.
  • payment-failedThe last charge failed.
  • discountedA coupon is applied.
  • multi-subscriptionHolds more than one subscription.

What you can build

Automation

Dunning that saves the charge

A failed payment fires its event; the automation asks the customer to update their card before the subscription slips away.

Automation

Win back the ones who left

A cancellation fires its event, and a win-back sequence starts on its own: a week later, a month later, in your words.

Automation

Convert trials that ran out

When a trial ends without a subscription, the follow-up goes out while the product is still fresh in their mind.

Segments

Upsell one plan at a time

Every contact carries its plan as a tag, so “everyone on the starter plan” is a segment, not a spreadsheet.

Segments

Turn one-time buyers into subscribers

One-off buyers sync too, tagged as such, one campaign away from becoming recurring revenue.

AI agents

Revenue-aware campaigns from your agent

Over MCP, your agent sees plans, MRR and lifecycle, and drafts for paying customers, trialists or churned users by name.

Read-only, by construction

Fromly cannot touch your Stripe account

Every permission is read-only. Fromly cannot charge, refund, change a subscription or edit anything in Stripe.

No API keys to share

The connection is a Stripe App over OAuth. You approve it in Stripe, the tokens are encrypted at rest, and revoking it in Stripe ends the access.

Connecting emails no one

Imported history is backfilled, and automations ignore backfilled events. Your existing customers never hear about the connection.

Plays fair with your other data

If a contact already exists, say from Supabase, Stripe data is merged onto it by email, never over it. The signup date and source stay where they came from.

FAQ

Stripe questions, answered

Can I connect Stripe today?
The Fromly app for Stripe is currently in Stripe’s app review. Until it is published, we enable Stripe connections per workspace: start free, then request the connection from your workspace settings and we switch it on for you.
Does Fromly need my Stripe API keys?
No. Fromly connects as a Stripe App over OAuth: you approve read-only permissions in Stripe itself, and no secret key is ever pasted into Fromly. The tokens are encrypted at rest.
Can Fromly change anything in my Stripe account?
No. Every permission is read-only: Fromly cannot create charges, issue refunds, modify subscriptions or edit customers. It reads, it never writes.
Will connecting email my existing customers?
No. Your Stripe history is imported as backfilled events, and automations ignore backfilled events by design. Only what happens after you connect can trigger an email.
How is the MRR on a contact calculated?
Per subscription, normalised to a month, then rolled up onto the contact. Trials are excluded, discounts are ignored, metered and tiered prices count as zero, and different currencies are never summed together, so the number is conservative and honest.
What if the same person is in Supabase and Stripe?
Contacts are matched on email. Stripe adds its billing data to the contact Supabase created and never takes it over, so the signup date and source stay with Supabase while plan, MRR and lifecycle come from Stripe.

Turn your signups into customers with email

Connect Supabase and Stripe, let your agent draft your first flow, and send your first 1,000 emails for free.

Start with 1,000 free emails