📌

SlackとGitHubの連携で実現する自動化

に公開

Slack × GitHub 自動化

SlackやGitHubでは、以下のような課題を解決できます。

  • 承認や通知をSlackで自動化したい
  • GitHubでのPRやデプロイをSlackに通知したい

本記事では、SlackとGitHubの自動化を「役割」「方法」「実例」に分けて整理します。


SlackとGitHubの自動化の全体像

SlackとGitHubは自動化の得意領域が異なります。

領域 自動化手段 目的
Slack(社内業務) Workflow Builder / Slack Web API / Incoming Webhook 社内承認・通知・手続き・情報共有
GitHub(開発運用) GitHub Actions PRやPushをきっかけにテスト・ビルド・デプロイを自動化

両者をつなぐのが WebhookやSlack GitHub Action です。
例: GitHubでPRがマージされたらSlackに通知 → Workflow Builderで承認フローを自動で回す


Slackの自動化手段

1. Workflow Builder(ノーコード業務フロー)

  • Slack内でクリック操作だけで承認・通知・分岐などのフローを作成可能
  • 例: 休暇申請 → 承認 → チーム通知
  • 起動方法: ボタン・フォーム送信、外部Webhook
  • コード不要で社内業務フローを自動化できる

2. Slack Web API(プログラム操作)

  • コードでSlackを操作可能
    • メッセージ投稿・更新
    • スレッド返信
    • ファイル共有
    • チャンネルやユーザー管理
  • 条件分岐や複雑な自動化向き
  • Webhookとは異なり、任意のタイミングで呼び出して双方向操作できる

3. Incoming Webhook(通知専用)

  • URLにデータを送るだけでSlackにメッセージ投稿
  • 返信や更新は不可、通知専用
  • 例: GitHubでPRがマージされたらSlackに通知

Slack自動化の種類と違い

種類 用途 イメージ 違いの要点
起動 Webhook Workflow Builderを開始する入口 承認・分岐など業務フローを回すための入口
操作 Slack Web API 投稿・更新・返信・ファイル共有など細かい操作 自由度が最も高く、双方向での操作が可能
通知 Incoming Webhook 簡単なメッセージ投稿(通知専用) 単発通知を素早く送る最短ルート、更新や返信は不可

Webhookは「イベントを受け取って処理を開始する仕組み」、Slack Web APIは「任意のタイミングで操作する仕組み」です。


GitHub Actionsとの違い

領域 自動化手段 できること
Slack Workflow Builder 承認・通知・分岐など社内手続き
GitHub GitHub Actions PR/Push/Releaseのテスト・ビルド・デプロイ

組み合わせ例

  1. GitHubでPRマージ
  2. Slack GitHub Actionで通知
  3. Webhook経由でWorkflow Builderの承認フロー起動
  4. Slackで承認・告知・次作業を自動実行

業務フローはSlack、処理はGitHub で役割を分けるイメージ


Webhookの理解

Webhook = 「決まったURLにデータを送ると相手(今回で言うとSlack)の処理が始まる仕組み」

  • Workflow起動用Webhook: Workflow Builderが発行するURLにPOSTすると、Slack側で定義済みの業務フローが開始されます
  • Incoming Webhook(通知専用): チャンネルに紐づくURLへPOSTすると、Slackにメッセージが投稿されます(返信・更新不可)
  • Slack Web API: 任意のタイミングで呼び出して双方向操作できるため、Webhookのような「受け口」ではなく操作全般を行うためのAPIです

具体的な自動化例

開発運用

  • chat.postMessage → デプロイ開始通知
  • chat.update → 進捗更新
  • files.uploadV2 → ビルド結果共有

業務フロー

  • Workflow Builderで休暇申請 → 承認 → チーム通知を自動化

連携起動

  • GitHubイベント → WebhookでSlack Workflow Builder起動 → 承認・告知フロー実行

まとめ

  • Slack → 社内業務の承認・通知・手続きフロー
  • GitHub → 開発作業のCI/CD
  • Webhook / Slack GitHub Action → 両者をつなぐ橋渡し

Discussion