アプリの設定でウェブフックが言及されているのを見て、それを使うべきかどうか疑問に思ったことがあるかもしれません。結論を言えば、「使うべき」でしょう。
ウェブフックは、アプリが他のアプリに自動メッセージや情報を送信する方法の一つです。PayPalが顧客からの支払いを会計アプリに通知する方法、Twilioが電話をあなたの番号に転送する方法、そしてWooCommerceがSlackで新しい注文を通知する方法などがあります。
これらは、オンラインアカウントが相互に連携し、新しいことが起こった際に自動的に通知を受けるためのシンプルな方法です。多くの場合、アプリ間でデータを自動的にプッシュしたい場合は、ウェブフックの使い方を理解する必要があります。
詳しく見ていきましょう。ウェブフックの仕組みを学び、Zapierのウェブフックを使ってお気に入りのアプリ同士を連携させましょう。
このガイドの内容
ウェブフックとは?

ウェブフックとは、何かが起こった際にアプリから送信される自動メッセージです。彼らはメッセージ(もしくはペイロード)を持ち、固有のURL(一種のアプリの電話番号や住所のようなもの)に送信されます。ウェブフックは通常、リアルタイムでデータを共有できるように、アプリやシステムを接続するために使用されます。
通常、アプリ間で情報を共有するために通信する方法としては、ポーリングとウェブフックの2つがあります。カスタマーチームの友人が説明したように、ポーリングは友達のドアをノックして「砂糖(つまり情報)はありますか?」と尋ねるようなものですが、欲しいときには毎回尋ねに行かなければなりません。ウェブフックは、誰かが砂糖を購入するたびに、あなたの家に砂糖の袋を投げ込むようなものです。いちいち尋ねる必要はなく、利用可能になるたびに自動的に送られるのです。
ウェブフックはほとんどの場合ポーリングよりも高速で、作業も少なくて済みます。それらはSMS通知とよく似ています。たとえば、新しい購入を行うと、ご利用の銀行からSMSが送信されるとします。あなたはすでに銀行に電話番号を伝えているので、銀行はメッセージをどこに送るべきかを知っています。銀行は「NewStoreで10ドルが支払われました」と入力し、あなたの電話番号+1-234-567-8900に送信します。銀行で何らかの処理が行われると、それに関するメッセージを受け取る、というわけです。
→ ウェブフックを使い始める準備はできましたか?技術的な詳細をスキップして先に進むか、ウェブフックでよく使われる用語について詳しく知りたい場合は、読み進めてください。
ウェブフックの仕組み
ウェブフックは、コンピュータのコマンドライン経由ではなく、HTTPを介してアプリ間で送信されるデータおよび実行可能なコマンドで、XML、JSON、もしくはフォームエンコードされたシリアル形式でフォーマットされています。これらは、ウェブ上で動作するソフトウェアのフック(もしくは何かが発生したときに実行される関数)であるため、ウェブフックと呼ばれています。それらは通常、秘匿性によって保護されています。アプリの各ユーザーは、ウェブフックデータを送信するためのユニークでランダムなURLを割り当てられます。ただし、必要に応じてキーや署名によるセキュリティをオプションで適用することも可能です。
通常、ウェブフックを使用して2つの異なるアプリを接続します。トリガーアプリでイベントが発生すると、そのイベントに関するデータがシリアル化され、アクションアプリのウェブフックURLに送信されます。これは、最初のアプリから送信されたデータに基づいて何らかの処理を行うためのものです。アクションアプリケーションは、データが正常に受信されたかどうかをトリガーアプリケーションに通知するために、302
のようなHTTPステータスコードを伴うコールバックメッセージを送信できます。データが正常に受信されなかった場合は404
を返します。
ウェブフックはAPIに類似しています。しかし、よりシンプルです。APIは、アプリがデータを追加、編集、取得するための関数やコールを備えた完全な言語です。違いは、APIでは自分で作業を行う必要がある点です。APIを介して別のアプリと接続するアプリを構築する場合、そのアプリは必要な際に別のアプリから新しいデータを取得するための方法が必要です。一方で、ウェブフックはアプリの特定の部分を対象とし、自動化されます。新しい連絡先専用のウェブフックが設定されている場合、新しい連絡先が追加されるたびに、アプリは自動的にそのデータを他のアプリのウェブフックのURLにプッシュします。これは、自動的に実行されるシンプルな一対一の連携です。
ウェブフックの例
それが何であるかを理解したところで、ウェブフックの例とその仕組みを詳しく見てみましょう。
Bobはあなたの店舗のウェブサイトを開き、ショッピングカートに10ドル分の紙を入れて、チェックアウトしました。この突然の出来事を、アプリがあなたに知らせる必要があります。ウェブフックの出番です。
ちょっと待ってください、アプリは誰に電話をかけるのでしょうか?銀行に電話番号を通知しないとテキストメッセージを受け取れないのと同じように、ウェブフックの場合も、送信元のアプリ(この場合、あなたのeコマースストア)に、データを受け取るアプリ(データを送りたいアプリ)のウェブフックURLを通知する必要があります。
この新しい注文のための請求書を作成したいとします。この請求書を作成するアプリは受信側、つまり注文データを必要とするアプリです。
まず、請求書アプリを開き、請求書テンプレートを作成し、ウェブフックURL(yourapp.com/data/12345など)をコピーします。次に、eコマースストアアプリを開き、そのURLをウェブフック設定に追加します。そのURLは、請求書アプリの電話番号のようなものです。別のアプリがそのURLにpingを送信した場合(もしくはブラウザのアドレスバーにURLを入力した場合)、そのアプリは誰かがデータを送ろうとしていることを検知します。
注文に戻ります。あなたのeコマースストアは注文を受け取り、その詳細をyourapp.com/data/12345に送信する必要があることを認識しています。その後、注文をシリアル形式で書き込みます。それらの形式のうち最もシンプルなものは「フォームエンコード」と呼ばれ、顧客の注文は次のような形式になります。
Customer=bob&value=10.00&item=paper
今度は、あなたのeコマースストアはメッセージを送信する必要があります。ウェブフックURLにデータを送信する最も簡単な方法は、HTTP GETリクエストを使用することです。文字通り、それはURLにデータを追加し、URLにpingを送信する(もしくはブラウザのアドレスバーに入力する)ことを意味します。Zapierの「About」ページをzapier.comの後に/aboutと入力して開くのと同様に、アプリ間でメッセージを送信するには、ウェブサイトアドレスの末尾に疑問符(?)を付けて追加のテキストをタグ付けします。こちらが注文に関する完全なGETリクエストです。
https://yourapp.com/data/12345?Customer=bob&value=10.00&item=paper
請求書アプリの奥深くで、何かが鳴り響き「メールが届いた!」と表示されます。するとアプリが動作を開始し、Bobの10ドルの紙の注文用の新しい請求書を作成します。これがウェブフックの機能です。
Eメールを確認して新しいメッセージがあるかどうかを確認しなければならなかった時代を覚えていますか?そしてプッシュメール(「メールが届きました!」)がどれほど自由をもたらしたのでしょうか。それがアプリにとってのウェブフックです。新しい情報を確認する必要がなくなりました。その代わり、何かが起こったときに、データを互いにプッシュすることで、確認や待機に時間を無駄にしないで済んでいるのです。
ウェブフックの使用方法
あなたは専門用語を理解し、アプリがウェブフックを使用して相互にメッセージを送信する仕組みを理解し、シリアライズされたデータの意味を理解することもできるようになりました。これでウェブフックを扱えます。
今こそ、それを使うときです。ウェブフックの仕組みを理解するための最良の方法は、実際に試してみることです。自分でウェブフックを作成し、それが機能するかどうかを確認してみてください。あるいは、一足飛びにウェブフックのURLをアプリに直接ドロップしてデータを共有することもできます。結局のところ、ウェブフックを作成する方法を知らなくても、それらを使用することは可能です。
ステップ1:RequestBinとPostmanを使ってウェブフックをテストする
学ぶための近道は、実験です。さらに、堅牢なもので実験するのが最善手です。ウェブフックには、RequestBin(Pipedreamが所有)とPostmanという2つの優れたツールがあります。

