Webhook
Webhookとは?
Webhookを使うと、Hedyは他のアプリやサービスにリアルタイムでデータを送れます。セッションの終了やハイライトの作成といったイベントが発生すると、Hedyはあなたが指定したURLにデータを送信します。これにより、コーディングなしで強力な自動化を構築できます。
たとえば、次のようなことを自動化できます。
-
会議の文字起こしをGoogleドキュメントやNotionに保存する
-
セッションの要約をSlackチャンネルに投稿する
-
アクションアイテムからAsanaやTodoistにタスクを作成する
-
セッションデータをスプレッドシートに記録する
Webhookは、イベントが起きたときにデータを外へ送り出す仕組みです。代わりに、AIアシスタントがセッションデータを必要に応じて取得するようにしたい場合は、MCPでHedyをAIアシスタントに接続するをご覧ください。
設定したWebhookは、設定 > 自動化とデータ > APIアクセス > Webhookを管理にあります。それぞれに、登録されているイベントと作成日が表示されます。

要件
-
Hedy Proサブスクリプション — WebhookはProの機能です
-
クラウド同期が有効 — Hedyがクラウド経由でWebhookのイベントを処理するために必要です
クラウド同期がなくてもWebhookの表示はできますが、作成、編集、トリガーにはクラウド同期の有効化が必要です。
Webhookを設定する
-
Hedyを開き、設定に移動します
-
下へスクロールして、APIアクセスセクションを表示します
-
Webhookを管理をタップします
-
+ボタンをタップして、新しいWebhookを追加します
-
名前を入力します(任意)— このWebhookが何のためのものかを思い出せるようにするラベルです(例:「Zapier会議メモ」)
-
外部サービスから取得したWebhookのURLを貼り付けます — HTTPSのURLである必要があります
-
登録したいイベントを選びます(後述)
-
作成をタップします
-
作成の直後に、Hedyが署名シークレットを表示します。表示されるのはこの1回だけです。ダイアログを閉じる前に、コピーして安全な場所に保管してください。
Webhookは10個まで作成できます。
Webhookを編集する
一覧のWebhookをタップすると、同じフォームが再び開きます。名前の変更、別のURLへの切り替え、発火するイベントの変更ができます。変更したら保存をタップします。

