Skip to content

Weekly

Back up a Slack channel every week

Each week you get a spreadsheet of everything said in a channel, by email.

Runs
Weekly
Apps
Slack
AI
Not needed
Access
channels:history, users:read

Send this to your assistant

Create a ClickRuntime automation: every Sunday, export last week's messages from #clients to a CSV with names and times, and email it to me.

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

Some conversations in Slack turn out to matter later: a customer-support channel that a product manager wants to analyze, a vendor channel needed for a dispute, or a project channel that legal wants a copy of. Exporting messages from Slack by hand is awkward, since workspace exports require admin rights and cover everything, and copying text into a document loses author names and timestamps. By the time someone needs the history, nobody has been saving it.

Each week, ClickRuntime pages through a channel's message history, replaces user IDs with names, builds a CSV with date, author and text, and emails it to you. The file is a plain, searchable record that does not depend on the workspace's retention settings or on anyone remembering to download it.

It is useful for support analysis, project records and teams on Slack plans that delete or limit message history.

What you get out of it

  • Important conversations are preserved

    A channel that becomes valuable later has weeks of history already saved in your mailbox, so you do not discover too late that older messages are gone or hard to retrieve.

  • Analysis is possible in a spreadsheet

    With author, date and text in separate columns, a product manager can filter by customer or keyword, count requests, and share findings with the team without scrolling through Slack. Findings can then be shared with teammates as a chart or a short table.

  • Records survive retention limits

    If your workspace deletes messages after a set time, the weekly files remain in email. That helps for disputes, compliance questions and projects that outlast the retention window. Storing a copy outside Slack also gives you a backup if a channel is deleted by mistake.

  • Names make the export readable

    Raw Slack data lists user IDs that mean nothing to a reader. Replacing them with names means the CSV can be handed to a manager or a lawyer who has no access to the workspace. Nobody has to decode IDs against a user list before using the file.

  • No admin export is needed

    Workspace-wide exports require owner-level permissions and produce nested JSON. A focused weekly CSV for one channel avoids that process and gives the right amount of data to the right person.

How it works

What happens, step by step

  1. Once a week ClickRuntime reads every message from the past seven days in the Slack channel you chose.

  2. It replaces user IDs with people's real names.

  3. The messages are put into a spreadsheet file with the time, the person and the message, oldest first.

  4. The file is emailed to you as a weekly backup, with the message count in the subject.

Before it runs live

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

What you get

RunsWeekly
Back up a Slack channel every weektoday, 9:00Succeeded
Email · #clients export: 86 messagestime (UTC),name,message 2026-10-13 09:12,Alex Kim,Northwind signed off the Q4 scope

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.
weekly_channel_message_export.pyexample
import csv, io, time
from datetime import datetime, timezone
from slack_sdk import WebClient
from clickruntime import on_trigger, credentials, notify

CLIENTS = "C06CLIENTS"

@on_trigger
def run(event):
    slack = WebClient(token=credentials.connection("slack", "work"))
    msgs = slack.conversations_history(channel=CLIENTS, oldest=str(time.time() - 7 * 86400), limit=1000)["messages"]
    names, buf = {}, io.StringIO()
    writer = csv.writer(buf)
    writer.writerow(["time (UTC)", "name", "message"])
    for m in reversed(msgs):
        uid = m.get("user")
        if uid and uid not in names:
            names[uid] = slack.users_info(user=uid)["user"]["real_name"]
        when = datetime.fromtimestamp(float(m["ts"]), timezone.utc).strftime("%Y-%m-%d %H:%M")
        writer.writerow([when, names.get(uid, "bot"), m.get("text", "")])
    notify.email_me(f"#clients export: {len(msgs)} messages", buf.getvalue())
    return {"messages": len(msgs)}

FAQ

Common questions

Does the CSV include thread replies?
The export reads the channel history, and replies in threads can be included by also fetching each thread. Say so when setting it up if the replies matter, since they often hold the actual answers.
Can I export more than one channel?
Yes. You can list several channels, and each one is exported as its own file or as a combined sheet with a channel column. Private channels can only be exported where the Slack bot is a member.
Are files and images from messages included?
The CSV contains message text and metadata such as author and time. Attached files appear as a link or file name, but the files themselves are not downloaded into the export, so keep the originals in Slack.
What permissions does it need?
channels:history, users:read. 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 “Back up a Slack channel every week” from your assistant

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