Slack Integration

Connect Slack to capture decisions from conversations.

The Slack connector captures knowledge from Slack conversations, turning discussions into searchable memories.

Setup

1. Install the Slack App

  1. Navigate to Connectors in the Cortex dashboard
  2. Click Connect Slack
  3. Authorize the Cortex Slack App
  4. Select channels to monitor

2. Configure Events

Cortex receives events via Slack's Events API:

POST /api/webhooks/slack

3. Message Processing

EventAction
messageCapture decisions and context
reaction:thumbsupMark as consensus
thread_replyCapture discussion context

What Gets Ingested

From Slack messages, Cortex extracts:

  • Decisions — Explicit choices and rationales
  • Context — Problem being solved
  • Consensus — Agreements (via reactions)
  • References — Links to PRs, docs, issues

Filtering

Not all messages are ingested. Cortex filters for:

  • Messages with decision keywords ("decided", "agreed", "let's go with")
  • Messages with significant reactions (3+ 👍)
  • Messages in designated "decisions" channels

Scope Assignment

Slack-sourced memories default to engineering scope. Override per-message:

@cortex:scope=product We decided to prioritize the mobile app.

Message formatting

Anything Cortex posts back to Slack — a workflow digest or a bot reply — is converted from standard Markdown to Slack's mrkdwn dialect before sending. **bold** becomes *bold*, -/* bullets become , [text](url) links become <url|text>, and numeric [1] citations are left intact as footnote markers. This is why messages render as formatted text instead of showing raw asterisks.

Disabling

  1. Navigate to Connectors in the dashboard
  2. Find Slack
  3. Click Disconnect