Webhookを編集しても、署名シークレットは変わりません。Hedyがシークレットを発行するのは、Webhookを最初に作成したときの1回だけです。
利用できるイベント
Webhookを発火させるイベントを選びます。
セッション作成 — 新しいセッションを開始したときに発火します。セッションのタイトルと開始時刻を送信します。
セッション終了 — セッションが終了したときに発火します。文字起こし、要約、議事録、ハイライト、セッションノート、トピック情報を含む、セッションの全データを送信します。最も包括的なイベントです。
セッションのエクスポート — セッションをWebhookへ手動でエクスポートしたときに発火します。セッション終了と同様のデータ(文字起こし、要約、ハイライト、セッションノートなど)を送信します。
ハイライト作成 — セッション中にハイライトが取り込まれるたびに発火します。ハイライトのテキスト、AIによるインサイト、タイムスタンプを送信します。
提案作成 — ライブのセッション中にHedyが自動提案を表示するたびに発火します。提案のテキスト、その提案が属するセッション、セッションタイプを送信します。Hedyは1回のセッションで複数の提案を出すことがあるため、このイベントは他のイベントより頻繁に発火します。
ToDoのエクスポート — アクションアイテムをエクスポートしたときに発火します。ToDoのテキスト、期限、関連するセッションを送信します。
セッションを手動でエクスポートする
自動のイベントに加えて、任意のセッションをWebhookに手動で送信することもできます。
-
完了したセッションを開きます
-
Webhookへエクスポートをタップします
-
「セッションのエクスポート」イベントを登録したWebhookが複数ある場合は、送信先を選びます
-
エクスポートを確定します
Webhookをテストする
Webhookに頼る前に、動作を確認できます。
-
設定 > 自動化とデータ > APIアクセス > Webhookを管理に移動します
-
任意のWebhookのテストボタンをタップします
-
Hedyがテスト用のペイロードをあなたのURLに送信し、成功したかどうかをレスポンスのステータスコードとともに表示します
テストが失敗した場合は、URLが正しいことと、外部サービスがリクエストを受け付ける準備ができていることを再確認してください。
webhook.siteでペイロードを確認する
Zapier、Make、自前のサーバーを設定する前に、Hedyが送るものを、ヘッダー、JSON本文の全体、署名まで正確に見たい場合は、webhook.siteがいちばん手早い方法です。
-
webhook.siteを開きます — 固有のURLが即座に生成され、登録は不要です
-
URLをコピーして、HedyのWebhookに貼り付けます
-
Hedyでテストをタップします(または実際のイベントを発生させます)
-
webhook.siteに戻ります — すべてのリクエストが、完全なヘッダー、クエリ文字列、本文とともにリアルタイムで表示されます
これでHedyのペイロードの正確なフィールド名と構造が分かるので、その形に合わせて本番の自動化を構築してください。無料プランではURLごとに100件までリクエストを受け付けるため、デバッグには十分です。
送信されるデータ
すべてのWebhookリクエストは、JSON本文を持つHTTP POSTです。データの内容はイベントの種類によって異なりますが、セッション終了のイベントには次のものが含まれます。
-
セッションの詳細 — タイトル、開始時刻、終了時刻、所要時間
-
文字起こし — セッションのテキスト全文
-
会話 — 話者ごとの構造化された対話
-
議事録 — 議論の要点
-
要約 — AIが生成した要約
-
ハイライト — 各ハイライトと、そのAIインサイト、引用、タイムスタンプ
-
セッションノート — セッションについての自分のメモ。
session_notesフィールドに入ります(リッチテキストのJSONで、何も書いていない場合は空文字列)。Hedy 3.4以降では、session.endedとsession.exportedで送信されます -
トピック — セッションがトピックに割り当てられている場合の、トピック名とインサイト
セッションノートについての注意:終了から数秒以内にセッション後の画面で入力したノートは、Hedyがまだ保存している最中のため、最初のsession.endedの配信に含まれないことがあります。それらのノートは、session.exportedとAPIには必ず含まれるので、必要な場合はセッションを再度エクスポートしてください。
suggestion.createdイベントは、はるかに小さなものです。セッション全体ではなく、提案のテキスト、提案の識別子、その提案が属するセッション、セッションタイプ、タイムスタンプだけを送信します。届いた時点でセッションがまだ進行中の場合もあるため、文字起こしと要約の全体が必要ならsession.endedを使ってください。
セキュリティと検証
すべてのWebhookリクエストには署名が含まれ、そのリクエストが確かにHedyから送られたものか検証できます。
-
X-Hedy-Signatureヘッダー — リクエスト本文のHMAC-SHA256ハッシュ(生の16進エンコード)。Webhookごとに固有のシークレットで署名されます(
sha256=のプレフィックスはありません)。シークレットが表示されるのは、Webhookの作成時の1回だけです。 -
X-Hedy-Eventヘッダー — イベントの種類(例:session.ended)
データが転送中に暗号化されるよう、すべてのWebhook URLはHTTPSを使う必要があります。HedyがHTTPのエンドポイントにデータを送ることはありません。
署名を検証する
自前のエンドポイントを構築する場合は、信頼する前にすべてのリクエストを検証してください。生のリクエスト本文と署名シークレットでHMAC-SHA256を計算し、定数時間の比較でX-Hedy-Signatureヘッダーと照合します(通常の==は、タイミング攻撃に対して脆弱です)。
Node.js:
const crypto = require('crypto');
function verifyHedy(rawBody, signature, secret) {
const expected = crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
const a = Buffer.from(expected, 'hex');
const b = Buffer.from(signature, 'hex');
return a.length === b.length && crypto.timingSafeEqual(a, b);
}
Python:
import hmac, hashlib
def verify_hedy(raw_body: bytes, signature: str, secret: str) -> bool:
expected = hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, signature)
重要:受信したとおりの、生のリクエスト本文のバイト列を使ってください。パースしたJSONをシリアライズし直すと、空白やキーの順序が変わり、署名が一致しなくなります。
主要プラットフォームでWebhookを使う
Zapier — トリガーに「Webhooks by Zapier」を使ってZapを作成します。「Catch Hook」を選び、WebhookのURLをコピーして、Hedyに貼り付けます。
Make(旧Integromat) — シナリオのトリガーとして「Custom Webhook」モジュールを追加します。生成されたURLをコピーして、Hedyに貼り付けます。または、Make用のHedyアプリを使うこともできます。その「Watch events」トリガーがWebhookを自動で登録するため、コピーするURLはありません。
n8n — ワークフローに「Webhook」トリガーノードを追加します。本番用のURLをコピーして、Hedyに貼り付けます。
配信と再試行
Hedyは、失敗した配信を自動的に再試行します。
-
サーバーエラー(5xx) — 間隔を徐々に延ばしながら、最大2回再試行します
-
レート制限(429) — サービスが指定する再試行のタイミングに従い、1回再試行します
-
クライアントエラー(4xx) — 通常は設定の問題を示すため、再試行しません
エンドポイントが返すべきもの:5秒以内に、任意の2xxステータス(200 OKで問題ありません)を返してください。レスポンス本文は無視されます。データベースへの保存、別APIの呼び出し、ドキュメントの生成といった重い処理がある場合は、すぐに200を返し、ペイロードは非同期で処理してください。そうしないと、Hedyがタイムアウトして、配信を失敗として扱います。
トラブルシューティング
Hedy側の問題
「WebhookはProが必要です」というメッセージ — 設定 > アカウント > あなたのプランで、Hedy Proにアップグレードすると、Webhookを利用できます。
「クラウド同期が必要です」というメッセージ — 設定 > プライバシーとシステム > プライバシー設定 > クラウド同期でクラウド同期を有効にするか、Webhook画面の上部に表示される警告バナーの有効にするボタンをタップします。
イベントを受信できない — クラウド同期が有効であること、Webhookが正しいイベントに登録されていること、Proサブスクリプションが有効であることを確認してください。
配信の問題
テストが失敗したりイベントが届かなかったりするとき、問題を切り分けるいちばん早い方法は、Webhookの送信先をwebhook.siteにして、もう一度テストすることです。そこにリクエストが表示されれば、Hedyは正しく送信できており、問題は受信側にあります。
テストがタイムアウトで失敗する — エンドポイントは、テストでは10秒以内、実際のイベントでは5秒以内に応答する必要があります。応答する前に重い処理(データベースへの保存、別APIの呼び出し、PDFの生成など)を行っている場合は、すぐに200 OKを返し、ペイロードは非同期で処理してください。
SSLまたは証明書のエラー — エンドポイントのHTTPS証明書が期限切れ、自己署名、または中間証明書が不足しています。SSL Labsでテストし、更新するか、チェーンを修正してください。
接続拒否または404 — URLが間違っている、パスが存在しない、またはサーバーが動いていません。まずwebhook.siteに対してテストを実行し、正確なURLを確認したうえで比較してください。
ZapまたはMakeシナリオの「404 not found」 — ワークフローが一時停止中、下書きモード、または本番用ではなくテスト用のURLを指しています。Zapierでは、Zapをオンにする必要があります。Makeでは、シナリオがアクティブである必要があります。n8nでは、TestのURLではなくProductionのURLを使ってください。
リクエストが黙って破棄されている — ファイアウォール、WAF、セキュリティプラグイン(Wordfence、Sucuri、Cloudflareのボット対策など)が、受信するPOSTをブロックしています。サーバーのアクセスログを確認し、Hedyのリクエストがまったく現れない場合は、HedyまたはHedyが送るUser-Agentを許可リストに追加してください。
署名が一致しない — 生のリクエスト本文のバイト列ではなく、パースやシリアライズし直したJSONで検証しているか、比較の際にsha256=のプレフィックスを付けています(Hedyはそのプレフィックスを含みません)。上記の「署名を検証する」をご覧ください。
プロのヒント:まずはセッション終了イベントの登録から始めましょう。最も包括的なデータを含み、会議メモを軸にした自動化の構築にいちばん役立ちます。