Skip to content

Weekly

Share a weekly report file in Slack

Every week a fresh spreadsheet lands in the channel, ready to open, with nobody having to build it.

Runs
Weekly
Apps
Slack
AI
Not needed
Access
channels:history, files:write

Send this to your assistant

Create a ClickRuntime automation: every Monday morning, make a CSV of how many messages each person posted in #support last week and upload it to #leads.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A team lead wants to know who is actually using the channel. Someone exports messages, counts them per person in a spreadsheet and drags the file into Slack, and it takes twenty minutes the first time, and then it stops because the next week is busy. Community managers, department heads and workspace admins who rely on activity numbers end up with a few reports from months ago and nothing recent, so decisions about channels are made on impressions.

Every week, ClickRuntime counts the messages in a channel per user, builds a CSV with names and totals, and uploads that file straight into the channel you pick through Slack's file upload. The file appears as an ordinary attachment that people can open in Excel or Sheets, search for later or download.

The same pattern fits any small report you want dropped into a channel on a schedule, not only message counts.

What you get out of it

  • Participation is measured, not guessed

    A weekly count of messages per person shows who is carrying a channel and who has gone quiet, so a manager can talk to the right people with numbers in hand.

  • The file lives where the team works

    Uploading the CSV into the channel means no one needs a shared drive link or an email attachment. People open it from the same place they would discuss it, with comments in the thread. Replies and questions about the numbers stay attached to the file for later.

  • Weeks stack into a history

    Each upload is dated and stays in the channel. Scrolling back shows whether activity grew after a change, such as a new onboarding process or a reorganization of channels. No archive folder needs to be maintained by anyone at all.

  • Reports no longer depend on one person

    The weekly chore no longer waits for whoever remembers to run it. If the usual owner is away, the file still appears on schedule and the numbers stay comparable. Vacations and busy weeks stop creating gaps in the data.

  • Spreadsheets are ready to use

    A CSV opens directly in Excel or Google Sheets, so analysts can sort, chart or merge it with other data without retyping anything from a screenshot or a message. That saves a surprising amount of cleanup time every single month.

How it works

What happens, step by step

  1. Once a week ClickRuntime reads the past seven days of messages in your support channel.

  2. It counts how many messages each person sent.

  3. The counts are saved as a spreadsheet file, busiest person first.

  4. The file is uploaded to your team leads' Slack channel with a one-line note.

Before it runs live

  • Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)

What you get

RunsWeekly
Share a weekly report file in Slacktoday, 9:00Succeeded
Slack · #leadsMessages per person in #support last week 📎 support-messages-last-week.csv

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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 Google Sheets
  • Combine it with other Slack steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
upload_a_generated_report_file_to_a_channel.pyexample
import csv, io, time
from collections import Counter
from slack_sdk import WebClient
from clickruntime import on_trigger, credentials

SUPPORT, LEADS = "C01SUPPORT", "C03LEADS00"

@on_trigger
def run(event):
    slack = WebClient(token=credentials.connection("slack", "work"))
    msgs = slack.conversations_history(channel=SUPPORT, oldest=str(time.time() - 7 * 86400), limit=1000)["messages"]
    counts = Counter(m["user"] for m in msgs if m.get("user"))
    buf = io.StringIO()
    writer = csv.writer(buf)
    writer.writerow(["person", "messages"])
    for uid, n in counts.most_common():
        writer.writerow([slack.users_info(user=uid)["user"]["real_name"], n])
    # files_upload_v2 uses files.getUploadURLExternal + files.completeUploadExternal
    slack.files_upload_v2(channel=LEADS, filename="support-messages-last-week.csv",
                          content=buf.getvalue(), initial_comment="Messages per person in #support last week")
    return {"people": len(counts)}

FAQ

Common questions

What columns does the CSV contain?
By default it has the person's display name, their Slack user ID and the number of messages they posted in the period. More columns, such as thread replies or reactions given, can be added when the report is set up.
Can it upload a file other than message counts?
Yes. The upload step takes any text you can generate, so a list of unanswered questions, a roster of channel members or a custom summary can be built as CSV and posted the same way.
Which channel can the file be posted in?
Any channel the Slack connection is allowed to post in. For a private channel, invite the bot first. Files uploaded this way are visible to everyone in the channel, so choose a place suited to the data.
What permissions does it need?
channels:history, files:write. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it runs (weekly). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Share a weekly report file in Slack” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.