6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Slack WorkflowのWebhookで作るシンプルなSlack通知

6
Last updated at Posted at 2026-07-09

Slackに外部サービスやスクリプトから通知したいとき、昔はIncoming Webhookを作ってURLにJSONをPOSTする、という方法が定番でした。

ただ、現在はSlack公式ドキュメントで「Legacy custom integrations」のIncoming Webhookを見ると、Slack AppベースのWebhookへ移行するよう案内されています。

Slack Appを作れば同じようなことはできます。ですが、ちょっとした通知だけのためにSlack Appを作って、権限やインストールを管理して、必要なら管理者に承認してもらって……というのは少し面倒です。

そこで、この記事では「Slack Appを作るほどではないけれど、Webhook URLにPOSTしてSlackへ通知したい」場合の選択肢として、Slack Workflow Builderの「Webhookから」トリガーを使う方法をまとめます。

できること

この記事で作るものは、とても単純です。

外部からWorkflow BuilderのWebhook URLへ次のJSONをPOSTします。

{
  "text": "テキストの例"
}

すると、指定したSlackチャンネルに text の内容を投稿します。

メッセージ例

Incoming Webhookの完全な代替ではありません。Block Kitで凝った見た目にしたり、投稿先をリクエストごとに柔軟に切り替えたり、Slack Appとして配布したりする用途なら、素直にSlack AppのIncoming Webhookや chat.postMessage を使ったほうがよいです。

一方で、次のような用途ならWorkflow Builderだけで足りることがあります。

  • バッチ処理の完了をSlackに通知したい
  • 監視や運用スクリプトから短いメッセージを送りたい
  • 個人またはチーム内の簡単な自動通知を作りたい

前提

Workflow BuilderのWebhookトリガーは、Slackのプランやワークスペース設定によって使えない場合があります。

公式ヘルプにも、ワークスペースのオーナーや管理者がWebhook付きワークフローの作成を制限できること、またこの機能が有料プラン向けであることが書かれています。

使えない場合は、ワークスペースの管理者に確認してください。

作成手順

1. Workflow Builderを開く

SlackのメニューからWorkflow Builderを開き、新しいワークフローを作成します。

2. 「Webhook」トリガーを設定

ワークフローの開始方法として「Webhookから」を選びます。

Webhookから受け取る値として、text という変数を作ります。
これで、外部から次のようなJSONを送ったときに、Workflow Builder内で text を変数として扱えるようになります。

{
  "text": "テキストの例"
}

Webhook設定

3. 「チャンネルへメッセージを送信」ステップを追加する

次に、ワークフローのステップとして「チャンネルへメッセージを送信」を追加します。

投稿先チャンネルを選び、メッセージ本文に先ほど作った text 変数を挿入します。

イメージとしては、Workflow Builder側で次のような設定にします。

  • 投稿先: 通知したいチャンネル
  • メッセージ: Webhookで受け取った text

メッセージ送信設定

4. ワークフローの詳細を設定

通知時のアプリ名などを設定します。

ワークフローの詳細

5. ワークフローを公開してWebhook URLを取得する

ワークフローを公開すると、Webhook URLが発行されます。

Webhookトリガーの設定ページで確認でき、URLは次のような形式になります。

https://hooks.slack.com/triggers/...

このURLは知っている人がワークフローを実行できるURLなので、Incoming Webhook URLと同じように秘密情報として扱います。GitHubなどの公開リポジトリに置かないようにしてください。

curlで試す

Webhook URLを取得できたら、次のようにPOSTします。

curl -X POST 'https://hooks.slack.com/triggers/xxxxx/xxxxx/xxxxx' \
  -H 'Content-Type: application/json' \
  -d '{"text":"テキストの例"}'

成功すると、指定したチャンネルにメッセージが投稿されます。

メッセージ例

Incoming Webhookとの違い

今回の方法は、昔ながらのIncoming Webhookと使い心地が少し似ています。

どちらも「URLにJSONをPOSTするとSlackに投稿される」という点は同じです。

ただし、実体はIncoming Webhookではなく、Workflow BuilderのWebhookトリガーです。そのため、次のような違いがあります。

観点 Slack AppのIncoming Webhook Workflow BuilderのWebhookトリガー
Slack App作成 必要 不要
投稿処理 Webhookが直接投稿 ワークフローのステップとして投稿
管理単位 Slack App Slackワークフロー
向いている用途 アプリ連携、配布、柔軟な投稿 チーム内の簡単な通知
複雑なメッセージ 比較的扱いやすい ワークフローの機能範囲に依存

「通知できれば十分」という場面では、Workflow Builderのほうが管理しやすいことがあります。

注意点

URLは秘密情報

Webhook URLを知っている人は、そのワークフローを実行できます。

ソースコードに直書きせず、環境変数やシークレット管理に入れるのが無難です。

JSONはシンプルにする

Workflow Builderの変数として扱う場合、ネストしたJSONではなく、フラットなJSONにしておくのが扱いやすいです。

今回の例ならこれで十分です。

{
  "text": "テキストの例"
}

必要に応じてパラメータは増やしても構いませんが、Workflow Builderで投稿するメッセージへのマッピング作業も必要になります。

参考

まとめ

Slackへ外部から通知したいだけなら、Slack Appを作ってIncoming Webhookを設定する以外に、Workflow Builderの「Webhookから」トリガーを使う方法もあります。

{"text":"..."} をPOSTして、その text をチャンネルに投稿するだけなら、かなり小さく作れます。

もちろん本格的な連携にはSlack Appが向いていますが、チーム内の簡単な通知であれば、Workflow BuilderのWebhookも選択肢に入れてよいと思います。

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?