Stripe alerts for course creators: launches, refunds, and payment plans

A course launch packs most of its sales into a few days, then refunds and missed installments trickle in for weeks. Here is a Stripe to Slack setup for both halves.

The ChargeBell Team

Updated October 1, 2026. 9 min read.

How we check provider claims

Stripe alerts for course creators cover two different jobs. During launch week, every sale should show up in Slack so the team can watch the cart fill. In the weeks after, the same channel should flag refunds inside your guarantee window and payment plan installments that fail. This guide sets up both with Stripe events that ChargeBell posts to Slack.

Short answer

Post payment received and first-time customer alerts to a launch channel. Send refund sent to whoever handles support, and payment failed to whoever chases declined installments. A payment plan invoice can fail without a failed PaymentIntent, so also watch Stripe's invoice.payment_failed. Your course platform controls student access, and an alert does not revoke it.

Why Stripe alerts for course creators belong in Slack

Launch revenue arrives in bursts. Sales jump when the cart opens to your email list, again before the early-bird price ends, and again in the last hours before the cart closes. Then the cart closes and sales stop.

Refreshing the Stripe dashboard during those bursts means you see totals, not people. Slack is where you and any launch helpers are already talking, so each sale can land there with the buyer's email and amount. Other ways to set this up are compared in how to get Stripe payment notifications in Slack.

A raw feed of every Stripe webhook is unreadable during a launch. General automation tools hand you the raw fields and leave the wording and filtering to you, as covered in how to avoid noisy Stripe notifications. A course creator needs a handful of alerts, each tied to a launch moment.

Five course moments and the Stripe events behind them

Each moment below lists the Stripe event and what ChargeBell does with it.

  • A sale. ChargeBell alerts on payment_intent.succeeded. It ignores checkout.session.completed, so if enrollment runs off Checkout completion, watch that event elsewhere. Fee and net appear only when Stripe returns them and you chose net display.
  • A first-time buyer. ChargeBell works this out from payment history, not from customer.created. The first-time customer alert is off by default, so turn it on before a launch.
  • A refund. Fires on charge.refunded, including partial refunds, and on refund.created. A refund count after a launch tells you whether buyers think the course delivered.
  • A missed installment. ChargeBell alerts on payment_intent.payment_failed when an installment attempt fails. Also watch invoice.payment_failed in Stripe, because an invoice can fail with no failed PaymentIntent. Check your course platform's access rules for unpaid plans.
  • A launch spike. There is no separate alert for this. It is the launch channel filling up at cart open, at the early-bird deadline, and at cart close.

Turn on the first-time customer alert before the cart opens. It is off by default. It separates repeat buyers from new students, and a new student is the one worth a personal welcome message.

Post each launch sale to a Slack channel

A launch channel shows each supported payment as it happens, with the customer and amount. Fee and net depend on Stripe data and your net display setting. To confirm which course the buyer bought and whether they are enrolled, open the Stripe record or your course platform.

# launch-wins

ChargeBellAPP

🔔 You got paid: $497.00

maya@example.com

Amount (before fees): $497.00 · View in Stripe

This sample uses fake customer data and the gross amount layout. A first-time buyer gets the first-time customer alert in place of this one, not both. Check enrollment in your course platform before you send a welcome. Connection steps are in how to get Stripe payment notifications in Slack.

Track refunds through the guarantee window

A refund lowers what you collected. Whether Stripe returns the processing fee depends on the payment method, your region, and your Stripe terms, so check Stripe pricing for your account.

Refunds usually come after the launch. With a 30 or 60 day guarantee, a buyer who stops watching the lessons can still ask for money back weeks later. If you only look at launch week revenue, you miss refunds that arrive in weeks three to eight.

# refunds

ChargeBellAPP

↩️ Refund sent: $497.00

to dana@example.com

View in Stripe

A refund channel makes each refund visible to the team. Three refunds in one week that mention the same module point at a content fix. Setup is in Stripe refund alerts in Slack. ChargeBell has read-only access, so it cannot issue or reverse a refund. Stripe stays the source of truth.

Catch failed payment plan installments

Higher-priced courses often sell on a payment plan of three or four monthly charges. In Stripe, a plan like this usually runs as a subscription that ends after the last installment. When an installment fails and Stripe's retries also fail, your Billing settings decide whether Stripe cancels the subscription or marks it unpaid. Many course platforms keep the student's access open unless you change it, so you can end up delivering the course without collecting the rest.

Stripe's `invoice.payment_failed` event is the invoice-level warning, and it covers invoices with no stored payment method. ChargeBell does not map it. ChargeBell's payment failed alert comes from payment_intent.payment_failed and is critical, so it skips quiet hours and can mention the channel. Keep an invoice-level monitor in Stripe or another tool for the cases with no PaymentIntent.

# billing

ChargeBellAPP

⚠️ A $166.33 payment didn't go through

james.lee@example.com · card declined

Check Stripe to see if it will be retried.

