Skip to Content
GuidesSlack Integration — Connect AI Agents to Your Workspace

Slack Integration

Connect Curate-Me AI to your Slack workspace to manage your AI agent fleet directly from channels. Use slash commands, @mention the bot, send DMs, and get real-time notifications — all without leaving Slack.

What You Get

FeatureDescription
/cm slash commandCheck status, manage fleet, schedule tasks, track costs
Slack shortcutsOne-click Quick Ask and Ask-from-message flows (no long command typing)
@mention the botChat with your agents directly in any channel
DM conversationsSend files and have multi-turn conversations with agents
App Home tabFleet overview dashboard right inside Slack
Interactive buttonsQuick actions, approval workflows, modal dialogs
Webhook notificationsReal-time alerts for agent events and cost thresholds

Setup Overview

There are two setup paths depending on your role:

PathWhoWhat
Self-service (coming soon)Any B2B customerClick “Connect Slack” in Dashboard Settings
Manual setupPlatform admin / your own workspaceConfigure at api.slack.com

Self-Service (B2B Customers)

When the dashboard integration page is live, connecting Slack is one click:

  1. Go to Dashboard > Settings > Integrations
  2. Click Connect Slack
  3. Authorize Curate-Me AI in your workspace
  4. Choose a default channel for notifications
  5. Done — /cm help works immediately

The OAuth callback stores your bot token securely and maps your Slack workspace to your Curate-Me organization automatically.

Manual Setup (Your Own Workspace)

If you’re running the platform yourself or need custom configuration:

Step 1: Create a Slack App

  1. Go to api.slack.com/apps  and click Create New App
  2. Choose From an app manifest for fastest setup
  3. Select your workspace
  4. Paste this manifest (update the URLs for your domain):
{ "display_information": { "name": "Curate-Me AI", "description": "AI agent fleet manager — schedule tasks, monitor costs, talk to your agents", "background_color": "#0d9488", "long_description": "Curate-Me AI connects your AI agent fleet to Slack. Use /cm commands to check agent status, schedule tasks, track LLM costs, and chat with your agents directly." }, "features": { "app_home": { "home_tab_enabled": true, "messages_tab_enabled": true, "messages_tab_read_only_enabled": false }, "bot_user": { "display_name": "Curate-Me AI", "always_online": true }, "slash_commands": [ { "command": "/cm", "url": "https://YOUR_DOMAIN/gateway/slack/commands", "description": "Curate-Me AI agent control — /cm help for commands", "usage_hint": "[status|fleet|ask|schedule|budget|help]", "should_escape": false } ] }, "oauth_config": { "redirect_urls": [ "https://YOUR_DOMAIN/gateway/admin/integrations/slack/callback" ], "scopes": { "bot": [ "chat:write", "chat:write.public", "channels:read", "channels:join", "channels:history", "app_mentions:read", "im:history", "im:write", "im:read", "users:read", "commands", "files:read", "reactions:write", "incoming-webhook" ] } }, "settings": { "event_subscriptions": { "request_url": "https://YOUR_DOMAIN/gateway/slack/events", "bot_events": [ "app_mention", "app_home_opened", "message.channels", "message.im" ] }, "interactivity": { "is_enabled": true, "request_url": "https://YOUR_DOMAIN/gateway/slack/interactions" }, "org_deploy_enabled": false, "socket_mode_enabled": false, "token_rotation_enabled": false } }

Replace YOUR_DOMAIN with your gateway URL (e.g., api.curate-me.ai).

Step 2: Install to Your Workspace

  1. Go to Install App in the sidebar
  2. Click Install to Workspace
  3. Authorize the requested permissions
  4. Copy the Bot User OAuth Token (xoxb-...)

Step 3: Store the Token

Store the bot token in your environment or credential vault:

# Environment variable (development) export SLACK_BOT_TOKEN=xoxb-your-token-here # Or store in MongoDB credential vault (production) curl -X POST https://YOUR_DOMAIN/gateway/admin/integrations/slack/configure \ -H "Authorization: Bearer $ADMIN_JWT" \ -H "Content-Type: application/json" \ -d '{ "bot_token": "xoxb-your-token-here", "team_id": "T0A6C9FH3L3", "channel_id": "C0AHAQFT596" }'

Step 4: Verify Events URL

