エージェントをSlackに接続する
所要時間およそ10分。完了すれば、Slackワークスペース内で、同僚から@メンションで呼ばれるチームメイトとして、あるいはDMで相談できるアシスタントとして、エージェントが応答するようになります。
はじめる前に
- すでにデプロイ済みで、ポータルに active と表示されているエージェント
- アプリをインストールできる権限を持つSlackワークスペース。新規アプリのインストールに管理者承認が必要な設定になっている場合は、管理者の承認が必要です。小規模なワークスペースでは通常不要です。
- 所要時間およそ10分
Slackの「アプリ」は、権限(scope と呼ばれます)の集まりで、特定のワークスペースにインストールします。Slackの管理サイトでアプリを作成し、必要なスコープ(メッセージの読み取り、送信など)を選び、ワークスペースにインストールすると、Slackから2つのシークレットが渡されます。1つは Bot Token(ボットとして動作するためのトークン)、もう1つは Signing Secret(受信したイベントが本当にSlackから来たものかをOpenClawが検証するためのシークレット)です。両方をOpenClawに貼り付ければ、エージェントが稼働します。
ステップ 1 — Slackアプリを作成する
- api.slack.com/apps にアクセスします。サインインしていない場合はログインします。
- Create New App をクリックし、続いて From scratch を選びます。
- 名前を付けます。これがSlackでのボットの表示名になります。エージェント名をそのまま使って構いません。例:
Acme Support。 - インストール先のワークスペースを選び、Create App をクリックします。
ステップ 2 — ボットのスコープを追加する
- アプリの設定ページが表示されています。左サイドバーで OAuth & Permissions をクリックします。
- Scopes → Bot Token Scopes までスクロールします。 Add an OAuth Scope をクリックし、以下を1つずつ追加します:
app_mentions:read— ボットへの@メンションを受信chat:write— ボットとしてメッセージを投稿channels:history— ボットが参加している公開チャネルのメッセージを読み取りim:history— ボット宛てのダイレクトメッセージを読み取りim:read— ダイレクトメッセージのチャネルを取得im:write— ユーザーとのダイレクトメッセージを開始users:read— ユーザーIDを表示名に解決(エージェントが相手を名前で呼べるようにする)
- ボットをプライベートチャネルでも動作させたい場合は
groups:historyを追加します。外部組織との共有チャネルで動作させたい場合はconversations.connect:readを追加します。必要でない限り追加しないでください。スコープは少ないほどよいです。
ステップ 3 — イベントを購読する
- 左サイドバーで Event Subscriptions をクリックし、 Enable Events をオンに切り替えます。
- Request URL には、OpenClawが提供するエージェントのSlackイベントURLを貼り付けますが、これはステップ5で取得します。いったんこの欄は飛ばし、後で入力します。
- Subscribe to bot events → Add Bot User Event までスクロールし、以下を追加します:
app_mention— 誰かが@メンションするとボットに通知されるmessage.im— ボットがダイレクトメッセージを受信するmessage.channels— ボットが参加している公開チャネルのメッセージを取得する(@メンション時のみ動作させたい場合は不要)
- ページ下部の Save Changes をクリックします。
ステップ 4 — アプリをワークスペースにインストールする
- OAuth & Permissions ページに戻り、上部までスクロールして Install to Workspace をクリックします。
- Slackが要求中のスコープを表示します。内容を確認し、Allow をクリックします。
- OAuth & Permissions ページに戻ります。Bot User OAuth Token をコピーしてください。
xoxb-で始まります:xoxb-1234567890123-1234567890123-abcdefGHIJKLmnopQRSTuvwx - 続いて、左サイドバーの Basic Information をクリックします。 App Credentials までスクロールし、Signing Secret をコピーします(先に Show をクリックします)。長い16進文字列のように見えます。
ボットトークンを持っていれば、誰でもこのワークスペースであなたのボットとして投稿・読み取りができます。Signing Secretを持っていれば、誰でもSlackから来たかのように見える偽のイベントを作れます。公開チャネル、スクリーンショット、gist、gitコミットには絶対に貼り付けないでください。トークンが漏れた場合はOAuthページで Revoke Token をクリックして再インストール、Signing Secretが漏れた場合はBasic Informationで再生成してください。
ステップ 5 — 両方をOpenClawに貼り付ける
- Cloudoポータルで、接続したいエージェントの Open my OpenClaw をクリックします。
- Channels タブを開きます。
- Slack をクリックし、続いて Connect をクリックします。
- ステップ4の Bot Token と Signing Secret を、それぞれ対応する欄に貼り付けます。
- Save をクリックします。OpenClawがSlackアプリに必要な Request URL を表示します:
https://<your-agent>.cloudoagents.com/slack/events - そのURLをコピーします。
ステップ 6 — SlackアプリとOpenClawの接続を完成させる
- Slackアプリの設定画面に戻り、Event Subscriptions を開きます。
- ステップ5のRequest URLを Request URL 欄に貼り付けます。
- Slackが即座にそのURLに検証チャレンジを送ります。1〜2秒以内に緑色で Verified ✓ と表示されるはずです。赤くなる場合は トラブルシューティング へジャンプしてください。
- Save Changes をクリックします。
- 新しいイベントURLを反映するため、アプリの再インストールを促される場合があります。Reinstall をクリックして承認してください。
ステップ 7 — ボットを招待してあいさつする
- Slackで、ボットを参加させたいチャネルを開きます。
/invite @Acme Support(ボットの名前に置き換えて)と入力してEnterを押すと、Slackがそのチャネルにボットを追加します。 - ボットを@メンションします:
@Acme Support hi, what can you do? - 設定した話し方で、数秒以内にエージェントから返事が来るはずです。
- または、Slackのサイドバーからボットとのダイレクトメッセージを開いて話しかけてもかまいません。DM内では@メンションは不要です。
仕上げ(任意)
スラッシュコマンド
OpenClawは /ask、/reset、 /contact-human のようなSlackのスラッシュコマンドを登録できます。OpenClawのSlackチャネル設定で構成してください。OpenClawが、Slackアプリの Slash Commands ページで対応するコマンドを追加する手順を案内します(コマンドごとに1エントリ、同じRequest URLのパターンを指します)。
チャネルのスコープ設定
既定では、ボットは招待されたあらゆる場所で応答します。特定のチャネルだけで動作させたい場合は、ほかのチャネルに招待しないだけで十分です。さらに厳しく制限したい場合は、OpenClawのSlackチャネル許可リスト設定を使ってください。
アプリのアイコンと説明
Slackアプリの Basic Information ページに戻り、 Display Information までスクロールします。正方形のアイコン(自社ロゴで構いません)をアップロードし、短い説明を設定し、背景色を選択します。チームメイトがボットの名前にカーソルを合わせたりプロフィールを開いたりすると、ここに設定した内容が見えます。
他のワークスペースへの配布
同じエージェントを他のワークスペースにもインストールできるようにしたい場合(たとえば、Slack向け製品をお客様に販売する場合など)は、Manage Distribution ページで Public Distribution を有効にしてください。ワークスペースごとのインストールで個別のボットトークンが発行されます。OpenClawはワークスペース単位で保管します。
トラブルシューティング
Request URLの検証が失敗する(赤色で “Your URL didn't respond”)
次の順に確認してください:
- エージェントのサブドメイン(ポータルの Open my OpenClaw の横に表示)がブラウザで読み込めること。読み込めない場合、エージェントに到達できておらず、Slackもそこに届きません。
- URLが正確に
/slack/eventsで終わっていること(末尾スラッシュなし、タイプミスなし)。 - ステップ5でOpenClawに貼り付けたのが Signing Secret であって、App IDやClient Secretではないこと。Slackのチャレンジは署名付きで送られるため、Signing Secretが欠けていると検証は静かに失敗します。
“not_in_channel” または DMでは返信するのにチャネルで返信しない
ボットは、話したい各チャネルに招待される必要があります。チャネル内で /invite @YourBot と入力してください。channels:history を持っていても、Slackがボットを自動で追加することはありません。
OpenClawのログに “missing_scope” エラー
Slackアプリの OAuth & Permissions ページで足りないスコープを追加し、続いてアプリを reinstall してください(ページ上で促されます)。スコープ変更前に発行されたボットトークンは、再インストールするまで新しいスコープでは動作しません。
ボットはチャネルにいるのに、@メンションしても応答しない
次の順に確認してください:
- ステップ3で Event Subscriptions に
app_mentionボットイベントを追加し、保存していること。 - イベント追加後にアプリを再インストールしていること(Slackが促しますが、見落としやすいです)。
- クレジット残高がゼロを超えていること。接続自体は維持されますが、残高がゼロになるとエージェントは応答しません。
- OpenClawのChannelsタブで接続が connected と表示されていること(error ではない)。
ワークスペースからボットをアンインストールしたい
Slackで ワークスペース設定 → Manage apps → 該当のアプリを開く → Remove app。アプリはapi.slack.comに残ったままなので(再インストール可能)、ワークスペースからはボットが消え、トークンは無効になります。
アプリを完全に削除したい
api.slack.com/apps → 該当のアプリ → Basic Information → ページ下部の Delete App。これによりトークンとSigning Secretは恒久的に無効化されます。
以上です。あなたのエージェントは、ほかのチャネルと同じSOULとスキルでSlack上でも応答するようになりました。1つのエージェントで、すべてのチャネルへ。
次は: まだなら Discordに接続する や Telegram もどうぞ。あるいは ドキュメントの目次 に戻ります。
