Skip to content
Integrations

Connect Slack to Armbrain

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

  • Briefings out — Armbrain posts your daily briefings to a Slack channel you choose. This is a one-click Slack connection in the Armbrain 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 Armbrain-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 Armbrain 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 @Armbrain 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 Armbrain (ingestion)#

This is separate from briefings delivery above. To pull a client's Slack conversations into memory, Armbrain 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 Armbrain. There is no Armbrain-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. Armbrain 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 Armbrain 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 Armbrain 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. Armbrain:

  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, Armbrain 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 Armbrain stores the resulting memories in the client's client mind — exactly like any other ingested source (email, transcripts, documents). Armbrain 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 "Armbrain 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 — Armbrain 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 @Armbrain Briefings once.

Claude can't find or read my Slack channel for ingestion. Ingestion uses Claude's Slack integration, not the Armbrain 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 Armbrain or email support@coppermind.app.


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

Ready to try this yourself?

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

Try Armbrain Free
Browse all guides →
Armbrain
AI memory for fractional CMOs
Product
Legal
© Volacci Agency. All rights reserved. — support@coppermind.app