Slack integration

What Management OS does with your Slack workspace.

Slack is the delivery surface for the Weekly Intelligence Brief and the conversational surface for Ask Anything inside Slack itself. This page documents every scope we request, every channel we create on connect, and every message surface we write to.

1. What we read

Slack reads are tightly scoped:

  • DMs sent to the bot — message content in conversations the leader has with the Management OS bot itself. Used by the in-Slack AMA surface
  • @-mentions in channels — the text of messages that explicitly mention the bot in a channel where it's present
  • Channel and user lists — names and IDs of channels and members, so the default- channel picker works and so coaching alerts route to the correct person
  • User emails — to map Slack identities to Management OS app users

We do not read channel message history, do not read DMs between humans, do not read files shared in channels, and do not read message reactions or thread replies that do not mention the bot.

2. What we write

Slack is one of the few places Management OS writes to, because it is where your briefs are delivered. The write surface is narrow and documented:

  • Channel messages via chat.postMessage — Weekly Intelligence Briefs, deal-at-risk alerts, champion-shift surfacing, board-update reminders, and other automation outputs are posted to the channel the workspace has configured for each family. Messages are Block Kit formatted and clearly attributed to the Management OS app
  • DM replies via the same method — when the leader sends a DM to the bot, the AMA response is posted back as a DM reply
  • Channel creation via conversations.create — on first connect, the family channels are created idempotently. If a channel of the same name already exists, we look it up instead of creating a duplicate. Subsequent re-installs do not re-create channels

We do not delete or edit other users' messages, archive channels, change channel topics, modify user profiles, or install other apps.

3. The OAuth scopes we request — and why each one

The scope set is defined in lib/slack/client.ts → SLACK_SCOPES. Twelve scopes total — every one maps to a feature on this page.

chat:write Brief delivery

Send messages to channels the bot has been added to — the primary mechanism for delivering the Weekly Intelligence Brief, deal-at-risk alerts, champion-shift surfacing, and other automation outputs.

chat:write.public Brief delivery

Post in public channels without requiring an invite first. Used so the family-channel auto-bootstrap (on connect) can deliver to #mos-business, #mos-people, #mos-self, etc. without an extra manual step.

chat:write.customize Brief delivery

Per-message identity override (custom username + icon). Used by Joy, the agent-org Orchestrator, so her posts appear as 'Joy' with a distinct icon while still routing through the Management OS app install.

channels:read Setup

List public channels so the default-channel picker in Settings can show your workspace's channel list. No message content access.

channels:manage Setup

Create public channels — used by the family-channel auto-bootstrap on first connect to provision #mos-business, #mos-people, #mos-self, and other canonical family channels. Idempotent: re-installs do not re-create existing channels.

groups:read Setup

List private channels so the default-channel picker can include private channels the bot has been invited to.

groups:write Setup

Create private channels — used by the family-channel auto-bootstrap to provision the leadership-private channel (the only private default in the canonical family set).

users:read Routing

Resolve workspace member identities so the Brief can address coaching alerts and rep-effectiveness rankings to the correct person.

users:read.email Routing

Map Management OS app users to Slack users by email address. Required so the same person across both products is recognized as one identity, and so direct messages can be routed correctly.

im:history Slack-AMA

Read messages in direct messages sent to the bot — the surface that lets the leader type 'show me deals at risk' in Slack and receive a Management OS AMA answer in-place. Only DMs to the bot itself are read; no other DMs in the workspace are accessed.

im:read Slack-AMA

List the DM channels the bot is in so the AMA handler can identify which conversation a user's message belongs to. Metadata only.

app_mentions:read Slack-AMA

Receive @-mention events in channels where the bot is present, so a leader can say '@Management OS what's my forecast confidence?' in any channel and get an answer.

4. Where your Slack data lives

Application database: Supabase Postgres (Management OS's production database, US East). Encrypted at rest (AES-256), encrypted in transit (TLS 1.3). Workspace-scoped row-level security (RLS) means one customer's data is never visible to another.

Bot tokens: The Slack bot token (the xoxb- value returned by Slack's OAuth exchange) is stored in Supabase under workspace-scoped RLS, encrypted at rest, and never returned to client browsers. Only the Management OS server-side runtime can read it.

Inference layer: Anthropic API (Claude models). The content of AMA prompts sent to the bot is passed to Anthropic at inference time; responses are returned to Slack via the bot. Anthropic does not train on customer data per their API terms.

Retention: We retain Slack-derived metadata (channel IDs, message IDs, delivery receipts) while your subscription is active. On disconnect we delete the bot install row immediately. On subscription cancellation, customer data is retained for 30 days for restoration, then permanently deleted. Data subject deletion requests are honored within 30 days per our Privacy Policy.

5. How to install Management OS for Slack

  1. Sign up at mgmt-os.ai and complete onboarding to your workspace
  2. Open Management OS → Settings → Integrations
  3. Find Slack in the integration directory and click Add to Slack
  4. You'll be redirected to Slack's OAuth authorization screen. Choose the Slack workspace you want Management OS to install into
  5. Review the requested scopes and click Allow
  6. On return, Management OS auto-creates the canonical family channels (#mos-business, #mos-people, #mos-self, and the private #mos-leadership). The Settings page shows which channels were created and which were already present
  7. Confirm the default channel per family — Management OS pre-fills with the auto-created channels but the workspace owner can re-route any family to a different channel

6. How to use Management OS once connected

Two surfaces light up once Slack is connected:

  • Brief delivery — the Weekly Intelligence Brief lands in the family channels every Monday morning (or on the cadence the workspace owner configures). The three pillars route to their respective channels: Business → #mos-business, Team → #mos-people, Self → #mos-self
  • In-Slack AMA — DM the Management OS bot, or @-mention it in any channel where it's present, with a question like "which deals slipped this week?" or "show me the top 3 coaching priorities for the team." The bot answers in-place

The three Brief pillars — Develop Your Business, Develop Your Team, Develop Yourself — work the same in Slack as they do in the Management OS web app, and the underlying data sources (HubSpot, Google, Microsoft, Notion, etc.) are exactly the same.

7. How to disconnect from Management OS

  1. Open Management OS → Settings → Integrations
  2. Find Slack in the connected integrations list
  3. Click Disconnect → confirm

On disconnect we delete the stored bot token immediately and stop posting any new messages. We do not delete the channels we created on install — those belong to your workspace now, and the workspace owner can archive or keep them as they see fit. Historical briefs already posted into Slack remain in the channel where they were posted.

To remove all historical Management-OS-derived data after disconnect, email privacy@mgmt-os.ai with your workspace identifier. We process deletion requests within 30 days.

8. How to revoke from Slack's side

  1. Open your Slack workspace in a browser and go to [workspace].slack.com/apps/manage (the same path is reachable from Slack → Tools & settings → Manage apps)
  2. Find Management OS in the installed-apps list — use the search box if needed
  3. Click into the app, then click Remove App → confirm

Slack workspace owners and admins can remove the app for the whole workspace. Removing from Slack's side invalidates the bot token immediately. Our next chat.postMessage call returns invalid_auth and we surface a re-connection prompt in Management OS Settings.

9. Security disclosures + contact

Security incident reporting: security@mgmt-os.ai
Privacy / data subject requests: privacy@mgmt-os.ai
Integration support: support@mgmt-os.ai

For general questions about Management OS, see our Support page or Manifesto.

Last updated: 2026-11-01. We update this page within 7 days of any change to scopes, data flows, or retention.