Slack Integration

SkillSearch

The slack skill lets your agent search Slack messages and read channel history across your workspaces.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Slack Integration skill

About this skill

Search Slack messages and read channel history across your workspaces. Use this skill when the user asks about Slack conversations, channel messages, or internal communications.

What this skill tells your AI

The instructions your AI receives, as published by builderio/agent-native in templates/analytics/.builder/skills/slack/SKILL.md and read by ahel’s review.

Connection

  • Base URL: https://slack.com/api/
  • Auth: Authorization: Bearer $SLACK_BOT_TOKEN (or $SLACK_BOT_TOKEN_2 for secondary workspace)
  • Credentials: SLACK_BOT_TOKEN (primary), SLACK_BOT_TOKEN_2 (secondary workspace)
  • Caching: 2-minute in-memory cache, max 200 entries; separate user/bot caches

Server Lib

  • File: server/lib/slack.ts

Exported Functions

FunctionDescription
getTeamInfo(workspace)Get workspace info
listChannels(workspace)List channels (paginated, first page cached)
getChannelHistory(workspace, channelId, limit?, cursor?)Channel message history
searchMessages(workspace, query, count?)Search messages
getUserInfo(workspace, userId)Get user info (cached per user)
getBotInfo(workspace, botId)Get bot info (cached)
resolveUsers(workspace, userIds, messages?)Batch resolve user names

Agent Action

Use slack-messages for agent-facing Slack reads. Do not call /api/slack/* directly from the agent.

ModeArgsDescription
teamworkspaceGet workspace info
channelsworkspaceList channels
historyworkspace, channel, limit, cursorRead channel history
multi-historyworkspace, channels, names, limit, cursorsRead multiple channels
searchworkspace, querySearch messages

Key Patterns & Gotchas

  • Two workspaces supported via workspace parameter ("primary" / "secondary")
  • getChannelHistory auto-joins channels on "not_in_channel" error, then retries — requires channels:join scope
  • If auto-join fails, throws a detailed message explaining how to invite the bot
  • searchMessages may require user token; bot token tried first
  • listChannels paginates via cursor; only first page is cached
  • getUserInfo resolves bots via getBotInfo when needed

Signals

GitHub stars
7k
Forks
613
Last commit
Sep 2026

ahel review

  • S4info
    community integration, published by builderio, not slack

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Item type
skill
Key
slack-builderio
Source
github.com/builderio/agent-native