RequestBinを使用すると、ウェブフックのURLを作成し、そのURLにデータを送信して、それがどのように認識されるかを確認できます。RequestBinにアクセスし、 「RequestBin を作成」をクリックして、表示されるURLをコピーします。URLを表示して利用するには、事前にPipedreamアカウント(GoogleもしくはGitHubで作成したアカウント)が必要です。
次に、フォームエンコード形式でデータをシリアライズするか、上記のサンプルフォームをコピーします。新しいタブを開き、RequestBinのURLをURLバーに貼り付け、末尾に「?」を追加してから、シリアライズされたデータを貼り付けます。最終的に、次のようなものになります。
https://requestbin.com/19uynve1?customer=bob&value=10.00&item=paper
ブラウザのアドレスバーでEnterキーを押すと、「success:true」というシンプルなメッセージが表示されます。RequestBinタブを更新すると、上記のスクリーンショットのように、データが下部に表示されます。

その後、RequestBinのサンプルコードを使用して、ターミナルまたは独自のアプリのコードからPOSTリクエストを送信してみることができます。少し複雑ですが、JSONやXMLエンコーディングを試すこともできます。
もしくは、そのために別のアプリを使用してください。
Postmanアプリを使うと、カスタムHTTPリクエストを作成して、カスタマイズされたデータをウェブフックのURLに簡単に送信できます。URLを入力して、使用したいHTTPリクエストメソッド(GET、POST、PUTなど)を選択し、ボディデータを追加します。

