Slack Boltが『社内DXのデフォルト』になる理由
Slack BoltはSlack公式のフレームワークで、TS/JS/Pythonでスラッシュコマンド・ボタン・モーダル・イベント受信を高速に実装できます。Slackは既に大半の組織のコミュニケーション基盤として浸透しており、新規システムの代わりに『Slack Botとして提供する』選択肢が爆発的に増えました。LLMチャットボット・社内承認フロー・運用通知の集約・モニタリング統合などで標準スタックの位置を確立しています。
Slack Bolt採用を検討すべき5つのシグナル
- 社内DXツールを新規システムではなくSlack内で提供したい
- 承認フロー・運用通知の操作をSlack内で完結させたい
- LLM/ChatGPTとSlackを連携した社内チャットボットを作りたい
- 各種SaaS(GitHub・Jira・Datadog等)の通知集約とアクションを実装したい
- 営業・顧客対応の問い合わせ管理をSlackで完結させたい
Slack Boltで実装できる5つのパターン
(1) スラッシュコマンド: /deploy等のコマンドで運用アクション
(2) イベント受信: メンション・絵文字リアクション・チャンネル参加等のイベント処理
(3) モーダル: フォーム入力UIをSlack内で表示
(4) Block Kit: ボタン・ドロップダウン・カードUIを構築
(5) Workflow Builder連携: ノーコードワークフローと組み合わせ
実装の基本パターン
(1) セットアップ: const app = new App({ token, signingSecret })
(2) コマンド: app.command('/deploy', async ({ ack, respond }) => {})
(3) ボタン: app.action('button_id', async ({ ack, body, client }) => {})
(4) モーダル: client.views.open({ trigger_id, view })で表示
(5) OAuth: Workspaceインストール時のOAuthフロー実装
LLM連携の標準パターン
2024年以降『Slack内でChatGPT/Claude/Gemini的に対話』するBotは社内DXの定番に。実装は以下:
(1) BotにメンションされたイベントをBoltで受信
(2) OpenAI/Anthropic APIで応答生成
(3) ストリーミングで段階的にメッセージ更新
(4) Slack Threadごとに会話履歴を保持
(5) 重要応答はチャンネルに展開・他にはThreadに留める
本番運用での3つの注意点
- レート制限: Slack APIは1リクエスト/秒程度。高頻度操作はQueueに逃がす
- Socket Mode vs Events API: 開発はSocket Mode(WebSocketで簡単)、本番は通常Events API(webhook、要外部公開URL)
- 監視・エラー通知: Bot側のエラーは管理者に別Slack通知
料金感(実務目安)
- Slack App自体: 無料・Slack Workspaceの利用料金のみ
- ホスティング: Cloudflare Workers・Vercel・Render・自社k8s等で月数百〜数千円
- LLM連携時: OpenAI/Anthropic API料金が大半を占める
- 有料機能: Slackの有料プランで使える機能(Workflow Builder高度化等)
実装で詰まる3つの落とし穴
- Botの応答3秒制限: Slackはコマンド受信後3秒で
ack()呼び出し必須。重い処理は後続非同期 - OAuthスコープ: 必要最小限の権限設計。広すぎるとセキュリティリスク
- Bot Token vs User Token: 用途で使い分け。Botトークンは本人になりすませない
30日実装プラン
- 1週目: Bolt Hello World・スラッシュコマンドでステータス通知Bot
- 2週目: モーダル+ボタンで承認フローBot
- 3週目: OpenAI連携でLLMチャットBot
- 4週目: 本番デプロイ・Slack Marketplace公開準備
関連リンク
社内DX全般は 社内DX実践、LLM連携は Vercel AI SDK深掘り、Webhook統合は Webhook実践 を参照してください。Discord Botとの比較は Discord Bot実践 もどうぞ。