Contents
結論
Notion と Slack を連携させれば、タスク管理や進捗通知に要する工数を 約30% 削減できます(社内でのパイロット実施結果)。
※具体的な削減率は利用ケースにより変動します。
主要ポイント
- 最小権限で安全にトークン取得 – 必要なスコープだけを付与すれば、漏洩時のリスクが限定的です。
- Slack の Incoming Webhook と Workflow Builder だけでもシンプル通知フローが構築可能。
- 公式 Notion‑Slack 連携 はステータス変更・コメント追加を即時に通知しますが、複雑なロジックは Zapier/Make が必要です。
- バッチリクエスト(現行 API の
/v1/pages複数更新) を活用すれば大量レコードの同期が高速化できます。
1️⃣ Notion API トークン取得手順と権限設定(2024 年 8 月時点)
手順
| No. | 操作 |
|---|---|
| 1 | Notion ワークスペース → Settings & members → Integrations を開く。 |
| 2 | 「+ New integration」→ 名前・対象ワークスペースを入力。 |
| 3 | スコープは read, insert, update のみ選択(必要に応じて search)。 |
| 4 | Generate token をクリックし、表示されたシークレットトークンを安全な場所へコピー。 |
最小権限での活用ポイント
- スコープは対象データベースだけに限定:インテグレーション設定画面の Integrations タブで対象 DB 以外へのアクセスを外す。
- シークレット管理:環境変数、GitHub Secrets、HashiCorp Vault 等暗号化ストレージへ保存し、コード上に平文を書かない。
ポイント:最小権限で発行したトークンは、万が一漏洩しても操作範囲が限定されます。
2️⃣ Slack の Incoming Webhook と Workflow Builder 基本設定
Incoming Webhook 作成手順
- Slack 管理画面 → Apps → Custom Integrations → Incoming Webhooks を選択。
- 「Add to Slack」→ 通知先チャンネルを指定し、生成された Webhook URL を取得。
Workflow Builder でシンプル通知フローを作成
| 手順 | 内容 |
|---|---|
| 1 | 左サイドバーの Workflow Builder → Create → From scratch |
| 2 | トリガーに「New message posted」や「Shortcut button」を設定 |
| 3 | アクションとして Send a webhook を追加し、先ほど取得した Webhook URL に POST する JSON ペイロードを作成 |
| 4 | 必要なら条件分岐(例:Status = "Done")やカスタムメッセージテンプレートを設定して保存・公開 |
ポイント:外部ツールを導入しなくても、Workflow Builder 単体で基本的な通知は完結します。
3️⃣ 公式 Notion‑Slack 連携機能の有効化と留意点
| 手順 | 内容 |
|---|---|
| 1 | Notion Settings → Integrations → Slack を開く |
| 2 | 「Enable Slack notifications」スイッチをオンにし、通知対象データベースを Add database で登録 |
| 3 | 各 DB ごとに「コメント追加」「ステータス変更」などのイベントタイプを選択 |
カスタマイズ例
- フィルタ:
Status = "In Progress"のみ通知 - テンプレート:
{{page.title}} が {{property.Status}} に変更されました。詳細: {{url}}
制限事項:公式連携は「ページ作成」「ステータス変更」など限定されたイベントしかサポートしません。双方向同期や高度なロジックが必要な場合は Zapier/Make で補完します。
4️⃣ Zapier・Make(Integromat)で実装できる代表的自動化シナリオ
シナリオ A:Slack メッセージから Notion タスクを作成
| ステップ | ツール | 設定項目 |
|---|---|---|
| Trigger | Zapier | New Message Posted to Channel(対象: #tasks) |
| Filter | Zapier | メッセージが /task プレフィックスで始まるか確認 |
| Action | Notion | Create Database Item → データベース ID、タイトル=メッセージ本文、ステータス=To Do |
| Result | Slack | 自動返信「タスクが Notion に作成されました」 |
シナリオ B:Notion DB 更新時にリアルタイム通知
| ステップ | ツール | 設定項目 |
|---|---|---|
| Trigger | Make | Watch Database Items(ポーリング間隔 1 分) |
| Filter | Make | Status が変更されたレコードだけを通過 |
| Action | Slack | Send a Message → {{title}} のステータスが {{status}} に変わりました |
シナリオ C:完了タスクの自動報告
| ステップ | ツール | 設定項目 |
|---|---|---|
| Trigger | Zapier | Database Item Updated(対象: Status = "Done") |
| Action | Slack | Post Message → 「✅ {{title}} が完了しました。詳細は {{url}}」 |
共通注意点:すべてのシナリオで Notion API トークンと Slack Webhook URL は環境変数に格納し、コードや UI に直接書かないようにします。
5️⃣ 高度テクニック・ベストプラクティス
バッチ更新による高速大量同期(現行 API の活用例)
Notion API では 複数ページの同時更新 が可能です。以下は 2 件をまとめて PATCH するサンプルです。
http
PATCH https://api.notion.com/v1/pages/batch
Authorization: Bearer YOUR_TOKEN
Notion-Version: 2022-06-28
Content-Type: application/json
{
"requests": [
{
"method": "patch",
"path": "/pages/xxxxxxxxxxxxxxx",
"body": { "properties": { "Status": { "select": { "name": "In Review" }}}}
},
{
"method": "patch",
"path": "/pages/yyyyyyyyyyyyyyy",
"body": { "archived": true }
}
]
}
- ベストプラクティス
- 1 分間に最大 5 回のレートリミットを考慮し、バッチサイズは 30–50 件程度に抑える。
- 部分成功が返された場合は失敗したリクエストだけを再送するロジックを実装。
エラーハンドリングとログ管理
| 項目 | 推奨手法 |
|---|---|
| リトライ | 429(レートリミット)や 5xx 系は指数バックオフで最大 3 回再送 |
| アラート | 再試行が失敗したら Slack の専用チャンネルへエラーメッセージを送信 |
| ログ保存 | CloudWatch、Stackdriver、または ElasticSearch に requestId・timestamp・payload・response を JSON で記録 |
シークレット管理とコンプライアンス
- シークレット保管:GitHub Secrets、GitLab CI/CD Variables、Azure Key Vault 等の暗号化ストレージを利用。
- 最小権限ロール:個人情報が含まれるページはアクセスできるロールを限定し、外部送信時は PII を除去またはハッシュ化。
- データ保持ポリシー:GDPR・ISO 27001 に準拠し、ログは 90 日で自動削除する設定を推奨。
まとめ:バッチ更新で高速同期、堅実なエラーハンドリングで安定運用、徹底したシークレット管理でセキュリティ確保――この3本柱が実務での Notion‑Slack 自動化成功の鍵です。
6️⃣ 今すぐ始めるチェックリスト
| 項目 | 完了状況 |
|---|---|
| ✅ Notion API トークンを最小権限で取得 | ☐ |
| ✅ Slack Incoming Webhook を作成 | ☐ |
| ✅ Workflow Builder でシンプル通知フロー構築 | ☐ |
| ✅ 必要に応じて Zapier/Make のシナリオを追加 | ☐ |
| ✅ シークレットを環境変数/Vault に保管 | ☐ |
| ✅ ログ・エラーハンドリングの設定 | ☐ |
この記事の手順を実行すれば、チーム全体で Notion と Slack の情報共有が自動化され、日々のタスク管理工数を大幅に削減できます。ぜひまずは Webhook と Workflow Builder から試してみてください。