Webhook サブスクリプションについて
Webhook サブスクリプションでは、一元化された構成を通じてカテゴリのすべてのイベントを受信します。これらは、リアルタイムのイベント処理、分析パイプライン、およびすべてのイベントを個々のメッセージ要求に分散させるのではなく、1か所にまとめたい監視システムに最適です。
設定手順は、Webhookサブスクリプションの管理をご参照ください。
Webhook サブスクリプションとは [#what-are-webhook-subscriptions]
Webhook サブスクリプションは、特定のチャネルまたはサービスで発生するすべてのイベントの通知を自動的に配信します。アプリケーションにとって重要なイベント(配信ステータス、受信返信、クリック、開封、バウンス)を定義します。NTT CPaaS は、これらのイベントが発生するたびに Webhook URL に通知を送信します。
- リアルタイム: Events は発生時にプッシュされます (オンデマンドでプルされません)。
- チャネルまたはサービスレベルのスコープ: 個々のメッセージではなく、1つの特定のチャネル(SMS、電子メール、WhatsAppなど)またはサービス(登録、モバイルID、ブロックリストなど)をサブスクライブします。
- 自動配信: 一致するすべてのイベントは、発生したときに Webhook URL に送信されます。
- 一元化されたルーティング: サブスクリプションエンドポイントは、カテゴリの選択したイベントを受信します。
- イベントフィルタリング: 必要なイベントタイプ(配信、受信、クリックなど)を指定し、オプションのフィルターで範囲を絞り込みます。
- スケーラブルでステートレス: 各イベントは独立しています。セッション接続や永続接続は必要なく、システムは大量のイベントストリームを効率的に処理します。
Webhook サブスクリプションのしくみ [#how-webhook-subscriptions-work]
- カテゴリ ([チャネル]、[番号と送信者]、または [ツール] ) を選択してから、特定のチャネルまたはサービスを選択します。
- 受信するイベントタイプ(
DELIVERY、INBOUND_MESSAGE、CLICKなど)を指定します。 - 通知プロファイルを使用して Webhook URL を指定します。
- 必要に応じて、フィルターを設定します (アプリケーション、エンティティ、ユーザー、リソースなど)。
- メッセージが送信、配信、返信されるか、サブスクライブされたチャネルで別の追跡イベントが発生します。
- チャネルまたはサービスが一致していますか?
- イベントの種類はサブスクリプションに含まれていますか?
- フィルターは一致しますか (ある場合)?
- イベント データを含む Webhook URL への HTTP リクエスト。
- サーバーがすぐに応答しない場合の自動再試行。
- 通知が本物であることを確認します。
- データを格納し、ビジネス ロジックをトリガーします。
サブスクリプション-通知-プロファイル関係 [#subscription-notification-profile-relationship]
subscription は、通知をトリガーするイベントを定義します。notification profile は、これらの通知が配信される場所と方法 (Webhook URL、配信設定、認証) を指定します。結果の通知は、イベント発生時に送信される実際の HTTP POST 要求です。すべてのサブスクリプションは通知プロファイルを参照する必要があり、このプロファイルを空にすることはできません。これらのコンポーネントの関連付けと削除の依存関係の詳細については、「サブスクリプション階層と削除ルール」を参照してください。
各コンポーネント(通知プロファイル、認証設定、証明書)の詳細な内訳と使用時期については、「サブスクリプションコンポーネント」を参照してください。
サブスクリプション フィルターとスコープ [#subscription-filters-and-scope]
サブスクリプションには、通知をトリガーするイベントを絞り込むためのオプションのフィルターを含めることができます。フィルターを空のままにすると、サブスクリプションは選択したカテゴリとチャネルのすべてのイベントに適用されます。
| フィルター | 説明 | 範囲 |
|---|---|---|
| ユーザー | 特定のアプリケーションユーザーからのEvents(基本認証) | 従来のユーザー スコープのフィルター処理 |
| エンティティ | 特定のエンティティタイプまたはIDのEvents | CPaaS X スコープ フィルタリング |
| アプリケーション | 特定のアプリケーション ID の Events | CPaaS X スコープ フィルタリング |
| 通話設定 | 特定のコール設定の Events | Voice イベント |
| リソース | 特定の通信リソース (電話番号、送信者 ID、電子メール ドメイン) の Events。アウトバウンドトラフィックの場合、送信者と一致します。受信トラフィックの場合、宛先と一致します。 | 番号または送信者固有の追跡 |
アプリケーション、エンティティ、および通話構成フィルターを使用すると、サブスクリプションを特定の顧客またはマルチテナント プラットフォームの構成にスコープ設定できます。詳細な設定は、「CPaaS XのWebhookサブスクリプション」(/cpaas-x/イベント-subscriptions)を参照してください。リソースの種類については、「リソースと数値の概要」を参照してください。
各サブスクリプションは一意である必要があります。カテゴリとチャネル、イベントタイプ、およびフィルター値の同じ組み合わせで 2 つのサブスクリプションを作成することはできません。重複を作成しようとすると、検証エラーが返されます。
サブスクリプションとメッセージごとの Webhook の選択 [#choosing-between-subscriptions-and-per-message-webhooks]
| アスペクト | Webhook サブスクリプション | メッセージごとの Webhook |
|---|---|---|
| セットアップ | チャネルごとに 1 回作成 | 各 API リクエストで設定する |
| ルーティング | すべてのイベントを 1 か所に | 異なるメッセージを異なるURLにルーティングする |
| 柔軟性 | チャネルレベルのフィルタリング | メッセージ・レベル制御 |
| 運用上の負担 | 低(1つの構成) | 高 (すべての要求を構成) |
| 組み合わせる? | ほとんどのイベントにサブスクリプション + カスタム ルーティングが必要な特殊なケースにはメッセージごとの Webhook を使用します。 | |
Webhook サブスクリプションは、次の場合に使用します。
チャネルのすべてのイベントを 1 か所で処理したり、リアルタイムのイベント パイプラインやダッシュボードを構築したり、運用のシンプルさ (一度構成してどこにでも適用したり)、マルチテナント システムで大量のイベント処理を処理したりする必要があります。
次の場合にメッセージごとの Webhook を使用する
メッセージごとに異なるエンドポイントが必要になるか、メッセージ レベルのルーティング ロジックが必要か、一部のメッセージのみに Webhook が必要です。
Webhook URL のオーバーライド動作 [#webhook-url-override-behavior]
Webhook URL は、notifyURL、trackingURL、webhookURLなどのフィールドを使用して、個々のメッセージ送信リクエストで直接定義できます。これにより、サブスクリプションを構成せずに、特定のメッセージのイベント通知をすばやく受信できます。
メッセージ要求で Webhook URL を設定すると、その特定のメッセージに対して構成されたサブスクリプションが上書きされます。このメッセージは、すべてのサブスクリプション ロジックを完全にバイパスして、すべての通知をリクエストの URL に送信します。通常、これらのイベントを受信するアクティブなサブスクリプションがある場合でも、メッセージレベルの Webhook が優先されます。
API リクエストで Webhook URL を指定すると、システムはそれらを スタンドアロン通知プロファイル と照合します。システムが一致するものを見つけると、構成された詳細設定、証明書、またはセキュリティ構成が適用されます。一致するスタンドアロン プロファイルが存在しない場合、システムは追加の設定なしで通知を URL に転送します。
メッセージレベルのWebhookを使用する場合:
- Webhook の動作を迅速に検証する高速テスト シナリオ
- 特定のメッセージに異なる通知ルーティングが必要なフォールバックケース
- サブスクリプション設定なしの 1 回限りの通知
**予測可能なルーティングを行うには、次の場合にメッセージ レベルの Webhook の代わりにサブスクリプションを使用します。
- 一元化されたイベント処理を必要とする本番システムの実行
- 既にサブスクリプションを使用している場合、メッセージ レベルの URL を追加すると、競合するルーティングが作成されます
- メッセージごとの URL の管理がエラーが発生しやすい大量のメッセージングの処理
利用可能なWebhookイベント
すべてのチャネル、番号、送信者、およびツールにわたるイベントの完全な参照。
Webhook サブスクリプションの管理
サブスクリプションを作成、更新、削除します。
通知プロファイルの管理
Webhook URL、配信設定、応答検証を定義します。
サブスクリプションの階層と削除ルール
コンポーネントの関係と削除の依存関係。
受信メッセージのルーティング
インバウンド・メッセージの構成階層および決定フロー。
イベント形式の管理
チャネルごとに静的またはアダプティブ イベント ペイロード形式を選択します。