The moment it happens
Get a message for every new sale
Each successful payment reaches you with the customer, amount and what they bought.
- Runs
- The moment it happens
- Apps
- Stripe
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: whenever someone pays me on Stripe, post the customer, amount and product to #sales in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A small shop owner or a founder who sells a course wants to know when money arrives, not read about it in a report two weeks later. Stripe sends its own receipt email to the customer, but the seller gets nothing useful in real time, and checking the dashboard a dozen times a day is a habit that eats the afternoon. A launch day with no live feedback feels like flying blind.
Whenever Stripe confirms a successful payment, ClickRuntime verifies the webhook signature, expands the line items so it knows exactly what was bought, and posts a message to your Slack channel with the product names, quantity and amount. You hear the ping the moment a sale lands, along with what the customer picked.
It is popular with creators on launch day, small stores where each order matters, and teams that celebrate wins together in a shared channel.
What you get out of it
Launch days become visible in real time
Watching sales appear one by one tells you immediately whether a campaign email or a social post is working. You can double down on what converts while the audience is still paying attention, instead of reading the result the next morning.
The team shares every win
A message per purchase in a shared channel lets support, marketing and the founder see activity together. It lifts morale during slow quarters and creates a natural moment to say thanks to whoever drove the sale.
Fulfilment can start without logging in
Because the message lists the actual line items, whoever ships or grants access sees what was bought straight away. Orders that need a manual step, such as a custom product, do not wait until someone checks Stripe.
Odd purchases get noticed early
An unusually large order or a flurry of small ones from one customer stands out in a live feed. You can review a possible fraud pattern or a pricing mistake while the payments are still easy to reverse.
Fewer dashboard checks during the day
Instead of refreshing Stripe to see whether anything came in, you wait for the notification. That gives back time and attention, and still keeps you informed about money coming into the business.
How it works
What happens, step by step
The moment a checkout or payment succeeds in Stripe, ClickRuntime is told about it.
It checks that the message really came from Stripe, then reads what was bought.
A message is posted to your Slack channel with the customer, amount and products, like "1× Pro plan (annual)".
Before it runs live
- Connect Stripe
- Paste your automation's link into the other app's webhook settings
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Stripe steps into one automation
Under the hood
The code that runs this automation
import stripe
from clickruntime import on_event, credentials, notify, verify
@on_event
def handle(event):
if not verify.stripe(event.body, event.header("Stripe-Signature"), credentials.secret("STRIPE_WEBHOOK_SECRET")):
return {"ignored": "bad signature"}
if event.json["type"] != "checkout.session.completed":
return {"ignored": event.json["type"]}
session = event.json["data"]["object"]
stripe.api_key = credentials.secret("STRIPE_API_KEY")
items = stripe.checkout.Session.list_line_items(session["id"], limit=10)
products = ", ".join(f"{i.quantity}× {i.description}" for i in items.data)
who = (session.get("customer_details") or {}).get("email") or "unknown"
notify.slack(f":moneybag: {who} paid {session['amount_total'] / 100:,.2f} {session['currency'].upper()} for {products}",
channel="#sales")
return {"session": session["id"]}FAQ
Common questions
Does it notify for subscription renewals as well as one-time purchases?
Why does it expand the line items?
Can the message hide the customer's name or email?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get alerted when a payment fails
Each failed charge or invoice payment shows up in Slack with the customer, amount and reason.
See how it worksHear when a customer cancels
When a subscription is cancelled, you get the customer and plan straight away.
See how it worksNever miss a dispute deadline
You hear about each new dispute with its evidence due date, and get a reminder 3 days before it's due.
See how it worksKeep exploring
Set up “Get a message for every new sale” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.