この記事では、SalesforceとPendo Engageのインテグレーションで発生する一般的な問題について説明します。インテグレーションの概要については、SalesforceとPendoのインテグレーションを参照してください。設定手順については、PendoとSalesforceのインテグレーションを設定するを参照してください。
初期接続
このセクションでは、PendoオブジェクトとSalesforceオブジェクト間の接続を設定する際に発生し得る問題について説明します。このセクションでは、以下のマッピングプロセスに関する問題を取り上げます。
- 一意の識別子として使用したいSalesforceフィールドが見つからない
- 「Pendoで0件が一致しました(0 matched in Pendo)」というメッセージが表示される
- 「重複するエントリが見つかりました(Duplicate entries found)」という警告が表示される
- 「応答ヘッダーの待機中にタイムアウトしました(Timeout awaiting response headers)」というクエリサイズのエラーが表示される
一意の識別子として使用したいSalesforceフィールドが見つからない
接続するSalesforceオブジェクトを選択したら、インテグレーションで使用する訪問者とアカウントの一意の識別子(ID)を選択する必要があります。初期接続の設定時に一意の識別子として使用したいフィールドが見つからない場合は、そのSalesforceフィールドについて以下の点を確認してください。
- 「Pendo」で始まるフィールドですか?「Pendo」で始まるSalesforceフィールドは初期接続に使用できません。該当する場合、Salesforce管理者に依頼し、「Pendo」から始まらないAPIフィールド名に変更してください。
- Pendoに接続したSalesforceオブジェクトに属するフィールドですか?フィールドは、Pendoに接続したSalesforceオブジェクトに存在する必要があります。詳細については、SalesforceとPendoのインテグレーションを参照してください。
- そのSalesforceフィールドのデータ型はサポートされていますか?Salesforceフィールドは、文字列、小数、または整数のデータ型である必要があります。サポートされているデータ型の詳細については、PendoとSalesforceのインテグレーションを設定するを参照してください。
「Pendoで0件が一致しました(0 matched in Pendo)」というメッセージが表示される
[最終同期(Last Sync)]日時を確認して、PendoとSalesforce間の初期接続が完了していることを確かめましょう。接続が成功していれば、[データマッピング(Data Mappings)]ページの下部にある青色の[Salesforceインテグレーション(Salesforce Integration)]ボックスに「Done! Your data will sync nightly. XX Salesforce records found; XX matched in Pendo. Last Sync: Jun 21, 2023 11:08:21 PM」のようなメッセージが表示されます。
このようなメッセージではなく、「0 matched in Pendo」などのメッセージが表示されている場合は、選択した一意の識別子に問題があります。
Salesforceとのインテグレーションでは、PendoフィールドとSalesforceのフィールドの値が一致していることが前提です。スペース、コンマ、大文字/小文字などのわずかな違いでも不一致とみなされます。一意の識別子の要件については、接続を計画する(PendoとSalesforceのインテグレーションを設定するの記事内)を参照してください。
たとえば、User ID
というSalesforceフィールドをPendoのVisitor ID
にマッピングする場合、これら2つのフィールドにある各訪問者のレコードは完全に一致する必要があります。Pendo側のある訪問者のVisitor ID
が1234
である場合、同じユーザーのSalesforce側でのUser ID
も1234
にしなければなりません。
インテグレーションを確認する際に一致が0件であるとのメッセージが表示された場合は、マッピングの設定ステップで選択したフィールド値がPendo側とSalesforce側で完全に一致していることを確認してください。
- Pendoの訪問者またはアカウントオブジェクトと接続するための適切なSalesforceオブジェクトが選択されていることを確認します。
- PendoフィールドとSalesforceフィールドの選択内容を確認します。個々の訪問者またはアカウントについては、これら2つのフィールドに同一の値が入っている必要があります。
Salesforceで選択したフィールドとPendoの対応するフィールドを相互参照し、訪問者またはアカウントの値が一致することを確認するには、以下の手順を実施します。
- Pendoで[ピープル(People)]>[訪問者(Visitors)]に移動し、リストから訪問者を1人選んで開きます。
- 設定されているPendoフィールド(訪問者IDなど)を見つけ、その訪問者のフィールドにある値をメモします。
- Salesforceで、その訪問者に対応するSalesforceレコードを見つけます。
- そのレコードが、 マッピングの設定ステップで選択したSalesforceオブジェクトに属していることを確認します。
- Salesforceフィールドの値とPendoフィールドの値が完全に一致していることを確認します。
「重複するエントリが見つかりました(Duplicate entries found)」という警告が表示される
[データマッピング]ページの下部にある青色の[Salesforceインテグレーション]ボックスで、[最終同期]日時の上に「Warning: Duplicate entries found」というメッセージが表示されている場合、すべてのレコードが更新されたわけではないことを示しています。
その理由は、Pendo側、Salesforce側、またはその両方に、マッピング用に選択したフィールドに同じ値が含まれるレコードが複数存在するためです。それでも同期は実行されますが、インテグレーションでは重複するレコードのどちらを更新すべきか判断する必要があるため、一部のレコードがスキップされる可能性があります。
たとえば、メールアドレスを使用してPendoの訪問者とSalesforceの連絡先を照合している場合、両方のプラットフォームで複数のエンドユーザーが同じメールアドレスを使用できるため、重複が生じる可能性があります。したがって、訪問者の一意の識別子としてメールアドレスを使用している場合、インテグレーションの際に訪問者レコードの重複が見つかることがあります。
このケースでは、同期を実行すると、Pendoはレコードが重複する2つのテーブルを作成します。1つのテーブルにはPendoで見つかった重複レコードが含まれ、もう1つのテーブルにはSalesforceで見つかった重複レコードが含まれます。フィールドが整数である場合、最も小さい数値のレコードが更新対象として選択され、残りの重複レコードはスキップされます。フィールドが整数でない場合、「文字列比較」と呼ばれるプログラミング技法により、どのレコードが「下位」かを判別します。これにより、更新するレコードとスキップするレコードの選択がランダムに見える可能性があります。
レコードの重複を避けるには、PendoとSalesforceのレコードが間違いなく1対1で対応し、両方のシステムで重複がないよう確かめる必要があります。一意性を要件とするフィールドで同期するという選択肢もあります。Pendo側で、アカウントIDと訪問者IDの両フィールドで一意性を要件にすれば、重複したレコードの作成は不可能になります。また、PendoおよびSalesforce管理者と協力し、重複を特定して削除することもできます。
「応答ヘッダーの待機中にタイムアウトしました(Timeout awaiting response headers)」というクエリサイズのエラーが表示される
PendoとSalesforceのインテグレーションでは、SalesforceのデータをPendoにプルする場合も、PendoのデータをSalesforceにプッシュする場合も、Salesforce APIを使用します。Salesforceと通信する際、Pendoはまず、Pendoに一致するレコードが存在するかどうかにかかわらず、選択したSalesforceフィールドの値を含むすべてのレコードをSalesforceに要求します。
したがって、場合によってはSalesforceのレコード数が多すぎるためにタイムアウトが発生し、同期が失敗することがあります。その場合、[設定(Settings)]>[エラーログ(Error Log)] に「Timeout awaiting response headers」という通知が表示されます。
同期の対象をアクティブなレコードのみに絞ることで、クエリで返されるレコード数を減らすことができます。設定を最適化してタイムアウトエラーの発生率を低くするための方法としては、主に以下の2つがあります。
これらは両方ともSalesforce側のオプションであるため、Salesforce管理者の協力が必要です。どちらも、Pendoがリクエストできるレコード数を実際に更新が必要なレコードのみに限定することで機能します。
以下は、訪問者レベルのデータを同期する場合を例にしていますが、この方法はアカウントレベルのデータにも適用できます。
方法1. 新しい数式フィールドを追加する
Pendoのフィールドと接続するSalesforceのフィールドを、アプリケーションのアクティブユーザーに関するデータのみが入力される数式フィールドに限定できます。これにより、アクティブなSalesforceレコードにクエリを限定し、最初のクエリで返されるレコード数を減らします。
たとえば、Salesforceの連絡先オブジェクトのメールアドレスフィールドには、そのユーザーが顧客か、見込み顧客か、解約したユーザーかに関係なく、連絡先のメールアドレスが入力されています。アクティブな顧客のみを対象としてクエリのサイズを縮小するには、連絡先のステータスを決定する数式を使用するフィールドを、連絡先オブジェクトに作成します。この場合、ユーザーがアクティブであれば、該当する数式フィールドに対象ユーザーのメールアドレスが入力されます。
そのうえで、Salesforceで作成した新しいフィールドを使用して、Pendoの各フィールドにマッピングします。Pendoが最初のクエリを実行すると、その数式フィールドにある値を含むレコードのみがPendoによって更新されます。
注:新しいフィールド名やフィールドラベルが「Pendo」で始まる場合、そのフィールドはマッピングの選択肢に表示されません。フィールド名は他の言葉から始める必要があります。
方法2. カスタムオブジェクトを使用する
アクティブなユーザーやアカウントのレコードのみを持つSalesforceのカスタムオブジェクトを使用することで、最初のクエリで返されるレコード数を減らすことができます。
顧客と見込み客の両方を含むことの多い連絡先のようなSalesforceのデフォルトオブジェクトを使用する代わりに、連絡先オブジェクトと同じフィールドを多く入力し、かつアクティブな顧客のレコードのみが含まれるSalesforceのカスタムオブジェクトを作成します。
- Salesforce管理者に依頼して新しいオブジェクトを作成し、そこにPendoに取り込みたいフィールドを追加します。
- Pendoの[データマッピング]ページで、新しく作成したカスタムオブジェクトが対象になるよう、Salesforceとのインテグレーション設定を変更します。
Salesforceからのプル
このセクションでは、「プル」データ同期を設定する際に発生し得る問題について説明します。このセクションで取り上げる問題は以下のとおりです。
データマッピング用のフィールドが見つからない
Salesforceからの「プル」は、[設定]>[データマッピング]で設定します。Salesforceのデータを訪問者またはアカウントのメタデータとしてPendoに取り込むには、PendoにインポートするSalesforceフィールドを選択する必要があります。この選択は、訪問者とアカウントのそれぞれに対して行います。必要なSalesforceフィールドが見つからない場合は、Salesforceフィールドについて以下の点を確認してください。
- 「Pendo」で始まるフィールドですか?「Pendo」で始まるSalesforceフィールドをSalesforceの「プル」に使用することはできません。別のフィールドを選択するか、Salesforce管理者に依頼し、「Pendo」から始まらないAPIフィールド名に変更してください。
- Pendoに接続したSalesforceオブジェクトに属するフィールドですか?これを確認するには、[データマッピング]ページの下部にある青色の[Salesforceインテグレーション]ボックスより、[マッピングを設定(Setup Mapping)]を選択します。
- そのSalesforceフィールドのデータ型はサポートされていますか?Salesforceとのインテグレーションでサポートされているデータ型の詳細ついては、PendoとSalesforceのインテグレーションを設定するを参照してください。
Salesforceのメタデータが欠落している
Pendoの一部のレコードでSalesforceのメタデータが欠落している場合は、以下を確認してください。
- 欠落しているメタデータフィールドは、[設定]>[データマッピング]の[メタデータ(Metadata)]テーブルにSalesforceを[グループ(Group)]値として表示していますか?表示されていない場合は、「プル」データ同期を設定するの手順を確認してください。
- Pendoでメタデータが欠落している場所はどこですか?メタデータが特定の訪問者またはアカウントのレコードに表示され、レポートでのみ欠落している場合は、1 時間後に再確認してください。メタデータは同期後すぐに訪問者とアカウントのレコードに表示されますが、Pendoのレポートへの反映には1時間程度かかる場合があります。
- エラーはありますか?[設定]>[エラーログ]に移動し、最近のエラーを確認してください。
- 重複レコードはありますか?[設定]>[データマッピング]に移動し、青色の[Salesforceインテグレーション]ボックスで[最終同期]の日時を確認してください。重複がある場合、「警告:重複するエントリが見つかりました(Warning: Duplicate entries found)」のトラブルシューティングガイドを参照してください。
- Salesforce側とPendo側で一意の識別子が完全に一致していますか?これを確認するには、「メッセージ:Pendoで0件が一致しました(Message: 0 matched in Pendo)」のトラブルシューティングガイドを参照してください。
Salesforceへのプッシュ
このセクションでは、 「プッシュ」データ同期を設定する際に発生し得る問題について説明します。このセクションで取り上げる問題は以下のとおりです。
レポートの同期を設定するフィールドが見つからない
Salesforceへの「プッシュ」は、訪問者レポートとアカウントレポートそれぞれで設定します。設定の際には、Salesforceフィールドと同期するための列をレポートに追加する必要があります。
データのプッシュ先となるSalesforceフィールドが見つからない場合は、Salesforceフィールドで以下を確認してください。
- 「Pendo」で始まるフィールドですか?Salesforceへのプッシュに使用できるのは、「Pendo」で始まるSalesforceフィールドのみです。該当しない場合、Salesforce管理者に依頼し、「Pendo」から始まるAPIフィールド名に変更してください。
- Pendoに接続したSalesforceオブジェクトに属するフィールドですか?これを確認するには、[データマッピング]ページの下部にある青色の[Salesforceインテグレーション]ボックスより、[マッピングを設定(Setup Mapping)]を選択します。
- そのSalesforceフィールドのデータ型はサポートされていますか?Pendoの特定のデータ型は、Salesforceの特定のデータ型と一致する必要があります。サポートされているデータ型の詳細については、PendoとSalesforceのインテグレーションを設定するを参照してください。
Pendoの使用状況データが欠落している
Salesforceの一部のレコードでPendoの使用状況データが欠落している場合は、以下を確認してください。
- 同期は成功しましたか?Pendoでこれを確認するには、Salesforceとの同期用に設定した訪問者レポートまたはアカウントレポートを開きます。また、[設定]>[エラーログ]に移動し、最近のエラーを確認することもできます。
- レポートにマッピングされているSalesforceフィールドのデータ型は、プッシュされるPendoデータのデータ型と一致していますか?たとえば、Pendoレポートの列[アプリ滞在時間(Time on App)]は、Pendoでは整数の値であるため、同じ整数のデータ型のSalesforceフィールドにマッピングする必要があります。
- 重複レコードはありますか?[設定]>[データマッピング]に移動し、青色の[Salesforceインテグレーション]ボックスで[最終同期]の日時を確認してください。重複がある場合、「警告:重複するエントリが見つかりました(Warning: Duplicate entries found)」のトラブルシューティングガイドを参照してください。
- Salesforce側とPendo側で一意の識別子が完全に一致していますか?これを確認するには、「メッセージ:Pendoで0件が一致しました(Message: 0 matched in Pendo)」のトラブルシューティングガイドを参照してください。
訪問者またはアカウントレポートに空白の行がある
訪問者レポートおよびアカウントレポートには、セグメントおよび日付範囲条件を満たす訪問者またはアカウントのデータ行のみが表示されます。
Salesforceと正しく同期されたレポートを表示すると、値がゼロ(0)となる行がレポートに含まれる場合があります。データのない訪問者やアカウントもSalesforceオブジェクトと1対1でマッピングする必要があるため、このような空白の行もSalesforceへのプッシュには必要になります。Salesforceに送信される空白の行の値が、すでにSalesforceに送信・保存されているデータを上書きすることはありません。
たとえば、前日に特定のページを読み込んだ訪問者をセグメント化するSalesforceへのプッシュを含む訪問者レポートがあるとします。レポートには、前日にそのページを閲覧した訪問者が表示されます。同じ訪問者が翌日にそのページにアクセスしていない場合、レポートには、その訪問者のデータは表示されません。
Salesforceとのインテグレーションを実行するには、それまでレポートに表示されていた訪問者のデータをレポート上に保持する必要があります。ただし、空の値はSalesforceにプッシュされません。上記の例で訪問者によって作成された空白の行を削除する唯一の方法は、同じパラメータ(セグメント、日付範囲、レポート列)で新しいレポートを作成することです。
まだお困りですか?
さらにサポートが必要な場合は、テクニカルサポートチームにPendoに関する問い合わせをするに記載されているサポートチケットの送信手順に従ってください。