これにより、追加のコードを使用せずに、より詳細なリクエストをウェブフックURLに送信できます。
ステップ2:アプリにウェブフックを追加する
ウェブフックのテストやデータのシリアライズを手動で行うのは難しいものです。同様に、アプリからデータをコピー&ペーストするのも手間がかかります。両方ともスキップして、アプリ同士を連携させましょう。
ここでは、WordPressを利用したフォームツールGravity Formsとドキュメントテンプレート作成アプリFormstackを例として使用していますが、ウェブフックをサポートする他のほとんどのアプリでも同じ基本的な考え方が当てはまります。以下が基本的な手順です。

まず、アプリでウェブフックを有効にしていない場合は有効にし、ウェブフックの設定を開きます(たとえばGravity Formsではアドオンをインストールする必要があります。Active Campaignでは開発者設定にウェブフックがあり、WooCommerceではアプリの詳細設定にウェブフックがあります)。アプリには、アプリ全体に適用される単一のウェブフック設定が設定されている場合があります。または、多くの場合、アプリが管理する各フォーム、ドキュメント、その他のアイテムごとに専用のウェブフックが設定されています。
データをGravity Formsから取得したいので、使用するフォームのウェブフック設定を開きます。これにより、URLフィールド(データを送信する先をGravity Formsに指示する)と、ウェブフックHTTPリクエストメソッド(データの送信方法)を指定するオプションが得られます。

次に、データを受信するアプリ、この場合はFormstack DocumentsからそのURLを取得します。Formstackでは、各ドキュメントには独自の「マージURL」が設定されています。このURLはサンプルデータのアンパサンド(&)からわかるように、フォームエンコードされたシリアル化データを必要とします。マージURLをコピーします。もしくはアプリが提供するURLをコピーします。アプリによっては、異なる名前が付けられている場合があります。
ヒント:多くの場合、ウェブフックのURLと関連設定は、アプリに応じて「インテグレーション」「ウェブフック」もしくは「ワークフロー」の設定項目内に表示されます。

最後に、トリガーアプリ(この場合はGravity Forms)に戻り、Gravity FormsのURLフィールドにウェブフックURLを貼り付けます。また、適切なリクエストメソッドと特定のフィールド値を設定することで、必要なデータだけが送信され、受信アプリが使用するのと同じ変数名で共有されるようにすることも可能です。設定を保存すれば、準備完了です。
次に、Bobが注文した10.00ドルの紙のフォームに誰かが記入すると、Gravity FormsはデータをFormstackのURL(https://www.webmerge.me/merge/149933/gxszxg?Name=Bob&Item=Paper&Value=10.00
)に送信し、Formstackはそのデータを完全な請求書に変換します。
ウェブフックを使い始めると、ウェブフック(もしくは類似のリンク)を思いもよらない場所で至る所で現れることに気づくでしょう。たとえば、PayPalは、即時支払い通知(IPN)を使用して、支払いを受け取るたびに通知を送信します。PayPalで支払いを受け取った際に、何か処理を行いたいアプリがありますか?PayPalのIPN設定にウェブフックのURLを追加すると、次回入金があった際にそのアプリにメッセージが届きます。

あるいは、Twimlets(Twilioのシンプルなアプリ)を使用すれば、通話の転送、ボイスメールメッセージの録音、電話会議の開始など、さまざまな機能を利用できます。たとえば、通話を転送するには、Twilioの電話番号設定にhttp://twimlets.com/forward?PhoneNumber=415-555-1212
のような使い慣れたウェブフックスタイルのTwimletアドレスを追加します。スマートフォンで動作するアプリを自作したい、もしくは新しい着信があった際に別のアプリに通知したいですか?その代わりに、Twilioの設定にウェブフックURLを入力してください。
名前は異なるかもしれませんが、アプリが通知を送信する際に固有のリンクを提供する場所を見つけたら、その場所がウェブフックが機能する別の場所であることに気づくでしょう。使い方を理解した今、ウェブフックを利用してソフトウェアに好きなように動作させることができるようになりました。
Zapierを使って任意のアプリでウェブフックを利用する方法
Zapierの多くのアプリは、既にバックエンドでウェブフックを使用しています。通常、Zapierアプリが実際のセットアップをすべて処理するため、気づかないかもしれません。ウェブフックをオプションとして提供するアプリにめぐり合った場合は、Zapのウェブフックステップを使って、ウェブフックについて学んだことをいかして自分で設定することができます。
メモ:Zapierのウェブフックは、有料プランもしくはトライアル期間中のZapierユーザーのみが利用可能な組み込みツールです。