This sample shows only the fields ChargeBell sends. Before you contact the student, open the invoice in Stripe and check the retry schedule and payment link. If a later retry succeeds, ChargeBell posts a separate payment recovered alert. Change access in your course platform only after you confirm the subscription status. The full process is in the failed payment playbook.

Change the channel names to match your workspace.

AlertTurn on for a launch?ChargeBell
Payment received (supported PaymentIntent)Yes, send to #launch-wins
First-time customerYes, it is off by default
Refund sentYes, send to #refunds
Payment failed (missed installment)Yes, critical, send to #billing
Payment recoveredYes, shows a plan is paid up again
Minimum amount filterSet to Any during the launch
Quiet hoursOn, critical alerts still arrive
Every alert type is on the free plan. Each type has its own channel and on or off setting.

Set the minimum amount filter to Any during a launch so a $27 order bump still posts. ChargeBell sends one alert per payment, so a first-time buyer's purchase does not post twice. Leave quiet hours on. Sales from 2 a.m. wait until morning, while failed payments and disputes are critical and arrive right away.

After the cart closes

Keep the daily digest on. It posts yesterday's net revenue, refund count, and new subscribers in one message at 9 AM by default, so you can follow the refund window without reading each alert. If you also run a membership, see Stripe alerts for paid communities.

Why not build this in Zapier?

You can connect Stripe to Slack with a general automation tool, and that makes sense if you already run many workflows there. For a launch, each event (sale, first-time buyer, refund, failed installment) is usually its own Zap. You write each message format by hand. Zapier bills per task, so your biggest sales day is also your biggest Zapier day.

ChargeBell ships its alert types already worded, with fee and net when available, channel routing, and digests. A general tool can cover invoice and Checkout events that ChargeBell does not map, if you build the steps. Read ChargeBell vs Zapier and when to replace a Zapier Stripe alert workflow before switching.

ChargeBell for course creators

Strengths

  • Sale, first-time buyer, refund, and failed payment alerts are already written, with no Zaps to build
  • Alerts show the buyer and amount, plus fee and net when Stripe returns them
  • Failed payment and dispute alerts skip quiet hours
  • Flat $24/mo or $240/yr, so a record launch day costs the same

Trade-offs

  • Sends Stripe events to Slack only, with no automation across other apps
  • Read-only, so it shows refunds and failures but cannot issue or reverse them
  • Does not alert on checkout.session.completed or invoice.payment_failed

Set it up before your next cart opens

Setup takes a few minutes with no code. Connect Stripe with read-only OAuth, add the Slack app, pick your channels, turn on the alerts above, and send a test alert. The Stripe Slack integration page walks through each step. ChargeBell reads payment events but cannot move money or change anything in Stripe. Disconnecting stops new alerts, and stored history follows the retention policy. Do it the day before the cart opens so the first real sale shows up where you expect it.

Key takeaways

  • Post payment received and first-time customer alerts to a launch channel. Turn on first-time customer, since it is off by default.
  • Refunds arrive weeks after a launch, inside the guarantee window. A refund channel shows them as they happen.
  • ChargeBell alerts on failed PaymentIntents. Watch invoice.payment_failed in Stripe too, and manage course access in your platform.
  • During a launch, set the minimum amount to Any and leave quiet hours on. ChargeBell sends one alert per payment.
  • Pro is $24 a month. Fee and net appear only when Stripe returns them and you turned them on.

Frequently asked questions

Which Stripe events matter most for course creators?

Sales (payment_intent.succeeded), refunds (charge.refunded or refund.created), and failed installments (payment_intent.payment_failed). ChargeBell alerts on all three and works out first-time buyers from payment history. It does not alert on checkout.session.completed, customer.created, or invoice.payment_failed, so use Stripe or another tool if enrollment or installment tracking depends on them.

How do I get an alert when a payment plan installment fails?

ChargeBell's payment failed alert fires on payment_intent.payment_failed and is critical, so it skips quiet hours. Send it to a billing channel. Stripe also emits invoice.payment_failed, which can happen without a failed PaymentIntent, so watch that event separately. Check the invoice and retry settings in Stripe before sending the student a payment link.

Can ChargeBell issue or block a refund?

No. ChargeBell connects to Stripe with read-only OAuth. It reads refund events and posts an alert, but it cannot issue, reverse, or block a refund. You handle refunds in Stripe.

Will every launch sale flood my Slack channel?

You set the volume. A minimum amount of Any posts every sale, and $10, $50, $100, or $250 filters smaller orders. ChargeBell sends one alert per payment, so a first-time purchase does not post twice. Quiet hours hold routine alerts until morning, and the daily digest sums up revenue and refunds in one message.

How much does ChargeBell cost for a course business?

The free plan is $0 for 50 real-time alerts a month, with every alert type, daily and weekly digests, and full history. That is enough to try on a small launch. Pro is $24 a month or $240 a year for unlimited alerts, so a record launch day does not raise the price.

Does ChargeBell send alerts anywhere besides Slack?

No. ChargeBell posts to Slack channels only. It has no outbound webhook, Teams, Discord, or email destination, so use another integration for those.

Primary sources