> ## Documentation Index
> Fetch the complete documentation index at: https://docs.frictio.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook概要

> イベントをトリガーに外部システムへ通知を送る仕組み

<Warning>
  Webhookはベータ機能として提供しています。
  仕様変更や提供範囲の変更が生じる場合があります。利用を希望する場合はサポートまでお問い合わせください。
</Warning>

FrictioのWebhookは、特定のイベントが発生した際に、外部システムへリアルタイムで通知を送るための仕組みです。
ミーティング終了やプレイブック実行完了などのイベントをトリガーに、指定したエンドポイントへHTTPS POSTリクエストを自動で送信します。
これにより、社内ツールやCRM、Slack連携など外部システムとの連携や自動処理が可能になります。

<Note>
  送信されるデータには個人情報が含まれます。Webhook URLにはセキュアなエンドポイントを使用してください。
</Note>

## 利用方法

Webhookの設定は、**アドミン・ビューワーアドミン**ロールのワークスペースメンバーが「設定」＞「Webhook設定β」から行えます。

## 主な用途

* 外部システムとのリアルタイム連携（CRM、Slack通知、DB更新など）
* イベントの発生を起点にしたデータ連携

## 提供できるイベント

設定されたWebhookエンドポイントに対して、HTTPS POSTリクエストとして送信されます。
各イベントのペイロード仕様は、以下の各イベントページを参照してください。

| イベントタイプ                                                                                      | 発火タイミング                                                          |
| -------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| [`meeting.completed.beta`](/webhooks/events/meeting-completed)                               | 各種ミーティング終了後。サマリー、アクションアイテム、文字起こしなどミーティングに付随する情報を送信               |
| [`meeting.crm_integrations.created.beta`](/webhooks/events/meeting-crm-integrations-created) | CRM更新を実行後。連携されたCRMレコード情報と、ミーティングに付随する情報を送信（CRMレコード自動更新時は送信されません） |
| [`playbook.generated.beta`](/webhooks/events/playbook-generated)                             | 各種プレイブック実行後。プレイブックの質問と回答、ミーティングの基本情報を送信                          |
| [`playbook.updated.beta`](/webhooks/events/playbook-updated)                                 | プレイブック実行結果の更新後。最終更新から10分経過後に自動送信                                 |

## イベントの再送に関する仕様

受信したWebhookメッセージに対して2xx（ステータスコード200〜299）が返却された場合は「成功」と判断し、再送しません。
それ以外のステータスコード、および3xx（リダイレクト）を含むすべてのコードは「失敗」と見なされます。
レスポンスが15秒以内に返却されない場合はタイムアウトとなり、「失敗」として扱われます。

前回の試行が失敗した場合に限り、以下のスケジュールに従って再試行されます。

1. 即時（初回）
2. 5秒後
3. 5分後
4. 30分後
5. 2時間後
6. 5時間後
7. 10時間後
8. さらに10時間後（前回から追加で）

## ミーティングのWebhookが通知されないケース

ミーティングの文字起こしデータが一定量に満たない場合、文字起こし結果が少ないためサマリーが作成されません。
この場合はWebhookも通知対象外になります。

## Webhookが自動的に無効化されるケース

FrictioのWebhook配信基盤（[Svix](https://www.svix.com/)）の仕様により、**5日間連続して送信に失敗した場合、自動的に該当のエンドポイントを無効化**します。

送信失敗と判断される条件は次の通りです。

* Webhookの受信側でエラーが発生し、2xx（200〜299）以外のレスポンスが返却された
* 15秒以内にレスポンスが返却されなかった（タイムアウト）

無効化された場合は、FrictioのWebhook設定で該当エンドポイントの詳細を表示し、設定を変更せずに更新することで再び有効化されます。

## Google Apps Scriptを介した連携での自動無効化

<Warning>
  Google Apps Script（GAS）への直接連携はできません。
</Warning>

GASのウェブアプリURLをエンドポイントに設定すると、GASの仕様上の理由によりWebhookが自動的に無効化されます。

* **無効化される理由**: FrictioのWebhookはリダイレクト（3xx系）を通信失敗として扱います。一方、GASのウェブアプリはアクセス時に必ずリダイレクトを行う仕様のため、通信失敗が連続発生し、システム保護のため自動的にエンドポイントが無効化されます
* **対応策**: スプレッドシート連携を希望する場合は、iPaaS（Zapier / n8n など）を経由して設定してください