たとえば、ウェブフックのURLにデータを送信できるアプリがあるとします。それを他のアプリに接続するには、新しいZapを作成します(これをZapierの自動化アプリZapワークフローと呼びます)、そしてトリガーアプリとしてZapierのウェブフックを選択します。別のアプリからGET、POST、あるいはPUTリクエストを受信できるCatch Hookを選択します。Zapierは、独自のウェブフックURLを提供します。そのURLをコピーし、アプリの設定画面のウェブフックURLフィールドに追加してください。
GETリクエストはサーバーにデータを要求します。POSTリクエストはデータをコンピュータに送信します。PUSH リクエストは、通常は更新のために、サーバーに特定のデータを要求します。

次に、アプリにURLをテストさせるか、新しい項目(新しいフォーム入力、連絡先、もしくはアプリが作成するもの)を追加して、アプリがデータをウェブフックに送信するようにします。Zapierでウェブフックステップをテストすると、そのウェブフックからのデータがZapierに表示されます。

これで、そのデータを別のアプリで利用できるようになりました。アクションアプリ(データを送信するアプリ)を選択します。そのアプリにデータを追加するためのフォームフィールドが表示されます。ウェブフックのデータを追加したいフィールドをクリックし、ドロップダウンから選択します。Zapをテストして、すぐに使用できるようになります。これで、次回トリガーアプリがウェブフックにデータを送信すると、Zapierが自動的に選択したアクションアプリにそのデータを追加します。
逆もまた然りです。ウェブフックを使って、ひとつのアプリから別のアプリにデータを送信したいですか?Zapierは、トリガーアプリからのデータをシリアライズされたリストに変換し、任意のウェブフックURLに送信できます。

まず、データを送信するトリガーアプリを選択し、通常どおりZapierでセットアップします。次に、アクションアプリとしてウェブフックを選択し、データの送信方法を選択します(ほとんどのウェブフックインテグレーションにはPOSTが一般的に最適なオプションです)。
最後に、データを受信したいアプリのウェブフックURLを、Zapierのウェブフック設定のURLフィールドに貼り付けます。データのシリアライズ方法を選択できます(フォームもしくはJSONが一般的に最適です)。Zapierは、トリガーアプリからすべてのデータを自動的にウェブフックに送信します。あるいは、以下のデータフィールドから特定のデータ変数を設定することもできます。

Zapを使用する準備が整いました。これで、トリガーアプリで新しいイベントが発生するたびに、Zapierはデータをコピーし、他のアプリのウェブフックURLに送信します。
もっとサポートが必要ですか?Zapでウェブフックを使用するステップバイステップの手順については、ウェブフックのドキュメントをお読みください。
ウェブフックは、Zapierと互換性のないアプリを接続する最も効果的な方法の一つです。Zapierに接続できないMacもしくはiPhoneアプリをお持ちの場合は、AlfredやSiriショートカットと、ZapierのウェブフックURLを組み合わせることで、それらをZapierワークフローに接続できます。その方法は以下の通りです。
iOS12以降を搭載したiPhoneもしくはiPadで、SiriショートカットにZapierを追加する
ウェブフックを利用したZapier Alfredワークフローを使用して、Macの検索ツールからZapsを実行する
あるいは、Zapierのウェブフックインテグレーションを使用して、ウェブフックを利用する他のアプリを自動化するか、これらの人気のZapテンプレートのいずれかを使用してすぐに始めることができます。
新しい Google ウェブフック POST リクエストから Google スプレッドシートに情報を追加する
詳細はこちら: ウェブフックからEメールを送信する方法
ウェブフックを始める
さて始めましょう。ウェブフックとその複雑な用語に関する新たな知識を身につけ、仕事でウェブフックを使い始める準備が整いました。お気に入りのウェブアプリの詳細設定を調べて、ウェブフックをサポートしているかどうか確認してください。これらをどのように活用してビジネスをサポートできるかを検討し、実際に試してみてください。
自分で試してみる準備はできましたか?ウェブフックを試してみて、ビジネスを強化しましょう。
この記事は当初2018年3月に公開され、その後Katie Redderson-LearとWill Harrisによる更新がありました。直近では2025年7月にSteph Spectorによって更新されました。