Skip to main content

Documentation Index

Fetch the complete documentation index at: https://agnt.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Slack is the first first-party connector in agntdata. Connect your Slack workspace once from Integrations → Slack. agntdata installs a bot that can:
  • Receive DMs and @mentions and route them to a default deployed agent.
  • Stream agent replies back into the same thread, updating the message as new tokens arrive.
  • Post escalation prompts into a designated channel so on-call humans can answer.
Once connected, deployed agents can opt into Slack tools (slack_post_message, slack_conversation_history, slack_conversation_replies) from the Connectors tab of the agent’s tool picker. The Builder meta-agent surfaces them under type: "connector" in list_available_tools, with a connected flag and a setup_path pointing back at this page.

Setup

Install the Slack app from Integrations → Slack → Connect Slack. The button kicks off Slack’s OAuth flow via the generic OAuth surface; on approval Slack redirects back to /webhooks/inbound/oauth/slack/callback, which exchanges the code for a bot token and stores it encrypted in oauth_installs (with Slack-specific routing defaults under metadata). The Slack app itself is provisioned from a manifest checked into the repo at docs/setup/slack-app-manifest.yaml — paste it into api.slack.com/apps → Create New App → From a manifest to reproduce the exact scopes, slash commands, and event subscriptions agntdata expects.

Bot scopes

Grouped by capability so it’s easy to reason about least-privilege. Chat with an agent
  • app_mentions:read, chat:write, chat:write.public, commands
  • im:history, im:read, im:write
  • mpim:history, mpim:read, mpim:write
  • channels:history, groups:history
Create and manage Slack channels (agent tool)
  • channels:read, channels:manage, channels:join
  • groups:read, groups:write
Resolve teammates when inviting
  • team:read, users:read, users:read.email
The same list lives in SLACK_BOT_SCOPES in apps/api/src/services/oauth/providers/slack.ts. Keep the manifest, the constant, and this page in sync — adding a scope later forces every install to be reauthorised.

Channel-management tools

Once an install is connected, agents can ask the platform to spin up a Slack channel, invite teammates, and converse with them inline. The connector exposes:
  • slack_post_message, slack_conversation_history, slack_conversation_replies — chat primitives.
  • (Coming soon) slack_create_channel, slack_invite_to_channel, slack_set_channel_topic — built on top of conversations.create, conversations.invite, and conversations.setTopic. Scopes are already granted by the manifest above so no reinstall will be needed when these ship.

Routing inbound messages

For every Slack DM or mention, the router:
  1. Resolves (or creates) an agent_session keyed off the conversation id.
  2. Sends the user message to Anthropic against the configured default agent.
  3. Streams the response back, calling chat.update to replace the placeholder message in real time.
You can change the default agent and the escalation channel any time from the Slack dialog on Integrations.

Slash commands

  • /agnt list — lists your deployed agents and how to use them.
  • /agnt help — usage instructions.

External users

Each install has an external_user_policy:
  • reject (default) — block messages from users outside your Slack workspace.
  • allow_listed — only accept users you’ve explicitly added.
  • allow_all — accept anyone the bot can see.