Slack needs to verify your events endpoint. Once your gateway is deployed and accessible at the URL you configured, Slack will send a challenge request automatically. The gateway handles this:

POST /gateway/slack/events Body: {"type": "url_verification", "challenge": "abc123"} Response: {"challenge": "abc123"}

Slash Commands

Type /cm in any Slack channel to interact with Curate-Me AI.

Available Commands

CommandDescriptionExample
/cm helpShow all available commands/cm help
/cm statusShow all agents and their current state/cm status
/cm fleetFleet overview with resource usage/cm fleet
/cm agentsShow alias directory (recommended in pilot)/cm agents
/cm ask <agent> <message>Send a message to a specific agent/cm ask frank analyze this data
/cm @<agent> <message>Fast alias shortcut/cm @cfo-orch summarize this thread
/cm schedule <when> <task>Schedule a task with natural language/cm schedule every day at 9am check costs
/cm budgetShow today’s LLM spend by model/cm budget

Pilot Recommendation: Shortcuts + Aliases

For pilot teams, avoid long slash command phrasing in day-to-day usage:

  1. Use global shortcut Quick Ask to open an agent picker modal.
  2. Use message shortcut Ask Curate-Me from any message/thread.
  3. Use short aliases for fleet agents (cfo-orch, cfo-medicaid, cfo-budget).
  4. Keep /cm for power-user/backup flows.

Natural Language Scheduling

The schedule command understands natural language:

/cm schedule every weekday at 9am generate daily report /cm schedule every monday at 2pm review agent performance /cm schedule in 30 minutes run data sync /cm schedule tomorrow at 3pm deploy new model

Supported patterns:

  • Recurring: every day at 9am, every weekday at 2pm, every monday at 10am, every 2 hours, hourly
  • One-shot: in 30 minutes, tomorrow at 3pm, next tuesday at noon

@Mention the Bot

Mention @Curate-Me AI in any channel to start a conversation:

@Curate-Me AI what's the fleet status? @Curate-Me AI ask frank to analyze the latest logs @Curate-Me AI how much have we spent today?

The bot responds in-thread to keep channels clean.

DM Conversations

Send a direct message to the Curate-Me AI bot for private conversations:

  • Text messages are routed through the channel bridge to your default agent
  • File attachments are supported — upload CSVs, images, or documents and the agent can process them
  • Multi-turn conversations maintain context within a thread

App Home Tab

Click on the Curate-Me AI app in your sidebar to see the App Home tab:

  • Fleet status overview (online/offline agents)
  • Quick action buttons for common operations
  • Recent activity feed

Gateway Endpoints

The Slack integration uses three gateway endpoints:

EndpointPurposeCaller
POST /gateway/slack/commandsSlash command handlerSlack (on /cm usage)
POST /gateway/slack/eventsEvent subscriptions (mentions, DMs, App Home)Slack
POST /gateway/slack/interactionsButton clicks, modal submissionsSlack

These are registered automatically when the gateway starts.

Multi-Tenant Architecture

When multiple B2B organizations connect their Slack workspaces:

  1. Each org goes through the OAuth flow independently
  2. The OAuth callback stores the org’s bot_token + team_id mapping
  3. When Slack sends events, the gateway resolves team_id → org_id
  4. All operations are scoped to the correct organization
  5. Each org sees only their own agents, costs, and data

The channel_connections MongoDB collection stores per-org Slack credentials:

{ "org_id": "org_abc123", "channel_type": "slack", "config": { "bot_token": "xoxb-...", "team_id": "T0A6C9FH3L3", "default_channel_id": "C0AHAQFT596" }, "connected_at": "2026-03-01T10:00:00Z" }

Troubleshooting

/cm Returns an Error

  • “dispatch_failed”: The gateway is not reachable at the configured URL. Verify your domain is deployed and the gateway is running.
  • “expired_trigger_id”: The command took too long. Slack requires a response within 3 seconds.

Bot Doesn’t Respond to @Mentions

  1. Check that Event Subscriptions URL is verified (green checkmark in Slack app settings)
  2. Verify app_mention is in the bot events list
  3. Check gateway logs for incoming events

DM Files Not Processed

Ensure the files:read scope is granted. Reinstall the app if scopes were added after initial installation.

Next Steps