Webフック

Webhookは、特定のイベントが発生するとリアルタイムで通知を他のサービスにプッシュアウトします。

Webhookは、他のサービスから情報を取得するためにリクエストを必要とするAPIとは異なります。APIで接続されているサービスの多くは、各リクエストに15分(またはそれ以上)の間隔を要します。Webhookは、リクエストなしですぐに情報を送信します。

Webhookの使用例

Webhookは、認知度の向上や顧客とのコミュニケーションのために、リアルタイムでの通知が必要な場合に有効です。Webhookは、Pendoで発生したリアルタイムのイベントに基づいて、ビジネス全体のワークフローを推進することができます。たとえば、次のようなことが可能です。

  • イベント情報をSegment.comなどのプロバイダーに送信し、他のシステムにルーティングする
  • AWS LambdaやZapierのような他のプラットフォームでワークフローを動かす
  • Zendesk Sunshineのように、Pendoイベントを使ってCRMプラットフォームにリアルタイムでアップデートを送信する
  • イベントをサードパーティのSIEMプロバイダーに送信し、リアルタイムで分析する
  • 監査やコンプライアンスのために管理イベントをアーカイブする

Webhooksを使用して、Pendoで何かが起きたときに自動化されたメッセージや情報を他のサービスに送信できます。Webhookで通知をプッシュすることができるイベントは以下のとおりです。

  • ガイドを表示する
  • ウェブトラックイベントを受信する
  • NPSアンケート(表示/提出)
  • アンケート調査(表示/提出)
  • アプリ内で訪問者が最初に表示されたとき
  • アプリ内でアカウントが最初に表示されたとき

要件

投票調査およびNPSのイベントをWebhookで使用するには、Pendo Agentバージョン 2.33.0以降が必要です。

Webhookを設定し、管理するには、Pendoの管理者権限も必要です。

AdminUser.png

Webhookの種類

Webhookには次の2種類があります。

  • URL Webhook。Webhook通知を送信するプラットフォームでは、各Webhookに固有のURLが生成されます。Webhookを受け付けるほとんどのプラットフォームが、URLを使用します。
  • Segment.com Webhook。Segment.comとの連携により、Segment.com Webhookを作成して、Segmentの推奨フォーマットでイベントを送信することができます。

Webhookは通常、URLを介してイベント情報を送信します。

既存のWebhookを表示する

Pendoでアクティブおよび非アクティブなWebhookのリストを表示するには、左側のナビゲーションで[設定(Setting)]>[インテグレーション(Integrations)]に移動し、[Webhooks]タブを選択します。

whtab.png

Webhookの作成

Webhookを作成するには、左側のナビゲーションで[設定]>[インテグレーション]に移動し、[Webhooks]タブを選択します。ここから、次の手順を実行します。

1. [インテグレーション]ページの右上にある[+ Webhookを追加(+ Add a Webhook)]ボタンを選択します。

2. 次のようなWebhookの詳細を追加します。

    • Webhookの送信先や送信されるデータなどがわかる名前
    • Webhookの種類(URLまたはSegment.com)
    • 書き込みキーまたは URL(選択したWebhookによって異なります)

3. 以下のURL WebhookまたはSegment.com Webhookのいずれかの手順に従ってください。

4. イベントカテゴリーのタイプを選択します。

    • すべてのイベントカテゴリーを選択すると、Webhookのすべてのイベントカテゴリーが送信されます。
    • 個々のイベントカテゴリーを選択すると、Webhookで送信するイベントカテゴリーを選択できます。

イベントカテゴリーを選択した後、Pendoに追加のフィルタリングはありません。たとえば、イベントカテゴリーに「ガイド」を選択した場合、Pendoはガイド表示イベントごとに通知を送信します。特定のガイドのイベントを表示したい場合は、Webhookの送信先内で追加のフィルタリングを設定する必要があります。

mceclip0.png

URL Webhookの作成

Pendo Webhookを受け取ったプラットフォームは、Pendoが通知をプッシュするための固有のURLを生成します。WebhookのURLを入手したら、PendoでWebhookの設定を続けます。

