Stripe Alerts for Course Creators
Course creators live between two feelings: the dopamine of every sale during a launch, and the quiet dread of refunds and failed payment plans afterward. Here's how to see both in Slack.
Course creators live between two feelings: the dopamine of every sale during a launch, and the quiet dread of refunds and failed payment plans afterward. Here's how to see both in Slack.
Selling a course means living between two feelings. During launch week you want the dopamine of every single sale in real time — the pile-up you screenshot and post in your team channel. Then you need an early-warning system for the two things that quietly erode a launch: refunds clustering inside the 30- or 60-day window, and payment-plan installments silently failing. Stripe alerts for course creators should do both — celebrate the wins and watch the leaks — without you ever refreshing the dashboard.
Short answer
Send a new-payment alert (🔔) and a first-time customer alert (👋) to a wins channel so every sale lands in real time during your launch. Turn on a refund watch (↩️) so you catch requests as they cluster after the buzz fades. Route payment-plan failures (⚠️) to a channel where someone will actually send the recovery link. ChargeBell ships all of this pre-worded — no Zaps to build.
The online course market crossed roughly $200B in 2025 and keeps climbing, so the money is real — but so is the volatility. Course launches are spiky by design: sales flood in the moment the cart opens to your warm list, bump again just before the early-bird deadline, and spike a final time right before cart close. Live launches convert two to four times higher than evergreen precisely because of that deadline. Revenue is one big week, then relative silence.
That shape is exactly why checking the Stripe dashboard on a loop is the wrong tool. You don't want a spreadsheet — you want to *feel* the launch as it happens and get tapped on the shoulder when something needs a response. Slack is already where you and your team live during a launch, so that's where the alerts belong. If you're deciding between tools for this, we compare the options in how to get Stripe payment notifications in Slack.
The trap is noise. A raw feed of every Stripe webhook is unreadable, and generic automation tools hand you the raw fields and make you build the logic yourself — see how to avoid noisy Stripe notifications. What a creator actually wants is a small set of pre-worded alerts that map to real moments in a launch.
Every course business runs on the same handful of events. Here's each moment, the exact Stripe event behind it, and the ChargeBell alert that speaks it in plain English.
payment_intent.succeeded and checkout.session.completed when a one-time course purchase clears. ChargeBell posts the net amount after Stripe fees, not the gross, so you see what you actually keep.customer.created, which fires when Checkout creates a new customer object. Worth celebrating and worth a personal welcome.charge.refunded (including partial refunds) and refund.created. During and after a launch, a running refund count tells you whether the offer is landing.invoice.payment_failed, which fires when an installment charge is declined or has no stored card. This is critical: if all Stripe retries fail, Stripe cancels the plan but the student keeps access unless you act.The first-time customer alert (👋) is off by default in ChargeBell — turn it on for a launch. It's the difference between knowing you made a sale and knowing you just earned a brand-new student worth a personal DM.
During a launch, the wins channel is a morale engine. Every sale that lands is a small proof point for you and anyone helping you run the launch. ChargeBell writes the message for you, with the numbers already worked out — the customer name and email when Stripe provides them, and the net after fees so a $497 sale doesn't secretly read as $497 when Stripe kept its 2.9% + $0.30.
🔔 New sale — $497.00 · 'Launch Like a Pro'
Net after fees: $482.29
👋 First-time customer: Maya Rodriguez (maya@example.com)
Today's launch total: $8,449 across 17 sales
That's the moment you screenshot. Pairing the new-payment alert (🔔) with the first-time customer alert (👋) means every notification tells you not just *how much* but *who* — so you can drop a welcome note while the buyer is still in the excitement of hitting purchase. For a deeper walkthrough of setting this up channel-by-channel, see how to get Stripe payment notifications in Slack.
Refunds are the leak that shows up after the buzz dies down. Online course and info-product refund rates commonly run into the high single digits, and can climb higher for pricier self-paced courses where buyers never start the material. Disciplined creators work to keep the rate low. Refunds hurt twice: you lose the sale and, in most cases, don't recover the Stripe processing fee.
The timing is the sneaky part. A 30- or 60-day refund window means most requests cluster *after* the launch buzz fades. Buyers who stop watching stop believing they got value, and they file right inside the eligibility window. If you're only looking at launch-week revenue, you miss the slow bleed in weeks three through eight.
↩️ Refund issued — $497.00 · 'Launch Like a Pro'
Customer: dana@example.com · 6 days after purchase
Launch refunds so far: 3 ($1,491)
A refund alert (↩️) in a dedicated channel turns a silent metric into a live signal. Three refunds on the same module in a week is a content problem you can fix before it becomes a pattern. For the full setup, read how to send Stripe refund alerts to Slack. ChargeBell is read-only, so it will never issue or reverse a refund — Stripe stays the source of truth. It just makes sure you *see* the refund the moment it happens.
High-ticket courses often sell on a payment plan — three or four monthly installments instead of one charge. In Stripe, a payment plan behaves like a self-cancelling subscription: if an installment charge fails and every automatic Stripe retry also fails, Stripe cancels the plan. The problem is that your student usually keeps course access. Unless you notice and act, you've delivered the course and stopped getting paid.
The invoice.payment_failed event is your early warning. It fires the moment an installment is declined — a card that expired, insufficient funds, or no stored payment method. ChargeBell treats payment-failed as a critical alert: it bypasses quiet hours and can add an @channel prefix, because a failed installment on a $1,491 plan is not something to discover next week.
⚠️ Payment-plan installment failed — $166.33 (installment 2 of 3)
Student: james.lee@example.com · card declined
Stripe retries automatically — send the hosted payment link if it doesn't recover
The recovery action is concrete. Stripe surfaces a hosted payment-page link at the bottom of the failed invoice; you send that link to the student to update their card and pay. Route these alerts to a channel where someone owns follow-up, and if the retry succeeds ChargeBell sends a payment-recovered alert (✅) so you know the plan is back on track. The mechanics of catching declines are covered in how to send failed payment alerts to Slack.
Here's a setup that leads with celebration and closes with a safety net. Adjust channels to your workspace, but the routing logic holds.
| Alert | Turn on for a launch? | ChargeBell |
|---|---|---|
| New payment 🔔 (each sale, net after fees) | Yes — route to #launch-wins | |
| First-time customer 👋 | Yes — off by default, enable it | |
| Refund sent ↩️ | Yes — route to #refunds | |
| Payment failed ⚠️ (installment miss) | Yes — critical, route to #billing | |
| Payment recovered ✅ | Yes — confirms a plan is back on track | |
| Minimum amount threshold | Set to Any during launch | |
| Quiet hours | On — criticals still break through |
A few tuning notes. Keep the minimum-amount threshold set to Any during a launch — you want to feel every sale, even a $27 order bump. ChargeBell's supersession rule means you get one alert per event, so a first-time customer's purchase won't double-post as both a payment and a new-customer alert. And leave quiet hours on: your wins can wait until morning, but a failed payment plan (⚠️) and a dispute (🚨) are critical and break through regardless.
After the launch
Once the cart closes, flip on the daily digest (Pro) to get yesterday's net revenue, refund count, and new subscribers in one 9 AM message — so you can watch the refund window play out without re-reading every alert. Related: many course businesses also run a paid community, and the same approach applies in Stripe alerts for paid communities.
You can wire Stripe to Slack with a general automation tool, and if you already run many workflows across your stack it may be worth it. But for a launch, the trade-offs bite. Each event type — sale, first-time customer, refund, failed installment — is usually its own workflow to build and maintain, the message formatting is manual, and task-based pricing means your biggest sales day is also your biggest automation bill.
The deeper gap is logic. Generic tools hand you raw Stripe fields, so distinguishing a first-time customer from a repeat buyer, computing net after fees, or grouping launch-day noise is all work you do yourself. ChargeBell ships those decisions pre-made and creator-worded. If you're weighing the two, read ChargeBell vs Zapier for Stripe Slack alerts and when to replace a Zapier Stripe alert workflow.
ChargeBell for course creators
Strengths
Trade-offs
Setup is a few minutes and no code. Connect Stripe with one-click read-only OAuth, add the Slack app and pick your channels, enable the alert types above, and send a test alert. ChargeBell can see your payment events but can never move money or change anything in Stripe — and you can disconnect in one click, which deletes your data. Do it a day before cart-open so your first real sale lands in Slack before your coffee cools.
Key takeaways
invoice.payment_failed and, if retries fail, Stripe cancels the plan while the student keeps access — route it critical.Connect Stripe and Slack, enable the creator alerts, and send a test. Free plan covers 100 alerts a month, no card needed.
For a one-time course sale, watch payment_intent.succeeded and checkout.session.completed. For a brand-new buyer, customer.created powers a first-time customer alert. For refunds, charge.refunded and refund.created. For a failed payment-plan installment, invoice.payment_failed. ChargeBell maps each of these to a plain-English alert.
A failed installment fires Stripe's invoice.payment_failed event. ChargeBell treats payment-failed as a critical alert — it bypasses quiet hours and can add an @channel prefix. Route it to a billing channel where someone can send the student Stripe's hosted payment link to update their card. If a later retry succeeds, you also get a payment-recovered alert.
No. ChargeBell connects to Stripe through official read-only OAuth. It can see refund events to alert you the moment one happens, but it can never issue, reverse, or block a refund. Stripe stays the source of truth — ChargeBell just makes sure the refund shows up in Slack.
You control the volume. Set the minimum-amount threshold to Any if you want every sale, or raise it to filter small orders. Supersession sends one alert per event so a first-time purchase won't double-post. Quiet hours can hold non-critical wins until morning, and after the launch a daily digest summarizes revenue and refunds in one message.
The free plan is $0 and includes 100 alerts a month with every alert type and 7-day history — enough to try it on a small launch. Pro is a flat $24/month (or $240/year, two months free) for unlimited alerts, daily and weekly digests, and full history. A record launch day never raises your bill.
ChargeBell delivers to Slack and to org webhooks (it POSTs the alert JSON to an endpoint you control). Slack is the primary channel for creators. Other destinations like Teams, Discord, and email are not available.
Your membership runs on recurring Stripe subscriptions, but the two events that move revenue — a failed renewal you could still save and a cancellation you could still win back — arrive silently in a dashboard nobody checks. Here's how to hear them in real time.
July 6, 2026
A refund is one signal three teams read differently. Here's how to send Stripe refund alerts to Slack — which event to hook, who should see them, and how to set it up in minutes.
July 6, 2026
There are three free ways to pipe Stripe payments into Slack, and each stops at a bare 'you got paid' message. Here's how each works — and the fast path to alerts that actually show net, customer, and MRR.
July 6, 2026