Micro-Course15-min readBeginner-friendly

Stripe + Zapier:
Automate Payment Workflows

The exact steps to connect Stripe with Zapier so your payments trigger real actions — welcome emails, CRM updates, Slack alerts, and failed-charge recovery. No code required. Built by a founder who wired this for three different SaaS products.

01

Why Stripe + Zapier?

3 min read

Stripe is brilliant at one thing: taking money from customers and putting it in your bank account. But here's what it doesn't do out of the box:

  • Send a welcome email when someone pays
  • Add the new customer to your CRM or email list
  • Alert your team in Slack when a charge fails
  • Log payments to a Google Sheet or Airtable base

You could build all of this with custom webhook handlers. But if you're a solo founder trying to ship fast, that's hours of Node.js, error handling, and deployment plumbing — for something that should take 10 minutes.

That's where Zapier comes in. Zapier connects to Stripe's event system and lets you trigger actions in 5,000+ apps — without writing a single line of code. When a payment succeeds, fails, or a new subscription starts, your Zap fires automatically.

The three workflows every indie hacker needs

01

Auto-provision access

Customer pays → they instantly get a welcome email, account credentials, or access link. No manual work.

02

Recover failed charges

Payment fails → automated email nudge + Slack alert. You stop losing revenue to expired cards.

03

Real-time alerts

New sale → Slack notification with amount, customer, and product. Know what's happening without refreshing Stripe.

This is why Stripe + Zapier is the #1 integration we teach first. It's the highest-leverage automation you can set up in under 15 minutes, and it directly impacts your revenue. Let's set it up.

02

Step-by-Step Setup

5 min read
1

Connect Stripe to Zapier

Head to zapier.com/apps/stripe and click "Connect Stripe". Zapier will redirect you to Stripe's OAuth screen.

Important: Start in test mode. In your Stripe dashboard, toggle the "Test mode" switch in the top bar before connecting. This way you can trigger test events without touching real money.

Once you authorize the connection, you'll see Stripe listed under "My Apps" in Zapier with a green checkmark.

screenshot

Stripe OAuth authorization screen — click 'Connect' to grant Zapier access to your Stripe account

2

Create your first Zap — Trigger: "New Payment"

Click "Create Zap" in the top left. For the trigger app, search for "Stripe" and select it. You'll see a list of trigger events:

  • New Payment — fires when any charge succeeds
  • New Customer — fires when a customer object is created
  • New Subscription — fires on new recurring subscriptions
  • Invoice Payment Failed — fires when a charge is declined

For this walkthrough, pick "New Payment". Select your Stripe account from the dropdown, then click "Test trigger" — Zapier will pull in your most recent test payment as sample data.

screenshot

Zapier trigger selection — Stripe events list showing 'New Payment', 'New Customer', 'New Subscription', etc.

3

Choose your action app

Now for the fun part. Click the "+" below your trigger to add an action. The most common first actions:

Gmail / SendGrid
Send a welcome email
Google Sheets
Add payment row to your ledger
Slack
Post to #sales channel
Mailchimp / ConvertKit
Add to email sequence

Pick the app you want. For this example, we'll use Gmail → Send Email to fire off a welcome message.

screenshot

Zapier action picker — selecting Gmail as the action app with 'Send Email' event

4

Map your fields

This is where most people get stuck. Zapier will show you the fields available from Stripe's payment data. You need to map them to the right spots in your action.

For a welcome email, map these fields:

Gmail FieldStripe Data
ToCustomer Email
Subject"Welcome to [Your Product]!"
BodyUse Customer Name, Amount, Description
Pro tip

Stripe amounts are in cents. A $29 charge shows as 2900. Use Zapier's built-in Formatter to divide by 100 before displaying the amount to your customer.

screenshot

Zapier field mapping — Stripe payment data fields being mapped to Gmail email fields

5

Test with a test payment

Click "Test step". Zapier will use the sample data from your Stripe test payment and actually run the action — in this case, sending a real email.

Check your inbox. If you see the email with your Stripe test data populated correctly, you're golden. If something looks off, go back and adjust your field mappings.

Pro tip

Create a test customer in Stripe using your own email so you can see exactly what your customers will receive. Go to Stripe Dashboard → Developers → Test Clocks to simulate real payment flows.

6

Turn it on and monitor

Hit "Publish". Your Zap is now live. Every time a new payment comes through Stripe, your action fires automatically.

Check the Zap History tab in Zapier after your first few real payments to confirm everything is working. Look for green checkmarks. If you see orange warnings or red errors, click into them — Zapier gives you the exact error message and the data that caused it.

