Weekly
Get a weekly report on your community
Every Monday your mods see who joined and which channels were busiest, compared with the week before.
- Runs
- Weekly
- Apps
- Discord
- AI
- Not needed
- Access
- bot with Server Members intent, Read Message History, Send Messages
Send this to your assistant
Create a ClickRuntime automation: every Monday at 9am, count how many people joined my Discord server last week and which channels had the most messages, and post it to #mods.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A community lead can feel that a server is growing or fading, but without numbers it is only a feeling. Discord's built-in insights are limited to certain server types, and nobody has time on a Monday morning to count who joined, which channels are busy and which members have gone quiet. Decisions about where to put effort, which channels to merge and who to welcome personally end up being made on impressions.
Every Monday the automation lists members and their join dates, counts recent messages per channel, and posts a summary into a channel you pick. It also stores the counts, so the next report can show how the week compared with the one before, and a trend becomes visible within a month.
Community managers, server owners and moderators of growing public servers get the most from it.
What you get out of it
See growth and churn in numbers
New-member counts per week show whether your outreach is working, and a falling number is an early warning that something changed. You can respond within weeks, not after a season of decline.
Spot quiet members before they leave
A list of members who have gone silent gives you a chance to reach out personally. A short message from a moderator to someone who was active last month often brings them back.
Decide which channels earn their place
Message counts per channel show which spaces are alive and which are empty. You can retire dead channels, promote busy ones and stop guessing which topics your members actually want.
Week-over-week context
Storing last week's counts means each report says up or down, not just a number. A total of 400 messages means little until you know the week before it was 650.
Evidence for sponsors and partners
If you want a sponsor or a partner project, steady numbers help you describe your community accurately, instead of rounding up from a vague sense of size that a prospective partner will quickly see through.
How it works
What happens, step by step
Once a week, ClickRuntime looks at your Discord server's members and the past week's messages.
It counts new members and messages per channel.
It compares the numbers with the week before.
A short report is posted to your #mods channel with new members and the busiest channels.
Before it runs live
- Connect Discord
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
- Run it at a different time, more or less often, or only on weekdays
- 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 Discord steps into one automation
Under the hood
The code that runs this automation
from collections import Counter
from datetime import datetime, timedelta, timezone
from clickruntime import on_trigger, http, credentials
GUILD = "GUILD_ID"
MODS_CHANNEL = "MODS_CHANNEL_ID"
def discord(method, path, **kw):
r = http.request(method, f"https://discord.com/api/v10{path}",
headers={"Authorization": f"Bot {credentials.secret('DISCORD_BOT_TOKEN')}"}, **kw)
r.raise_for_status()
return r.json() if r.content else None
@on_trigger
def run(event):
since = datetime.now(timezone.utc) - timedelta(days=7)
members = discord("GET", f"/guilds/{GUILD}/members", params={"limit": 1000})
joined = sum(1 for m in members if datetime.fromisoformat(m["joined_at"]) >= since)
counts = Counter()
for ch in discord("GET", f"/guilds/{GUILD}/channels"):
if ch["type"] == 0:
msgs = discord("GET", f"/channels/{ch['id']}/messages", params={"limit": 100})
counts[ch["name"]] = sum(1 for m in msgs if datetime.fromisoformat(m["timestamp"]) >= since)
top = "\n".join(f"#{name}: {n}" for name, n in counts.most_common(5))
discord("POST", f"/channels/{MODS_CHANNEL}/messages",
json={"content": f"**Last week**\nNew members: {joined}\nBusiest channels:\n{top}"})
return {"joined": joined}FAQ
Common questions
Does it need access to message content?
How is a quiet member defined?
Will the first report show a trend?
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 told when an item is back in stock
Your server hears the moment a product page changes, like a sold-out item coming back.
See how it worksPost a weekly announcement in Discord
The same reminder goes out on time every week without anyone remembering to post it.
See how it worksClear out old messages every night
Busy channels like bot logs stay short, with messages older than a week removed.
See how it worksKeep exploring
Set up “Get a weekly report on your community” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.