Integrations

Connect Slack to Coppermind

Slack works with Coppermind in two directions, and they are completely separate:

  • Briefings out — Coppermind posts your daily briefings to a Slack channel you choose. This is a one-click Slack connection in the Coppermind dashboard (covered first, below).
  • Messages in (ingestion) — Claude reads a client's Slack channel through the Slack integration you already have in Claude, and saves the conversation into that client's memory. No Coppermind-side Slack setup is involved (covered at the end).

You can do either, both, or neither.

Before you start#

You need to be in the Slack workspace where you want briefings to land. If you have multiple workspaces (your agency's plus client workspaces), make sure you are signed into the right one in your browser before you click Connect.

Connect#

  1. Open https://hq.coppermind.app and sign in.
  2. Click Briefings in the left nav.
  3. In the Slack delivery panel at the top, click Connect Slack.
  4. Slack opens a consent screen showing what Coppermind Briefings can do:
  • Post messages to channels you choose
  • See public channel listings
  • Manage private channels we create together
  1. Click Allow. Slack redirects you back to the dashboard.

Pick a channel#

After approving on slack.com you land back on the Briefings tab with a channel picker. Three options:

  • Create a new private channel #coppermind-briefings (recommended for most CMOs). One private channel just for your briefings — you and the bot are members; nobody else sees it unless you invite them.
  • Create a new channel with a different name if coppermind-briefings is already taken or you prefer something else. Same private-by-default behavior.
  • Use an existing channel the bot can already see. The bot can only see public channels and private channels it has been invited to. To use a private channel that is not in the dropdown, type /invite @Coppermind Briefings in that channel first, then refresh.

Click Save channel. The connection panel flips to "Connected → #cmo-daily" (or whatever channel you picked).

Verify#

On the Briefings tab, find the row for Morning Briefing and click Run + Slack. Within ten seconds the briefing should post to the channel you picked. If it posts, you are done — tomorrow at 6am local time the cron fires automatically.

Pull Slack messages into Coppermind (ingestion)#

This is separate from briefings delivery above. To pull a client's Slack conversations into memory, Coppermind uses the Slack integration you already have in Claude — the same source-agnostic approach as email. Claude reads the channel through your Slack integration and hands the conversation to Coppermind. There is no Coppermind-side Slack connection, no OAuth, and no dashboard step for this.

Prerequisite: Slack connected in Claude#

You need Slack connected as an integration in Claude itself — in Claude Desktop or claude.ai, open Settings → Connectors and confirm Slack is connected. If you can already ask Claude to read one of your Slack channels, you're set. Coppermind doesn't need its own Slack permission for this; it uses Claude's.

Pull a channel into a client#

Switch to the client, then ask Claude in plain English to ingest the channel:

Ingest my Acme Slack channel into the Acme client

Other ways to say it:

Pull the last two weeks of #acme-marketing into Acme
Catch Coppermind up on my 5 Star Slack channel
/cmo-ingest Acme slack

Claude finds the channel that matches the client, reads its recent history through your Slack integration, groups the messages that matter — decisions, commitments, who's waiting on what — and stores them as memories in that client's client mind. Routine chatter (acks, emoji, bot pings) is skipped. Each run remembers where it left off, so asking again only pulls messages newer than last time.

Verify#

Right there in Claude, ask "what's new in Acme?" or "show me the recent Slack memories for Acme." The conversation you just ingested should come back as memories, tagged with the channel it came from.

You're ingesting messages other people wrote in your client's workspace. Make sure you're allowed to — treat it like saving their meeting transcripts or forwarding their email. When an engagement ends, the captured memories travel with that client's client mind in a handoff.

Reconnecting#

If your Slack workspace owner removes the Coppermind Briefings app, or your token is revoked for any other reason, the connection panel switches to a red Reconnect needed banner with the reason. Click Reconnect Slack to start the OAuth flow again — your channel choice is preserved.

Disconnecting#

Click Disconnect in the connection panel. Coppermind:

  1. Calls Slack's auth.revoke to invalidate the bot token.
  2. Deletes the install row from our database.

After disconnecting, briefings stop delivering until you reconnect. The channel itself stays in your workspace; we only manage the bot's access.

What we store#

When you connect Slack, Coppermind stores in our database:

  • The Slack workspace ID and name
  • The bot's user ID
  • An encrypted bot token (we cannot read it without our encryption key, which is rotated separately)
  • The granted scopes
  • The channel ID and name you picked
  • An encrypted token, granted scopes, channel choice

Two separate things, two separate answers:

  • Briefings delivery (this Slack connection): we do not store messages from your channels or member lists. The bot reads your briefing channel's recent history only when an end-of-day briefing needs to find this morning's post.
  • Ingestion (via Claude's Slack integration): when you ask Claude to ingest a channel, Claude reads that channel through your own Slack integration and Coppermind stores the resulting memories in the client's client mind — exactly like any other ingested source (email, transcripts, documents). Coppermind never reads Slack on its own here; it only stores what you asked Claude to pull.

Troubleshooting#

"This app is restricted by your Slack admin." Your workspace administrator has app-install restrictions. Open https://[your-workspace].slack.com/apps/manage and request approval for "Coppermind Briefings" — your admin can approve it from there. Once approved, click Connect again.

"Slack issued fewer scopes than requested." The OAuth screen had toggles unchecked. Click Reconnect and approve all requested scopes — Coppermind needs all of them to post and manage the briefings channel.

Connect button does nothing. Hard-refresh the dashboard (Cmd+Shift+R on Mac, Ctrl+Shift+R on Windows). If still stuck, check that you are signed into the dashboard with the right API key.

Briefing did not post. Check the connection panel — if it says "Reconnect needed," your token has been revoked. Otherwise verify the bot is in the channel by running /invite @Coppermind Briefings once.

Claude can't find or read my Slack channel for ingestion. Ingestion uses Claude's Slack integration, not the Coppermind briefings connection. In Claude, open Settings → Connectors and confirm Slack is connected. If it is and Claude still can't see a private channel, make sure your Slack user is a member of that channel.

Ingestion grabbed the wrong client's channel. Switch to the right client first (switch to Acme), then ask again naming the channel explicitly: "ingest #acme-marketing into Acme."

For any other failure mode, contact your fractional CMO contact at Coppermind or email support@coppermind.app.


Related: Briefings overview | What Coppermind stores | Disconnect a connector

Ready to try this yourself?

Coppermind is free to start and runs inside Claude. Your first meeting prep will convince you.

Try Coppermind Free
Browse all guides →