1. 送信先URLを追加します。イベントがトリガーされると、このURLに情報が送信されます。

2. [テスト(Test)]を選択してサンプルのペイロードを送信し、送信先がイベントのペイロードを受け入れるかどうかを検証することができます。

3. [シークレット(Secret)]フィールドに値を入力して、URLで受信した情報が信頼された正しいソースのものであることを検証します。シークレットには、特殊文字を含む任意の値を使用でき、単純なものからセキュリティプロトコルで要求されるような複雑なものまで設定できます。

WebhookのPOST「X-Pendo-Signature」には、シークレットを鍵としてシリアル化されたメッセージのsha256 HMACに値が設定されます。このフィールドではWebhookの本文が使用されているため、これは各投稿で変わることが予想されます。本文は、送信されるイベントごとに変化します。記事「Webhookのセキュリティ保護」で説明されている、GithubのWebhook処理の経験を踏襲しました。

urlwh.png

警告:Webhookのイベント情報には、お客様のインストールやデータのマッピングによって、個人を特定できる情報(PII)が含まれている場合があります。Webhookのテストや有効化を行うときは、信頼できる送信先やサービスを使用するようにしてください。

Segment.com Webhookの作成

Segment.com Webhookには、Segment.comアカウントが必要です。

1.セグメントで、書き込みキーを取得するためのソースとしてPendoを設定します。詳細については、セグメントのPendoソースの記事をご覧ください。

2. セグメントで、[概要(Overview)]>[インストール(Installation)]に移動し、書き込みキーをコピーします。詳細については、セグメントの書き込みキーを特定するの記事をご覧ください。

3. 作成中のPendo Webhookの[書き込みキー(Write Key)]にキーをコピーします。

SegmentWH.png

Webhookの有効化と無効化

Webhookはデフォルトでは無効になっており、データを送信するには有効にする必要があります。

[設定]>[インテグレーション]>[Webhook]で、Webhookの横にあるトグルを使用して、既存のWebhookを有効または無効にします。

enablewh.png

Webhookのスライダーが緑色の場合は、データ送信が有効になっています。同じトグルで、トグルを戻してスライダーをグレーアウトさせ、データの送信を停止します。

activewh.png

Webhookの編集と削除

Pendoで既存のWebhookを編集または削除するには、左側のナビゲーションで[設定]>[インテグレーション]に移動し、[Webhooks]タブを選択します。ここで既存のWebhookにカーソルを合わせると、鉛筆(編集)とゴミ箱(削除)のアイコンが表示されます。

editdeletewh.png

鉛筆(編集)アイコンをクリックすると、Webhookの設定画面が表示され、Webhookに変更を加えることができます。

ゴミ箱(削除)アイコンは、この決定を確認するよう求めた後、Webhookを永久に削除します。Webhookの設定を失わずにデータを停止するには、「Webhookの有効化と無効化」で説明しているように、トグルを使用してWebhookを無効にします。

deltewhw.png

よくある質問

タイムアウトエラーが表示されるのはなぜですか?

Webhookは通常、5分の制限を超えるとタイムアウトになります。5分以上かかるクエリはタイムアウトし、408エラーになります。

エラーが発生した場合、Pendoはイベントの送信を再試行しますか?

429エラーまたは500~599の範囲のエラーメッセージを受信した場合、Pendoは最大5回まで再試行します。

APIバルクメタデータエンドポイント経由で訪問者やアカウントが最初に作成された場合、イベントを受信することはできますか?

いいえ、APIで訪問者やアカウントを作成しても、アプリ内で訪問者が特定されるまでWebhookはトリガーされません。

除外された訪問者からのイベントを受信することはできますか?

いいえ。訪問者が除外されている場合、Pendoは宛先にイベントを送信しません。

Webhookの送信先としてSlackを使用できますか?

いいえ。SlackをWebhookの送信先として使用するには、POSTが特定のフォーマットであることが求められます。Zapierなどのツールを使って、Pendoが送信するJSON本文をSlackが期待するフォーマットに変換する必要があります。