設定したアラートがトリガーされると、MoEngage は指定された Webhook URL に HTTP POST リクエストを送信します。これにより、社内システム、監視ツール、サードパーティサービスとシームレスに連携できます。
MoEngage × Webhook
Webhook 連携を使用すると、汎用的な HTTP エンドポイントをアラート送信先として設定できます。これは、HTTP POST リクエストをサポートする社内システム、サードパーティの監視ツール、データウェアハウスに MoEngage のアラートをルーティングしたい上級ユーザー向けに設計されています。アラートがトリガーされると、MoEngage は関連するすべてのアラートデータを含む詳細な JSON ペイロードを指定された URL に送信します。 この連携では、次のことができます。- アラートデータを自社のインフラストラクチャにプログラムで取り込む。
- MoEngage のアラートに基づいて、サードパーティシステムでカスタムの自動ワークフローをトリガーする。
- デジタル署名を使用して、アラートの真正性を安全に検証する。
ユースケース
Webhook をアラート送信先として連携すると、次のユースケースに対応できます。- インシデント管理との連携: 重大なアラート(例: Token Expiry や Delivery Rate の低下)が発生したときに、PagerDuty、OpsGenie、Jira などのツールでチケットを自動的に作成します。
- カスタムダッシュボード: アラートの統計情報を社内のデータ可視化ツール(Grafana や Tableau など)に取り込み、長期的な傾向分析に活用します。
- 自動修復: 特定のアラートのしきい値を超えたときに、サーバー側のスクリプトをトリガーして、キャンペーンを一時停止したり設定を自動的に調整したりします。
連携
設定を開始する前に、次のものが揃っていることを確認してください。
- HTTP POST リクエストと JSON ボディを受け付ける、パブリックにアクセス可能なエンドポイント URL。
- JSON ペイロードを解析し、(必要に応じて)セキュリティのために SHA-256 署名を検証する技術リソース。
- アラート管理を設定する権限を持つ MoEngage ワークスペースへのアクセス。
Webhook URL を設定する
Webhook 送信先を設定するには、URL を指定する必要があります。URL は、JSON ボディを含むHTTP POST リクエストを受け付ける、パブリックにアクセス可能なエンドポイントである必要があります。
Webhook URL は、受信したアラート通知をリッスンして処理するアプリケーションまたはサービスのアドレスです。
Webhook ペイロードの構造
すべての Webhook 通知は、一貫した JSON 構造に従います。次の表は、ペイロードの各フィールドについて説明しています。一部のフィールド、特にentity_data オブジェクト内のフィールドは、特定のアラートタイプに固有のものです。
entity_data.content オブジェクト
次の表は、entity_data.content 配列の各オブジェクトに含まれる可能性のあるフィールドについて説明しています。
Webhook の署名を検証する
Webhook リクエストが本物であり、MoEngage から送信されたものであることを保証するために、リクエストヘッダーにデジタル署名が含まれています。Info 不正アクセスを防ぎ、データの整合性を確保するために、サーバー側でこの署名を検証することをお勧めします。
Signature HTTP ヘッダーで渡されます。これは、API キーと生のリクエストボディを連結したものの SHA-256 ハッシュを作成することで生成されます。
署名の生成と検証
- Campaign Report API Key を取得する: このキーは、MoEngage UI で Settings > Account > APIs に移動すると確認できます。
- 署名文字列を準備する: Campaign Report API キー、パイプ文字(
|)、生の JSON リクエストボディを連結します。
形式:YOUR_API_KEY + "|" + RAW_REQUEST_BODY - ハッシュを計算する: 署名文字列の SHA-256 ハッシュを作成し、16 進ダイジェストとしてエンコードします。
- 署名を比較する: 生成したハッシュと、受信したリクエストの
Signatureヘッダーの値を比較します。一致すれば、そのリクエストは本物です。
サンプルペイロードと cURL リクエスト
以下は、Webhook エンドポイントが受信するPOST リクエストと JSON ペイロードを示す cURL コマンドのサンプルです。'https://your-webhook-url.com/endpoint' を実際のエンドポイント URL に置き換えてください。
Campaign Stats(CAMPAIGN_STATS)
絶対しきい値アラート
このアラートは、指標が固定値を超えたときにトリガーされます。相対しきい値アラート(移動平均あり)
このアラートは、指標が過去の移動平均から乖離したときにトリガーされます。移動平均とは、特定の過去期間(例: 過去 7 日間)における指標の平均値で、最近のパフォーマンス傾向からの大きな乖離を特定するのに役立ちます。Flow Stats(FLOW_STATS)
これらのアラートは Campaign Stats と似ていますが、フローレベルの指標に焦点を当てています。Campaign Expiry(CAMPAIGN_EXPIRY)
このアラートは、キャンペーンの有効期限が近づいたときに通知します。APNS Token Expiry(APNS_TOKEN_EXPIRY)
このアラートは、Apple Push Notification Service(APNS)のトークンの有効期限が近づいたときに警告します。このペイロードにはentity_data オブジェクトが含まれないことに注意してください。
Facebook Token Expiry(FACEBOOK_TOKEN_EXPIRY)
このアラートは、Facebook のトークンの有効期限が近づいたときに警告します。このペイロードにもentity_data オブジェクトは含まれません。
Webhook URL を使用して Alert Management を連携する
- MoEngage UI の左側のナビゲーションメニューで、App marketplace をクリックします。

- App marketplace ページで Alert management をクリックし、Webhooks を選択します。

- Webhooks ページで、Integrate タブをクリックします。

- Integrate タブで、次の詳細を入力します。
- Connection name : 接続名を入力します。
- Connection URL : こちらで説明したとおりに作成した Webhook URL を入力します。
- Connect をクリックします。

- 接続を定義したら、Alert management ページでアラートを作成する際に、Send Alerts On リストから定義した新しい送信先を選択できます。

- 送信先を追加すると、Alert management ページで定義したアラート送信先を確認できます。
