Webhookとは? その機能や仕組み、APIとの違いなどを解説します。
結論
Webhook(ウェブフック)とは、あるアプリで起きたイベントを別のアプリへ自動で知らせる仕組みです。都度の確認作業が不要になり、迅速な対応と業務効率化につながります。常時確認が必要なAPIのポーリングに比べて通信負荷も低いのが特長です。
Webhook(ウェブフック)は、複数のウェブアプリケーションを連動させる仕組みの1つです。
たとえば自社ウェブサイトの問い合わせフォームと、サポート担当者のメッセージアプリをWebhookで連動させておくと、問い合わせフォームから送信があったら、そのことがメッセージアプリに通知される仕組みをつくれます。担当者は定期的に問い合わせがあったかを確認しなくてもよくなり、また迅速に対応にあたれるようになるため、業務効率化や顧客満足度の向上につながります。
本記事ではWebhookの仕組み、利用事例やメリット、似た機能を持つAPIとの違いなどについて説明します。

DX推進ができている企業は何をしているのか?
無理なくはじめる“ちょうどいい” バックオフィス業務改善のコツ
ITが苦⼿な社員が多い会社が取るべきDX戦略について、とある製造業A社を例に挙げて解説します。
目次
Webhookで何ができるようになるのか?
Webhookを活用することで、特定のウェブアプリ/サービスで発生した特定のイベントをトリガー(きっかけ)として、別のウェブアプリ/サービスを動かすことができるようになります。

冒頭での利用例のように、「アプリAで問い合わせが送信されたら、アプリBに通知を表示させる」といった使い方以外にも、「アプリAでデータが変更されたら、アプリBのデータも同期させる」など、さまざまな使い方ができます。具体的な活用事例は後述します。
なぜ今、Webhookが注目されているのか
Webhookが注目されている理由としては、情報共有がスムーズになり、業務スピードが早くなることが大きな理由として挙げられます。
「都度確認」という非効率がなくなる
「このウェブアプリで、こういうイベントが起きたら、次はこうする」というプロセスが決まっていても、イベントが発生したかどうかを察知するためには、いちいち確認する必要があります。
Webhookを使えば、その確認の手間と時間を削減でき、内容によっては「こうする」まで自動化することが可能です。ビジネスにますますスピードが求められる今、Webhookの即時性は大きなメリットになります。
SaaS連携・業務自動化が当たり前になっている
クラウド利用が浸透した結果、皆様の業務のなかでもSaaSを連携させることが増えていることと思います。
SaaS連携にはAPIが利用されるケースが多いのですが、使いどころによっては、API が抱える問題点をWebhookで解消できる面があり、注目を集めるようになってきました。この辺りの事情については後述します。
Webhookの仕組みを理解する
Webhookで2つのアプリを連動させるまでの流れを簡単に紹介しましょう。
通知を送る側を「アプリA」、それを受信して行動する側を「アプリB」とします。その他、Webhookを実現するために必要なものとして「受信エンドポイント」と「Webhook URL」があります。両者は表裏一体の側面を持っています。
- Webhook URL:アプリB側が用意する、通知の宛先となるURL。APIやWebhookの文脈では「エンドポイント」とも呼ばれます。。
- 受信エンドポイント:そのURLで通知を受け取り、処理を行うプログラム。届いた通知をもとに、アプリBに何をさせるかを記述しておきます。
※「エンドポイント」は、セキュリティの文脈ではPCやスマートフォンなどの端末を指すことがあり、ここでの意味とは異なります。
ステップ1:アプリAでイベントが起きる
アプリAにトリガーとなるイベント(データが変更された、問い合わせフォームに入力があったなど)が発生。
ステップ2:自動でWebhook URLへ通知が送られる
アプリAが、イベントの発生通知をWebhook URLへ送信。通知はHTTPのPOSTリクエストとして送られ、その本文にはJSON形式のデータが使われることが一般的です。
ステップ3:受信エンドポイント作成時に設定した処理が行われる(アプリBが動く)
Webhook URLに届いた通知をトリガーに、受信エンドポイントがアプリBを動かす(通知を表示するなど)。

