Skip to content

Slack Sensor

What it ingests

Messages and threads from the Slack channels you list — the decisions and context that happen in conversation between meetings.

Credential

References a slack_bot_token credential by id. The secret is a bot token (xoxb-…) with these scopes:

  • channels:history
  • channels:read
  • users:read
  • users:read.email
bash
curl -sS -X POST https://your-corveil-host/api/credentials \
  -H "Authorization: Bearer <admin>" -H "Content-Type: application/json" \
  -d '{"type":"slack_bot_token","name":"acme-slack-bot","secret":"xoxb-..."}'

Config fields

KeyRequiredNotes
channelsyesComma-separated channel names without the leading #, e.g. general, engineering. Invite the bot to each channel first.

Provider-side setup

  1. Create a Slack app at api.slack.com/apps for your workspace.
  2. Under OAuth & Permissions, add the four bot scopes above.
  3. Install the app to the workspace and copy the Bot User OAuth Token (xoxb-…).
  4. Invite the bot to each channel you listed (/invite @yourbot) — the bot can only read history for channels it's a member of.

Wire-up

POST /api/sensors

json
{
  "sensor_type": "slack",
  "name": "Acme Slack",
  "config": { "channels": "general, engineering" },
  "credentials": { "token": "<slack_bot_token credential id>" }
}

Verify

Run Test connection to confirm the token is valid and the scopes are present. Once polling, new messages in the listed channels appear as conversation events. If a channel returns not_in_channel, invite the bot to it.