エージェントをSlackに接続する

所要時間およそ10分。完了すれば、Slackワークスペース内で、同僚から@メンションで呼ばれるチームメイトとして、あるいはDMで相談できるアシスタントとして、エージェントが応答するようになります。

はじめる前に

  • すでにデプロイ済みで、ポータルに active と表示されているエージェント
  • アプリをインストールできる権限を持つSlackワークスペース。新規アプリのインストールに管理者承認が必要な設定になっている場合は、管理者の承認が必要です。小規模なワークスペースでは通常不要です。
  • 所要時間およそ10分
考え方

Slackの「アプリ」は、権限(scope と呼ばれます)の集まりで、特定のワークスペースにインストールします。Slackの管理サイトでアプリを作成し、必要なスコープ(メッセージの読み取り、送信など)を選び、ワークスペースにインストールすると、Slackから2つのシークレットが渡されます。1つは Bot Token(ボットとして動作するためのトークン)、もう1つは Signing Secret(受信したイベントが本当にSlackから来たものかをOpenClawが検証するためのシークレット)です。両方をOpenClawに貼り付ければ、エージェントが稼働します。

ステップ 1 — Slackアプリを作成する

  1. api.slack.com/apps にアクセスします。サインインしていない場合はログインします。
  2. Create New App をクリックし、続いて From scratch を選びます。
  3. 名前を付けます。これがSlackでのボットの表示名になります。エージェント名をそのまま使って構いません。例: Acme Support
  4. インストール先のワークスペースを選び、Create App をクリックします。

ステップ 2 — ボットのスコープを追加する

  1. アプリの設定ページが表示されています。左サイドバーで OAuth & Permissions をクリックします。
  2. ScopesBot Token Scopes までスクロールします。 Add an OAuth Scope をクリックし、以下を1つずつ追加します:
    • app_mentions:read — ボットへの@メンションを受信
    • chat:write — ボットとしてメッセージを投稿
    • channels:history — ボットが参加している公開チャネルのメッセージを読み取り
    • im:history — ボット宛てのダイレクトメッセージを読み取り
    • im:read — ダイレクトメッセージのチャネルを取得
    • im:write — ユーザーとのダイレクトメッセージを開始
    • users:read — ユーザーIDを表示名に解決(エージェントが相手を名前で呼べるようにする)
  3. ボットをプライベートチャネルでも動作させたい場合は groups:history を追加します。外部組織との共有チャネルで動作させたい場合は conversations.connect:read を追加します。必要でない限り追加しないでください。スコープは少ないほどよいです。

ステップ 3 — イベントを購読する

  1. 左サイドバーで Event Subscriptions をクリックし、 Enable Events をオンに切り替えます。
  2. Request URL には、OpenClawが提供するエージェントのSlackイベントURLを貼り付けますが、これはステップ5で取得します。いったんこの欄は飛ばし、後で入力します。
  3. Subscribe to bot eventsAdd Bot User Event までスクロールし、以下を追加します:
    • app_mention — 誰かが@メンションするとボットに通知される
    • message.im — ボットがダイレクトメッセージを受信する
    • message.channels — ボットが参加している公開チャネルのメッセージを取得する(@メンション時のみ動作させたい場合は不要)
  4. ページ下部の Save Changes をクリックします。

ステップ 4 — アプリをワークスペースにインストールする

  1. OAuth & Permissions ページに戻り、上部までスクロールして Install to Workspace をクリックします。
  2. Slackが要求中のスコープを表示します。内容を確認し、Allow をクリックします。
  3. OAuth & Permissions ページに戻ります。Bot User OAuth Token をコピーしてください。xoxb- で始まります:
    xoxb-1234567890123-1234567890123-abcdefGHIJKLmnopQRSTuvwx
  4. 続いて、左サイドバーの Basic Information をクリックします。 App Credentials までスクロールし、Signing Secret をコピーします(先に Show をクリックします)。長い16進文字列のように見えます。
どちらも機密情報です

ボットトークンを持っていれば、誰でもこのワークスペースであなたのボットとして投稿・読み取りができます。Signing Secretを持っていれば、誰でもSlackから来たかのように見える偽のイベントを作れます。公開チャネル、スクリーンショット、gist、gitコミットには絶対に貼り付けないでください。トークンが漏れた場合はOAuthページで Revoke Token をクリックして再インストール、Signing Secretが漏れた場合はBasic Informationで再生成してください。

ステップ 5 — 両方をOpenClawに貼り付ける

  1. Cloudoポータルで、接続したいエージェントの Open my OpenClaw をクリックします。
  2. Channels タブを開きます。
  3. Slack をクリックし、続いて Connect をクリックします。
  4. ステップ4の Bot TokenSigning Secret を、それぞれ対応する欄に貼り付けます。
  5. Save をクリックします。OpenClawがSlackアプリに必要な Request URL を表示します:
    https://<your-agent>.cloudoagents.com/slack/events
  6. そのURLをコピーします。

ステップ 6 — SlackアプリとOpenClawの接続を完成させる

  1. Slackアプリの設定画面に戻り、Event Subscriptions を開きます。
  2. ステップ5のRequest URLを Request URL 欄に貼り付けます。
  3. Slackが即座にそのURLに検証チャレンジを送ります。1〜2秒以内に緑色で Verified ✓ と表示されるはずです。赤くなる場合は トラブルシューティング へジャンプしてください。
  4. Save Changes をクリックします。
  5. 新しいイベントURLを反映するため、アプリの再インストールを促される場合があります。Reinstall をクリックして承認してください。

ステップ 7 — ボットを招待してあいさつする

  1. Slackで、ボットを参加させたいチャネルを開きます。/invite @Acme Support(ボットの名前に置き換えて)と入力してEnterを押すと、Slackがそのチャネルにボットを追加します。
  2. ボットを@メンションします:
    @Acme Support hi, what can you do?
  3. 設定した話し方で、数秒以内にエージェントから返事が来るはずです。
  4. または、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”)

次の順に確認してください:

  1. エージェントのサブドメイン(ポータルの Open my OpenClaw の横に表示)がブラウザで読み込めること。読み込めない場合、エージェントに到達できておらず、Slackもそこに届きません。
  2. URLが正確に /slack/events で終わっていること(末尾スラッシュなし、タイプミスなし)。
  3. ステップ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 してください(ページ上で促されます)。スコープ変更前に発行されたボットトークンは、再インストールするまで新しいスコープでは動作しません。

ボットはチャネルにいるのに、@メンションしても応答しない

次の順に確認してください:

  1. ステップ3で Event Subscriptionsapp_mention ボットイベントを追加し、保存していること。
  2. イベント追加後にアプリを再インストールしていること(Slackが促しますが、見落としやすいです)。
  3. クレジット残高がゼロを超えていること。接続自体は維持されますが、残高がゼロになるとエージェントは応答しません。
  4. 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 もどうぞ。あるいは ドキュメントの目次 に戻ります。

Slackを接続する — Cloudo ドキュメント