Slack's auto-extract links setting (and what it actually does)
Slack quietly fetches link previews for every URL pasted in a channel. Here's how the setting works, why teams turn it off, and how to control it per-channel or per-message.
When someone pastes a URL into a Slack message, Slack's servers fetch the page and unfurl a preview — image, title, description. The setting controls whether this happens automatically. It matters more than people realize, for three reasons.
Where the setting lives
Personal preference: Preferences → Messages & media → Inline media & links. Toggles whether you see previews in your own client.
Workspace-wide: Settings & administration → Workspace settings → Permissions → Message visibility (admin only). Controls whether Slack fetches previews at all on the workspace.
Why teams turn it off
- Privacy: Slack's bot fetches the URL the moment you paste it. Internal tools, password-reset links, and one-time URLs can be triggered just by a paste, before anyone clicks. This is a real incident class — single-use links consumed by Slackbot is the canonical example.
- Noise: long unfurled previews dominate the channel; turning them off keeps conversations skimmable.
- Bandwidth: every paste triggers a fetch, including from people who never look at the preview.
Per-message control
After posting, hover the preview → "Remove preview" removes just that one. Wrapping a URL in <> brackets at paste time prevents the preview from being generated at all: <https://example.com>.
Per-channel via integrations
There's no native per-channel toggle. The workaround: a Slack app that listens for messages with URLs and removes the preview server-side, scoped to specific channels. Useful for channels handling sensitive links (security, ops).
What about extracting the links from a Slack channel?
Different problem. The Slack API conversations.history returns every message; filter for ones with attachments[].original_url or run a URL regex over the text. Useful for archiving, link audits, or bookmarking workflows.