screenshot

Zapier dashboard showing Zap History with successful runs — green checkmarks on recent payment triggers

03

Real-World Automation Recipes

5 min read

Now that you know the basics, here are three battle-tested recipes that indie hackers actually use in production. Each one is a complete Zap you can replicate in under 5 minutes.

Recipe 1: Failed Payment Recovery

Trigger
Stripe → "Invoice Payment Failed"
Actions
1
Delay by Zapier — wait 1 hour (gives the bank time to process retries)
2
Gmail / SendGrid — send a friendly email: "Hey {name}, looks like your payment didn't go through. Here's a link to update your card."
3
Slack — post to #revenue: "⚠️ Failed payment: {email} — ${amount}. Recovery email sent."
Pro tip: Don't use this for Stripe's built-in Smart Retries. Stripe already retries failed charges up to 4 times over several days. Use this Zap for the personal touch — the human email that says 'hey, need help?' That combo of automated retries + personal outreach recovers up to 70% of failed payments.

Recipe 2: New Customer Onboarding

Trigger
Stripe → "New Customer"
Actions
1
ConvertKit / Mailchimp — add subscriber to your "New Customer" email sequence with tags
2
Google Sheets / Airtable — create a row with customer email, name, plan, and signup date
3
Slack — post to #new-customers: "🎉 New customer: {email} just signed up for {plan}!"
Pro tip: Use Zapier's Filter step between the trigger and actions to segment by product or plan. For example, only fire the onboarding sequence for paid plans, not free trials. Add a filter: "Amount > 0" to skip $0 trial invoices.

Recipe 3: Revenue Alerts & Reporting

Trigger
Stripe → "New Charge" (add a Filter: Amount > 10000, i.e. $100+)
Actions
1
Slack — post formatted message: "💰 Big sale! {customer_email} just paid ${amount} for {product}. Total today: check dashboard."
2
Google Sheets — append a row with charge details for your weekly revenue spreadsheet
Pro tip: For a weekly digest, create a separate Zap: Schedule by Zapier (every Monday at 9am) → Google Sheets (get spreadsheet rows from last 7 days) → Slack (post formatted summary). This gives you a Monday morning revenue report in Slack without logging into Stripe.
04

Troubleshooting & Common Pitfalls

2 min read

Every indie hacker hits these at some point. Save yourself the debugging session.

1

Test mode vs. live mode confusion

The #1 gotcha. If you connected Stripe in test mode, your Zap only fires on test events. When you go live, you need to reconnect Stripe in live mode or add a second Stripe connection. Zapier doesn't auto-switch. Check which mode your connection uses under My Apps → Stripe → Connection details.

2

Duplicate Zap triggers

Stripe sometimes sends the same event multiple times (it's by design — webhooks aren't guaranteed to be unique). If your Zap sends a welcome email, this means duplicate emails. Fix: add a Zapier "Lookup" step that checks a Google Sheet or Airtable for the payment ID before acting. If the ID already exists, stop the Zap.

3

Zapier task limits

Each Zap run costs one "task." On the free plan, you get 100 tasks/month. A Zap with 3 actions = 3 tasks per trigger. Do the math before going live: if you get 50 payments/month and each triggers a 3-step Zap, that's 150 tasks. Consider combining actions or upgrading your Zapier plan. The Starter plan ($19.99/mo) gives you 750 tasks.

4

Stripe webhook delays

Zapier polls Stripe every 1-15 minutes on most plans (only Instant triggers on Professional+ plans use real webhooks). If your welcome email arrives 10 minutes after payment, this is why. For truly instant triggers, you need Zapier Professional or you can set up Stripe webhooks directly and use Zapier's "Catch Hook" trigger instead.

5

Field mapping gotchas with nested objects

Stripe's data is deeply nested. The customer email might be at data.object.customer_details.email or data.object.receipt_email — depending on the event type. Always click "Test trigger" and inspect the actual data Zapier pulls. Don't assume field names.

Pro tip

When something breaks, check Zap History first. It shows the exact input data and error for every run. 90% of debugging is just reading the error message Zapier gives you and fixing the field mapping.

Ready to go deeper?

This is just one lesson

The All-Access Pass includes every StackLore micro-course — Airtable + APIs, Webhooks + Slack, Stripe dunning, Notion automations, and more. One payment, lifetime access, new lessons shipping regularly.

Get the All-Access Pass — $29→One-time payment · Lifetime access · Instant delivery