The moment it happens
Post subscription changes to Slack and Discord
When a subscription is created or cancelled, the details are posted to both your Slack and your Discord.
- Runs
- The moment it happens
- Apps
- Discord, Slack
- AI
- Not needed
- Access
- Slack chat:write; Discord Send Messages
Send this to your assistant
Create a ClickRuntime automation: when a subscription is created or cancelled, post the customer, plan and amount to #revenue in Slack and to my Discord channel.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A two-founder SaaS business runs its internal chat in Slack and its customer community on Discord, where the team also hangs out. New subscriptions and cancellations only show up in the billing dashboard, which nobody opens every day, so a churned customer goes unnoticed for weeks.
Getting each change posted to both places as it happens means wins are shared while they are fresh and cancellations get a quick personal follow-up.
What you get out of it
Cancellations get a quick response
A message within seconds of a cancellation gives you a chance to reach out while the customer still remembers why. Some of them can be won back.
New customers are noticed
Each new subscription is visible to the whole team. It is a small boost on a slow day, and a cue to send a personal welcome.
Same message in both places
Slack and Discord get identical posts at the same time. Whoever is looking at either one sees the change.
Clear wording for each status
New, cancelled and other changes are worded differently. You can tell what happened from the first word without reading the rest.
How it works
What happens, step by step
Your billing tool tells ClickRuntime when a subscription is created, changed or cancelled.
A short message is written for that type of change, including the customer, plan and amount.
The same message is posted to your Slack channel and your Discord channel.
Before it runs live
- Connect Discord
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
- 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 Google Sheets
- Combine it with other Discord and Slack steps into one automation
Under the hood
The code that runs this automation
from slack_sdk import WebClient
from clickruntime import on_event, credentials, http
DISCORD_CHANNEL = "your-discord-channel-id"
LABELS = {"customer.subscription.created": "New subscription", "customer.subscription.deleted": "Cancelled",
"customer.subscription.updated": "Changed"}
@on_event
def handle(event):
data = event.json or {}
label = LABELS.get(data.get("type"))
if not label:
return {"skipped": data.get("type")}
sub = data["data"]["object"]
item = sub["items"]["data"][0]["price"]
amount = f"{item['unit_amount'] / 100:.2f} {item['currency'].upper()}/{item['recurring']['interval']}"
text = f"{label}: customer {sub['customer']}, plan {item.get('nickname') or item['id']}, {amount}"
WebClient(token=credentials.connection("slack", "work")).chat_postMessage(channel="#revenue", text=text)
http.post(f"https://discord.com/api/v10/channels/{DISCORD_CHANNEL}/messages",
headers={"Authorization": f"Bot {credentials.secret('DISCORD_BOT_TOKEN')}"}, json={"content": text})
return {"posted": label}FAQ
Common questions
Which billing tools can send these events?
Can it verify the events really came from my billing tool?
Which details are included?
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
Send your app's error alerts to Slack and Discord
Whenever your app reports an error to your trigger link, the alert appears in #alerts in Slack and in your Discord ops channel, without repeats.
See how it worksGet Slack and Discord alerts for new npm package releases
When a package you depend on publishes a new version, the release is posted to your Slack and Discord channels.
See how it worksShare approved YouTube video summaries in Discord
New videos from channels you follow are summarised, you approve them in Slack, and approved summaries are posted to your Discord.
See how it worksKeep exploring
Set up “Post subscription changes to Slack and Discord” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.