結論から言うと、Incoming Webhookは**「特定のURLにJSONデータを送りつけるだけで、Slackにメッセージを投稿できる」**という、最もシンプルで強力な外部連携手段です。

サーバーの監視アラート、フォームの問い合わせ通知、自作プログラムの実行結果など、あらゆる外部システムからの「一方通行の通知」に最適です。2026年現在、レガシーな手法から「Slack App」経由のセキュアな設定が標準となっています。


Incoming Webhook 設定の4つの手順

現在は「Slackアプリ」を作成し、その中の機能としてWebhookを有効化するのが正攻法です。

  1. Slack Appの作成: Slack API: Applicationsへアクセスし、「Create New App」から「From scratch」を選択。アプリ名を決め、導入先のワークスペースを選びます。
  2. Incoming Webhooksを有効化: 左サイドバーの「Incoming Webhooks」をクリックし、「Activate Incoming Webhooks」をOnにします。
  3. Webhook URLの発行: 画面下部の「Add New Webhook to Workspace」ボタンを押し、投稿先のチャンネルを選択して許可します。
  4. URLをコピー: 生成された https://hooks.slack.com/services/... という長いURLをコピーします。これがメッセージを送りつける「宛先」になります。

実際に送信してみる(curlコマンド例)

コピーしたURLを使って、ターミナルから以下のコマンドを叩くだけでメッセージが飛びます。

Bash

curl -X POST -H 'Content-type: application/json' \
--data '{"text":"Hello, Slack! システムからの通知です。"}' \
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

【インサイト】Webhooks vs. Web API (chat.postMessage)

「どっちを使えばいいの?」という疑問に対する回答がこちらです。

特徴Incoming WebhookWeb API (chat.postMessage)
手軽さ⭐⭐⭐(URLを叩くだけ)⭐(トークン管理が必要)
方向一方通行(通知のみ)双方向(読み取りや返信も可)
自由度固定された1つのチャンネルのみプログラムで投稿先を変更可能
最適なケースシンプルなアラート通知複雑なボット開発、対話型UI

専門家の視点

「Webhookの最大のメリットは、**『Slackのライブラリをインストールしなくて良い』**点にあります。HTTPリクエストさえ送れれば、言語を問わず(Python, Node.js, PHP, あるいはシェルスクリプトからでも)数行で実装できます。ただし、URLが漏洩すると誰でも投稿できてしまうため、環境変数などで厳重に管理するのが2026年のエンジニアリング・マナーです。」


よくある質問(FAQ)

Q. メッセージの見た目をリッチに(ボタンや画像など)できますか?

はい、可能です。"text" だけでなく、SlackのUIフレームワークである 「Block Kit」 のJSONをペイロードに含めることで、ボタンやセクション、画像などを配置した高度なメッセージを送信できます。

Q. 1つのWebhook URLで複数のチャンネルに送れますか?

いいえ、できません。Webhook URLは「チャンネルと1対1」で紐付いています。別のチャンネルに送りたい場合は、新しいWebhook URLを発行するか、より柔軟な「Web API」を利用する必要があります。

Q. 送信制限(レートリミット)はありますか?

はい。Incoming Webhookには「1秒間に約1メッセージ」というソフト制限があります。短時間に大量のログを送りつけるとエラーになる可能性があるため、バッチ処理でまとめるなどの工夫が必要です。

By Slerk