How to Back Up Slack Files and Attachments
Slack's export saves file links more than the files, and the free plan quietly drops old attachments. This is what to grab first, why the free plan takes files with it, and how to pull the ones you can still open into a local archive sorted by conversation.
The maker behind Empowia
Quick answer
Slack's export usually stores links to your files, not always the files themselves, and on the free plan attachments on older messages fall out of reach along with those messages. To actually keep your files, download the ones your account can still open into a local folder organized by conversation, so each file stays next to the message it came from. That leaves you with the real PDFs, images and spreadsheets on your own disk, searchable, instead of links that can expire.
Key takeaways
- Slack's official export references files as links back to Slack-hosted copies, so you still have to download the actual bytes — and that access can fail on old or free-plan files.
- On the free plan, a file goes dark when the message it's attached to passes the history window; you didn't delete it, you just can't reach it anymore.
- A pasted Google Drive or Dropbox link was never a Slack file — Slack only stored the URL, so backing up that message saves the link, not the document.
- To keep attachments, download the files your account can currently open into a local archive organized by conversation, then search them there instead of in Slack.
- Empowia for Slack does this on Windows 10/11 — the actual accessible files saved locally per conversation, with local search and bring-your-own-key AI, free up to 20 conversations then a one-time ~€19.90 — but it can't recover files Slack has already removed.
A client dropped a signed contract into our DM back in spring — a PDF, both signatures sitting on the last page. Last week I went to pull it. The file card was still in the thread. The file wasn't. Just a greyed-out preview and a dead link where the download used to be.
The fix is dull, and it works. You download the attachments your account can still open into a folder on your own computer, sorted by conversation — because Slack's export mostly hands you links to files rather than the files themselves, and on the free plan the old ones quietly slip out of reach. Do it while you can still open them. That's the whole thing. The rest is why, and how I do it.
the short version
- Slack's official export stores file links, not always the file bytes. You still have to fetch each attachment, and old or free-plan files may not come down at all.
- On the free plan, a file goes dark when the message it's attached to ages past the history window. You didn't delete it. You just can't reach it anymore.
- A pasted Google Drive or Dropbox link was never a Slack file. Saving it saves the link, not the document behind it.
- The thing that actually works is dull — download the files you can currently see into a local archive, keep each one next to its message, and search there instead of in Slack.
does the official export actually save your files?
Here's the part that surprised me the first time. When you run Slack's export, you get a pile of JSON — one file per channel, split by date. For each attachment, that JSON holds the file's name, who posted it, and a URL pointing back to the copy Slack is hosting. A link. Not the PDF, not the PNG. The bytes stay on Slack's side, and the export just tells you where they used to live.
Which means an export folder can look complete and be mostly pointers. To turn those links into real files you have to go download each one, and every download quietly assumes your account can still reach it. For recent stuff on a paid plan, fine. For anything old, or anything on the free plan, some of those links lead nowhere — the same greyed-out preview I hit with my contract.
So the export is a map. And a map is not the thing it points at, which in my case was a signed statement of work I no longer had.
what the free plan does to old files, quietly
The free plan is where this stings most. Slack only keeps recent history visible on it, and once a message crosses that line, the message and whatever was attached to it both drop out of view together. The file isn't necessarily wiped from existence — you just lose the door to it. No warning. No "your attachments are about to expire" email. It's already happened by the time you go looking.
I wrote a whole piece on how the free plan's history window works if you want the mechanics. For files, the takeaway is short. If your important attachments live on a free workspace, the clock is running, and backing them up isn't a someday task.
a link is not the file
There are really two kinds of "file" floating around in Slack, and they back up completely differently.
One is a genuine Slack upload — someone dragged a spreadsheet or a design straight into the channel, and Slack is holding the actual bytes. Those you can download, as long as your account can still open them. That's the good case.
The other is a link somebody pasted — a Drive doc, a Dropbox folder, a Figma frame. Slack never had that document. It only ever had the URL. No backup tool, mine included, can pull a file Slack doesn't hold, so "backing up" that message saves the text of the link and nothing more. If the owner moves the doc or changes who can see it, the link dies, and there was never anything on Slack's end to rescue. Worth knowing which of your "files" are really this second kind before you count on having them.
how I back up the files I can still open
The method that works is unglamorous, and it's mostly about doing it in time.
You use the account you already sign in with — no admin, no API token, no app to register — and point a local archiver at the conversations that account can see. It walks the DMs, private channels, and channels you're in, and it pulls down the real attachments. The PDFs, the images, the .xlsx files, the whole lot, alongside the messages they arrived with. Everything lands on your own disk. This is what Empowia for Slack does on Windows 10 and 11 — it downloads the accessible files, not links to them, into a folder you keep.
One line I have to keep saying, to myself included. Back up only the files your account is actually allowed to see and keep. This copies what's already in front of you. It doesn't reach into other people's private messages, and your workplace's policy on taking data still applies.
keeping each file next to the message it came from
A folder of loose downloads is its own kind of useless. If your backup is four thousand files named image (12).png, you've moved the problem, not solved it.
So the copies get organized by conversation — a place for each DM and channel — with the files grouped where they belong and kept with the message around them. Six months later that context is the whole game. Not just "a PDF," but the PDF the client sent in this thread, on this day, with the line "final version, signed" right above it. The file and its story stay together, which is exactly what Slack stops giving you the moment the history rolls off.
finding one attachment six months later
Once it's all local, finding things gets boring in the best way. You search across everything at once — by filename, by a few words from the message near the file, by the person who sent it. No scrolling Slack hoping it's still there. No grepping through raw JSON.
And because it's on your machine, you can point AI at it with your own API key and ask in plain words — where's the signed SOW from the spring project — and get an answer that cites the actual message it came from, so you can check it yourself. Your key, your archive, your questions. The file that used to take twenty minutes of scroll-and-pray takes one search.
where this stops
I'd rather tell you where this stops than let you find out later.
It's Windows 10 and 11 only right now. A Mac version is coming, but it isn't here, so if you're on macOS today this won't help you yet. It can't raise the dead, either. If a file already aged off the free plan, or Slack already removed it, there's nothing left to download — no tool can back up a file that's already gone. My spring contract is probably in that bucket, and I've made my peace with it.
And this is personal-scope by design. It copies the files you can reach, for you. It isn't org-wide retention, legal hold, or company disaster recovery — that's a different, admin-run kind of product for a different buyer.
one thing worth doing today
I can't get that contract back. What I can do is not stand here again next spring.
If your files matter, don't back up everything at once. Go find the single attachment you'd hate most to lose — the signed contract, the design file, whatever it is — and pull down just that conversation's files first, today, while your account can still open them. Empowia for Slack will save the real files into a folder that's yours, and the free tier covers twenty conversations, which is plenty for the stuff you'd actually miss. Start with the greyed-out preview you're dreading. Beat it to the file.
FAQ
Does Slack export download the actual files?
Not on its own. Slack's export gives you JSON with a link to each file, not the file itself, so the export folder is mostly pointers back to Slack-hosted copies. You still have to download every attachment, and that only works while your account can reach it. Old files, and files on the free plan past the history window, may not come down at all. To get the real bytes, download the accessible files into a local archive.
How to download every file from a channel?
Use an account that can see the channel and a tool that walks it and saves the attachments locally. Slack's interface has no one-click "download all files" button, and the export hands you links, so you either save files one by one or point a local archiver at the channel. Empowia for Slack does this on Windows — it pulls the actual PDFs, images and spreadsheets from every conversation your account can open into a folder, grouped by channel.
Can I back up files from DMs?
Yes, as long as it's your own account and your own DMs. A regular member can't run Slack's admin export for private conversations, but a local archiver that reuses your signed-in session can save the files from the DMs and group DMs you can already open — no admin needed. You can only back up what your account is authorized to see, and your workplace's data policy still applies to messages that involve other people.
What happens when a file link expires?
Two different cases. If it's a Slack-hosted upload, the link dying usually means your account lost access — the file aged off the free plan, or Slack removed it — and there's nothing left to download. If it's a pasted Google Drive or Dropbox link, Slack never held the file, so that link breaks when the owner moves the document or changes permissions. Either way, back up while the file still opens, because once it's gone there's nothing to save.
How do I search all attachments in one place?
Back the files up locally first, then search the archive instead of Slack. Once your attachments sit in one folder, organized by conversation, you can search by filename, by words from the surrounding message, or by sender — all at once, offline. Empowia adds local full-text search and, with your own AI key, plain-language questions that cite the source message. That beats scrolling Slack or grepping raw export JSON channel by channel.
Does backing up a Google Drive link save the file?
No. A Drive or Dropbox link pasted into Slack is just a URL — Slack never stored the document, so backing up that message saves the link text, not the file behind it. To keep an externally linked document you have to download it from that service directly. Slack backups only hold the files Slack actually hosts, meaning the attachments uploaded straight into a conversation.
Comments
Loading comments…