Why Stripe + Zapier?
3 min readStripe 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
Auto-provision access
Customer pays → they instantly get a welcome email, account credentials, or access link. No manual work.
Recover failed charges
Payment fails → automated email nudge + Slack alert. You stop losing revenue to expired cards.
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.
Step-by-Step Setup
5 min readConnect 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.
Stripe OAuth authorization screen — click 'Connect' to grant Zapier access to your Stripe account
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.
Zapier trigger selection — Stripe events list showing 'New Payment', 'New Customer', 'New Subscription', etc.
Choose your action app
Now for the fun part. Click the "+" below your trigger to add an action. The most common first actions:
Pick the app you want. For this example, we'll use Gmail → Send Email to fire off a welcome message.
Zapier action picker — selecting Gmail as the action app with 'Send Email' event
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 Field | Stripe Data |
|---|---|
| To | Customer Email |
| Subject | "Welcome to [Your Product]!" |
| Body | Use Customer Name, Amount, Description |
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.
Zapier field mapping — Stripe payment data fields being mapped to Gmail email fields
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.
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.
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.
Zapier dashboard showing Zap History with successful runs — green checkmarks on recent payment triggers
Real-World Automation Recipes
5 min readNow 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
Recipe 2: New Customer Onboarding
Recipe 3: Revenue Alerts & Reporting
Troubleshooting & Common Pitfalls
2 min readEvery indie hacker hits these at some point. Save yourself the debugging session.
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.
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.
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.
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.
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.
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.
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.