WebhookとAPIは何が違うのか
アプリの連携に利用されるものとして、API(Application Programming Interface)があります。両者の違いは何なのでしょう?
APIとは?
APIもWebhook同様、アプリケーションを連携させる接点の役割を果たすものです。
Webhookでの通信は、アプリAからのリクエストがアプリBに送られる一方向の流れが基本で、しかも「アプリAにどんなイベントがあったら、アプリBにどんな行動を起こさせるか」を予め決めておかなければなりません。
一方、APIでは、クライアント側から任意のタイミングで様々な操作をリクエストできるため、データの新規作成や削除など、ユーザーがその時々に必要とする操作を、随時行なうことが可能です。
Webhookも広義にはAPIの一形態と捉えられることもあります。「通信を一方通行に限定したAPI」ですが、従来のAPIにないメリット(後述)を持つため、注目されるようになったのです。
Webhookは「教える」、APIは「聞きに行く」
データの自動連携という観点に絞って比較した場合、両者の大きな差は、Webhookがプッシュ型、APIがプル型であることです。
Webhookは、イベントが発生した側のアプリが、次に行動してほしいアプリに「イベントが起きましたよ」と自動で教えることで連携を図っています。一方、APIで自動連携させる場合は、行動を起こすアプリが「イベントは起きていませんか?」と、定期的に聞きに行くスタイル(ポーリング)を取っています。
WebhookとAPI、自動連携におけるメリット・デメリット
イベントが起きた時だけ通知するWebhookに比べ、APIでは何もなくてもポーリングを行なう必要があるため、データ通信量が増えたり、サーバーに負荷がかかったり、イベントの発生にリアルタイムに対処できなかったりするデメリットがあります。
一方、APIのメリットとしては、事前に受信エンドポイントを用意しなくてもいいことが挙げられます。
WebhookとAPIの自動連携における比較
| Webhook | API | |
| 通信方向 | プッシュ型 (イベントをトリガーとする) |
主にプル型 (クライアント側からのリクエスト およびポーリング) |
| イベントへの即応性 | ほぼリアルタイム | ポーリングの頻度による |
| 通信による負荷 | イベント発生時のみなので低い | ポーリング頻度によっては高くなる |
| 受信エンドポイントの構築 | 必要 | 不要 |
| セキュリティ | 認証トークンや署名などでの対策が求められる | OAuth2.0(許可)やOpenID Connect(認証) などによる標準的な仕組みで対策 |
| 主な利用例 | イベントの通知 リアルタイムでの情報連携 |
データの連携管理(取得、更新、登録など) |
| こんな時におすすめ | リアルタイムに自動で処理を行ないたい時 | データを手動で扱いたい時、大量のデータを扱う時 |
どちらを選ぶべきか?
データを手動で扱うことが多ければ、APIが向いています。たとえばデータを検索したり、手作業によってデータ作成をしたりすることが必要な場合です。データを大量に扱う時も、APIが適していると言えます。
Webhookに向いているのは、リアルタイムに、自動で処理を行なう必要がある業務です。顧客からの問い合わせにすぐに対応できるように通知を受け取る、決済に関する通知を受け取って確認する、倉庫での入荷・発送に合わせて在庫量を自動で変更するといったケースが考えられます。
業務でよくあるWebhookの活用シーン
ここまでに挙げた例のほか、Webhookが活用できるシーンをいくつかピックアップしました。皆様がWebhookを導入する際のヒントにしてください。
契約締結をチャットツールに自動通知する
電子契約を使って契約書を締結する際、契約締結が完了したというイベントをチャットツールに送信、通知として受け取る使い方があります。ビジネスでは「あの企業との契約が成立するか否かで、次の動き方が変わる」というシーンもあるでしょう。すぐに契約締結の情報を共有できれば、スピーディなビジネス展開につなげられます。
なお、電子契約サービス「クラウドサイン」にも、Webhookを使って、書類の締結完了時や書類の取り消し・却下時などの書類の状態が変化した時に通知させされる仕組みがあります。詳しくはこちらのページもご覧ください。
外部システムとデータを同期する
名刺管理アプリとCRM(顧客管理システム)を連携させ、CRMの情報を、最新の名刺情報と同期させるといった使い方もあります。顧客の異動や昇進といった情報を、全社的に共有するのに役立ちます。
ただし名刺情報は個人情報ですので、Webhookによる通信での取り扱いには十分なセキュリティ対策が必要です。
ノーコードツールと組み合わせる
ノーコードツールで作成したアプリは、自社業務の「痒い所に手が届く」作業を自動化してくれるものが多いはずです。Webhookを用いて他ツールとの連携を図れるようになれば、さらなる自動化を実現できるでしょう。
Webhook利用での注意点
業務の自動化に役立つWebhookですが、利用にあたっては注意すべき点もあります。
なりすまし通知を防ぐセキュリティ対策
受信エンドポイントのURL(Webhook URL)が漏れてしまった場合、他者がそのURLにアクセスし、受信側のアプリを不正に操作するリスクがあります。
これを防ぐためにはWebhookのリクエスト(送信側の通知)に認証トークンや署名を付与し、受信側で検証する仕組みを整える必要があります。
通知内容に個人情報・契約情報を含めすぎない設計にする
通知のなかに機密情報・機微情報が含まれていると、他者に「盗み見」され、悪用されるおそれもあります。
通知にはそうした情報をなるべく含めない、含める場合は暗号化する、一部をマスキングするなどのセキュリティ対策が重要です。
通知が届かない・重複する場合
Webhookを設定したのに通知が届かなかったり、通知が重複してしまったりする場合があります。
通知か届かない要因としては、イベントを通知する側のアプリ、もしくは受信側アプリに原因がある可能性があります。
イベントを通知する側のアプリに原因があるケースでは、トリガーとなるイベントの設定が間違っている、Webhook URLを間違って登録しているといったことが考えられます。受信側アプリに原因があるケースでは、Webhook URLが外部にきちんと公開されているか、セキュリティ設定で通知をはじいてしまっていないかなどを確認します。また、受信側のサーバーに証明書(中間CA証明書など)が正しく導入されていないと、通信そのものが成立しません。受信側がエラーを返し続けた場合、送信側の再送回数の上限に達して通知が失われることもあります。
通知が重複する原因としては、通知を送る側が再送していることが考えられます。単なる通知であれば一時的なトラブルと見なせますが、通知を受信してデータベースに情報を追記するような連携を取っている場合は、データが重複登録されてしまいます。受信エンドポイントで重複をチェックし、スキップできる仕組みを整えるべきでしょう。
Webhookを導入・設定にあたって
Webhookを導入するには、自社で行うケース、ベンダーに依頼するケースが考えられます。また導入後に現場が混乱しないような配慮が必要であることも知っておきましょう。
エンジニアが自社開発する場合の大まかな流れ
- 受信エンドポイントのURL(Webhook URL)を作成
- 受信エンドポイントに、通知を受け取った時、アプリに処理させる内容を記載する
- 通知を送る側のアプリに、Webhook URLのURLを登録、どんなイベントが発生したら通知するのかを設定
- テストを実施し、通知の送信、受信後の動作などが正常かどうかを確認
- 認証や暗号化など、セキュリティ対策の実施
- 本格運用を開始
非エンジニアがベンダーに依頼する際の伝え方
アプリに処理させる受信エンドポイントをつくるには、一定のプログラミング知識が必要となることがあるため、ベンダーに依頼するケースも多いと思われます。
その際、ベンダーには「どういう目的のために」「どのアプリで」「何が起こったら」「どのアプリにその情報を送り」「何を処理させるのか」を明確に説明しましょう。全体的なシステム構成図を用意しておくと、ベンダー側から「こうした方が効率的ではないか」「APIにすべきではないか」など、専門家からの視点でアドバイスをもらえるかもしれません。
導入したことを社内で認識してもらう
Webhook導入後、業務フローが変わることもあります。何が自動化されたのか、通知があったらどう対応すべきなのかなど、関連部門の担当者への説明はしっかり行ないましょう。
よくある質問(FAQ)
Webhookについて、よくある疑問をピックアップしました。
Q.Webhook URLとは何ですか?
A. 受信エンドポイントが通知を受け取るためのURLです。イベントが発生するとこのURLに通知が送られます。
本記事「Webhookの仕組みを理解する」をご参照ください。
Q.「エンドポイント」という言葉の意味がわかりにくいのですが
A. 文脈によって指すものが違います。APIやWebhookの文脈では、通信の接続先となるURL(本記事のWebhook URL)や、そこで通知を受け取って処理する仕組み(本記事の受信エンドポイント)を指します。一方、セキュリティの文脈では、PCやスマートフォンなどの端末を指します。
Q.Webhookは無料で使えますか?
A. プラットフォーマーによって違います。無料で設定できるところ、無料での利用回数に制限があるところもあるので、自社の利用環境を確認してみてください。
Q.「Webhook」と「API連携」は同じ意味ですか?
A. 複数のアプリを連携させるという点では類似した機能を持ちますが、通信方式(プッシュ型/プル型)や、手動で操作できるかどうかなど、差があります。
Q.Webhookを設定する際、プログラミングの知識は必要ですか?
A. Webhook対応のアプリにはプログラムを書くことなく、管理画面から設定することができるものもあります。連携させたい内容によっては、一定の知識が必要となるでしょう。
まとめ
Webhookは業務の自動化や、リアルタイム通知によるスピーディな対応に役立ち、APIでの自動連携に比較して負荷も抑えられるため、今、多くのシーンで利用が進んでいます。この機会に皆様の現場にも採用し、その効果を確かめてみてはいかがでしょうか。
この記事を書いたライター
蔵捨
コピーライター
広告代理店勤務を経て、2001年からフリーランスに。ウェブを中心にIT系、ビジネス系の記事を執筆する他、企業ウェブサイトのコンテンツ制作、製品プロモーション映像の構成台本制作などを手掛ける。