⚙️ Vault運用

Slack連携仕様

最終更新 2026年04月27日 / 90_Meta/Slack連携仕様.md

Slack連携仕様


30秒で全体像

観点 一言
核心 Slack → Inbox 自動投入の全仕様。
キーワード 実行タイミング / 対象範囲 / 2段階分離 / ユーザーの使い方
使う人 全社員 / 運用担当
読了目安 5-7分

Slack → Inbox 自動投入の全仕様。

構成

graph TB
    SLACK[Slack<br/>参加チャンネル全部]
    SCRIPT[slack_to_inbox.sh<br/>朝9時launchd]
    TRIGGER{リアクション<br/>:writing_hand:?}
    INBOX[00_Inbox/]
    RAW[00_Inbox/_slack_raw/<br/>YYYY-MM-DD.md]
    CLAUDE[ Claude判定]

    SLACK -->|channels.history 走査| SCRIPT
    SCRIPT --> TRIGGER
    TRIGGER -->|Yes | INBOX
    TRIGGER -->|No| RAW
    RAW -->|ユーザーが「整理して」| CLAUDE
    CLAUDE --> INBOX

仕組み詳細

1. 実行タイミング

  • 朝9:00 launchd (com.scale.slack-inbox)
  • 手動実行: ~/Obsidian/scripts/slack_to_inbox.sh

2. 対象範囲

  • Bot が参加している公開+プライベートチャンネル全部
  • DM は除外
  • 前回同期以降の新規メッセージのみ(重複防止)

3. 2段階分離

条件 処理 配置先
:writing_hand: リアクション付き 即Inbox化(確実重要として扱う) 00_Inbox/YYYY-MM-DD_HHMMSS_Slack_writing_hand.md
それ以外の全メッセージ Raw log集約(Claudeが後で判定) 00_Inbox/_slack_raw/YYYY-MM-DD.md に追記

4. ユーザーの使い方

取り込みたい投稿を見つけたら

:writing_hand: リアクションを付ける
→ 翌朝9時 or 手動実行で即Inbox化

Raw log の整理

毎日 or 定期的にこのチャットで:
Slack raw整理して
→ Claudeが 00_Inbox/_slack_raw/ を読み、セッション判定ルールに従って分類

セットアップ

詳細は プラグイン追加とSlackBot設定 参照。

必要なBot Tokenスコープ

スコープ 用途
channels:history パブリックチャンネルの履歴
groups:history プライベートチャンネルの履歴
channels:read パブリックチャンネル一覧
groups:read プライベートチャンネル一覧
users:read ユーザー名解決
reactions:read リアクション確認

users.conversations API用に別途Scopeが必要な場合あり

セットアップ手順

  1. Slack API で App 作成
  2. Bot Token ●●●●●● に上記6つ追加
  3. Install to Workspace
  4. Bot User OAuth Token (xoxb-...) をコピー
  5. echo 'xoxb-...' > ~/.slack_bot_token && chmod 600 ~/.slack_bot_token
  6. 取り込みたいチャンネルで /invite @SCALE-Brain Inbox Bot

トラブルシューティング

症状 対処
missing_scope エラー Slack App で該当Scope追加→Reinstall→新Token保存
チャンネルが取れない Botをそのチャンネルに /invite する
Raw logが肥大化 毎日Claudeに整理依頼、処理後ファイル削除
同じ投稿が何度も入る ~/Obsidian/logs/.slack_last_sync のタイムスタンプ確認

ログ確認

tail -50 ~/Obsidian/logs/slack_inbox.log

関連ノート