Salesforceの訪問者同期のソースとしてSalesforceレポートを使用すると、どのレコードをPendoに同期し、そのうちどのフィールドを訪問者メタデータにするかをレポートが決定します。これには、取引先責任者の取引先のような関連レコードのフィールドも含まれます。
概要
デフォルトでは、Salesforceインテグレーションは、接続したSalesforceオブジェクト(取引先責任者など)のすべてのレコードから訪問者メタデータを同期します。詳細については、Pendo用にSalesforceインテグレーションを設定する内の「プル」データ同期を設定するを参照してください。
オブジェクトのすべてのレコードではなく、Salesforceレポートをソースとして使用する場合は、Salesforceでレポートを作成し、それをPendoに接続します。同期のたびに、Pendoは次の処理を行います。
- レポートのフィルターを読み取り、同期するレコードを決定します。
- 各レコードに一致する訪問者を更新します。
- 選択したレポートの列を、[取引先名(Account Name)]や[取引先所有者(Account Owner)]のような関連レコードのフィールドも含めて、訪問者メタデータとしてPendoにコピーします。これらのフィールドは訪問者に保存されます。訪問者が属するPendoアカウントが変わることはありません。
このメタデータを使用してセグメントを作成し、ガイドやオーケストレートのメールおよびジャーニーのターゲティングなど、Pendo全体で活用できます。
Pendoは、一致する訪問者が存在しない各レコードについて、訪問者を作成することもできます。これにより、エグゼクティブスポンサーや請求担当者など、アプリにサインインしたことがない人にもアプローチできるようになります。詳細については、Pendoに見つからないレコードの訪問者を作成するを参照してください。
この同期はSalesforceからPendoへのデータの取り込みのみを行い、Salesforce側のレコードを変更することはありません。
レポート同期の仕組み
各レポート行で行われる処理
同期のたびに、Pendoはレポートの定義をSalesforceクエリとして実行し、各行を処理します。
| 行 | Pendoの処理 |
| 既存の訪問者と一致する場合 | その訪問者のSalesforceメタデータを更新します。 |
| 訪問者と一致しない場合 | その行をスキップします。訪問者の作成がオンになっている場合は、代わりに訪問者を作成します。 |
| 一意の識別子が空の場合 | その行をスキップします。 |
| 一意の識別子の値が他の行と重複している場合 | いずれかの行を使用し、残りはスキップします。スキップされた行の一覧は、同期結果からダウンロードできます。 |
行は、設定した一意の識別子(Visitor IDやメールアドレスなどのPendoの訪問者フィールドと、同じ値を保持するレポートの列との組み合わせ)によって訪問者と照合されます。
Pendoがレポートを読み取る仕組み
Pendoは、レポートを実行したときに表示される行ではなく、レポートの定義を読み取ります。レポートの列とフィルターをSalesforceクエリに変換し、同期のたびに、インテグレーションの認証に使用したSalesforceユーザー(接続済みのSalesforceユーザー)としてそのクエリを実行します。そのため、以下の点に注意してください。
- [表示対象(Show Me)]は無視されます。同期には、レポートのフィルターに一致する、接続済みのSalesforceユーザーが参照できるすべてのレコードが含まれます。これは、レポートの[表示対象]設定(「自分の取引先責任者」など)の内容にかかわらず適用されます。同期するレコードを絞り込むには、レポートにフィルターを追加してください。
- レポートの並べ替え順序は無視されます。Pendoは一致するすべての行を同期します。
- 行数制限はサポートされていません。行数制限(Top N)が設定されたレポートは使用できません。
- 編集内容は次回の同期から反映されます。Pendoは同期のたびにレポートを再度読み取り、NEXT 90 DAYSのような相対日付を再計算します。
同期の実行タイミング
Pendoは、サブスクリプションのタイムゾーンで午前0時から午前6時の間に、1日1回同期を行います。いつでも手動で同期を開始することもできます。どの同期も、変更された行だけでなく、レポート全体を読み取ります。
同期後、更新された値は個々の訪問者の詳細ページにすぐに反映されます。訪問者の一覧や合計値の更新には、約15分かかります。
レコードがレポートから外れた場合
この同期によって訪問者が削除されることはありません。レコードがレポートのフィルターに一致しなくなった場合、Pendoはその訪問者の更新を停止しますが、訪問者と最後に同期されたメタデータはPendoに残ります。
このため、絞り込みすぎたレポートでは、訪問者に古い値が残ってしまうことがあります。たとえば、取引先が更新された取引先責任者であっても、古い更新日が保持されたままになります。フィールドを常に最新の状態に保つには、有効な取引先のすべての取引先責任者のように、レポートのフィルターは広めに設定し、より絞り込んだ条件はPendoのセグメント側で適用してください。
前提条件
Salesforceレポートから同期するには、以下が必要です。
- Pendoの管理者アクセス権。Pendoサブスクリプションの管理者である必要があります。
- Salesforceインテグレーション。インテグレーションは[設定(Settings)]>[メタデータ(Metadata)]で認証されている必要があります。詳細については、Pendo用にSalesforceインテグレーションを設定するを参照してください。
- 接続ユーザーのSalesforceアクセス権。インテグレーションの認証に使用するSalesforceユーザーには、[API有効化(API Enabled)]権限、レポートのベースオブジェクトおよびレポート内のすべてのフィールドに対する[参照(Read)]アクセス権、レポートを保存するフォルダへのアクセス権が必要です。このユーザーが参照できないレコードは同期されません。
- 一意の識別子。両方のシステムで同一人物を識別するためのPendoフィールドとSalesforceフィールドを決めます。Salesforceフィールドにはテキストまたは数値を保持させる必要があります。訪問者を作成する予定がある場合は、決定する前に作成された訪問者にVisitor IDが割り当てられる仕組みを参照してください。
注:すでにSalesforceオブジェクトから訪問者を同期している場合、このレポートがソースとしてそのオブジェクトに代わります。現在の一意の識別子はそのまま使用し、そのSalesforceフィールドをレポートの列として含めてください。すでにPendoにマッピングしているフィールドは、すべてレポートの列にする必要があります。レポートに含まれていないレコードの訪問者は、更新が停止します。
レポート同期を設定する
ステップ1:Salesforceでレポートを作成する
通常、この手順はSalesforce管理者が行います。
- Salesforceで[レポート(Reports)]に移動し、[新規レポート(New Report)]を選択します。
- レポートタイプとして、[取引先責任者と取引先(Contacts & Accounts)]、または対象オブジェクトが取引先責任者のみのカスタムレポートタイプを選択し、[レポートを開始(Start Report)]を選択します。その他のサポート対象のレポートタイプについては、レポート要件を参照してください。
- レポート形式は[表形式(Tabular)]または[サマリー(Summary)]のままにしてください。[マトリックス(Matrix)]および[結合(Joined)]形式のレポートはサポートされていません。
- 次の列を追加します。
- 一意の識別子として選択したフィールド([メール(Email)]など)。これはレコード自体のフィールドである必要があり、関連レコードのフィールドは使用できません。
- Pendoに取り込みたいその他のすべてのフィールド([取引先名]のような関連フィールドを含む)。Pendoはレポートの列からのみ値を読み取ります。
- すでにSalesforceオブジェクトから訪問者を同期している場合は、すでにPendoにマッピングしているすべてのフィールド。
- 同期したいレコードのフィルターを追加します。
- レポートの標準の日付フィルター([作成日(Created Date)]など)を確認してください。これは同期にも適用されるため、必要なレコードが除外されないようにしてください。
- 接続済みのSalesforceユーザーがアクセスできるフォルダにレポートを保存します。
- レポートのURLからレポートIDをコピーします。これは00Oで始まる15桁または18桁の値です(例:00O5j000004xL9tEAE)。
ステップ2:Pendoでレポートを接続する
- Pendoで[設定]>[メタデータ]に移動し、[訪問者レベルデータ(Visitor-level data)]タブを選択します。
- [Salesforce訪問者インテグレーション(Salesforce Visitor Integration)]セクションで、[マッピングを設定(Set up Mapping)]を選択します。
- [ソース(Source)]で、[Salesforceレポート(Salesforce report)]を選択します。
- [Salesforceレポート ID(Salesforce report ID)]フィールドに、レポートIDを入力します。
- Pendoに表示されるレポートの詳細(レポート名、行の取得元のオブジェクト、フィルターの数)を確認します。Pendoがレポートを使用できない場合は、理由と変更が必要なフィルターまたは列を示すメッセージが表示されます。Salesforceでレポートを修正してから、IDを再度入力してください。
- [Pendoフィールド(Pendo Field)]には、照合対象とする訪問者フィールド(Visitor IDやメールアドレスなど)を選択します。すでにSalesforceオブジェクトから訪問者を同期している場合は、現在の選択を維持してください。
- [Salesforceフィールド(Salesforce Field)]には、同じ値を保持するレポートの列を選択します。一覧には、レコード自体から取得されるレポートの列が表示されます。
- [保存(Save)]を選択します。
- [Pendoに追加するフィールドを選択(Pick fields to add to Pendo)]で、訪問者メタデータとして使用したいレポートの列を選択します。
- [完了(Done)]を選択します。
ステップ3:同期を実行し、結果を確認する
- [訪問者レベルデータ]タブの[Salesforce訪問者インテグレーション]セクションで、[今すぐ同期(Sync now)]を選択するか、夜間の同期を待ちます。
- 同期が完了したら、同じセクションで同期結果を確認します。ここには、ソースとして使用されたレポート、Pendoが検出したSalesforceレコードの数、既存の訪問者と一致したレコードの数が表示されます。
- Pendoで一致した訪問者のいずれかを開き、マッピングされたSalesforceフィールドに想定どおりの値が入っていることを確認します。
Pendoに見つからないレコードの訪問者を作成する
デフォルトでは、この同期はPendoにすでに存在する訪問者のみを更新します。訪問者の作成をオンにすると、Pendoはソース内の、一致する訪問者が存在しない各レコードについても訪問者を作成します。これにより、アプリにサインインしたことがない人も、セグメント、オーケストレートのメール、ジャーニーに含めることができるようになります。訪問者の作成は、レポートまたはオブジェクトのいずれをソースとする場合にも使用できます。
注:訪問者の作成はリクエストに応じて利用可能です。サブスクリプションで有効にするには、Pendoサポートにお問い合わせください。
重要:この同期によって作成された訪問者は、訪問者の作成をオフにした場合やレコードがレポートから外れた場合も含め、削除されることはありません。訪問者の作成をオンにする前に、レポートのフィルターを確認してください。
作成された訪問者にVisitor IDが割り当てられる仕組み
一意の識別子として選択したPendoフィールドによって、Pendoが作成する訪問者に割り当てるVisitor IDが決まります。
- [訪問者ID(Visitor ID)]。 作成された訪問者の訪問者IDは、レポート列の値になります。アプリが訪問者IDとして送信する値と、そのSalesforceフィールドの値が完全に一致する場合にのみ、これを選択します。その後、本人がアプリにサインインすると、そのアクティビティは同じ訪問者に記録されます。
- メールアドレスなど、その他の訪問者フィールド。 作成された訪問者の訪問者IDはそのレコードのSalesforce IDとなり、レポート列の値は選択した訪問者フィールドに保存されます。この訪問者はプレースホルダーです。アプリが同じ値を持つ訪問者を特定すると、Pendoは次回の同期後にそのプレースホルダーを対象の訪問者にマージしてプレースホルダーを削除するため、1人の人物が2つの訪問者として重複することはありません。
どちらを使用すればよいかわからない場合は、メールアドレスを選択してください。アプリが各訪問者のメールアドレスをPendoに送信しており、レポート内の各レコードがそれぞれ固有のメールアドレスを持っている場合に、この方法が機能します。
作成された訪問者に含まれる情報
作成された訪問者には、Pendoにマッピングしたレポート列が、Salesforceのメタデータとして含まれます。関連レコードの列は、結合された名前になります。たとえば、レポート列の[取引先名](Account.Name)はaccount_nameに、[取引先所有者](Account.Owner.Name)はaccount_owner_nameになります。
作成された訪問者には、本人がアプリにサインインするまでアプリのアクティビティがありません。Pendoが作成するのは訪問者のみです。Pendoアカウントは作成されません。
訪問者作成を有効にする
Pendoサポートがサブスクリプションに対して訪問者作成を有効にしたら、以下の手順を行います。
- Pendoで[設定]>[メタデータ]に移動し、[訪問者レベルのデータ]タブを選択します。
- [Salesforce 訪問者インテグレーション]セクションで、[マッピングを設定]を選択します。
- [Pendoに見つからないSalesforceの取引先責任者に対してPendo訪問者を作成(Create Pendo visitors for Salesforce Contacts not found in Pendo)]を選択します。
- [保存]を選択します。
- [Pendoに追加するフィールドを選択]で、セグメントやメールに必要なフィールドが選択されていることを確認します。メールアドレスで照合しなかった場合は、[メール]を含めてください。
- [完了]を選択します。
次回の同期後、同期結果にはPendoが作成した訪問者の数も表示されます。例:「Salesforceレコードが10件見つかりました。Pendoでの一致は0件、作成は0件です。」
オーケストレートで作成済みの訪問者にアプローチする
- マッピングしたSalesforceフィールド(取引先のリスクスコアや更新日など)に基づくルールでセグメントを作成します。
- オーケストレートのメールまたはジャーニーで、そのセグメントを選択します。
- メールまたはジャーニーのセグメント設定で、[アクティビティのない最近作成された訪問者を含める(Include recently created visitors without activity)]を選択します。選択しない場合、アプリのアクティビティがない訪問者にはメールが送信されません。
- メールの[受信者メタデータ(Recipient metadata)]には、作成された訪問者が値を持つフィールド(照合に使用した訪問者のメールフィールド、またはマッピングしたSalesforceのメールフィールド)を設定します。
Salesforceから作成された訪問者は、CSVアップロードやAPIで作成された訪問者と同じメールルールに従います。作成された訪問者がアプリに一度もサインインしない場合、その訪問者はPendoによる作成から12か月間はメール送信の対象になります。それ以降は、アプリのアクティビティが発生するまでオーケストレートからのメール送信は停止します。ルールの詳細については、メールの作成と送信およびジャーニーの作成とカスタマイズを参照してください。
例
Salesforceの取引先には、更新日フィールドとリスクスコアフィールドがあるとします。今後90日以内に更新を迎えるリスクの高い取引先の、ディレクターやVPにメールを送信したいとします。これには、アプリに一度もサインインしたことがない人も含まれます。
- Salesforceで、メール送信の対象となりそうな取引先責任者の[取引先責任者と取引先(Contacts & Accounts)]レポートを作成します。たとえば、役職に「Director」または「VP」を含む有効な取引先の取引先責任者などです。
- 一意の識別子(メールなど)の列と、Pendoに取り込みたい取引先フィールド(取引先名、リスクスコア、更新日など)の列を追加します。
- レポートをPendoに接続して訪問者作成を有効にし、リスクスコアが「High」で更新日が今後90日以内であるセグメントを作成します。
次回の同期後、レポート内の各取引先責任者には、それらの取引先フィールドを持つPendo訪問者が作成されます。レポートの範囲を広く保つことで、リスクスコアと更新日は常に最新の状態を維持し、どの訪問者が各メールを受信するかはセグメントによって決まります。
レポートの要件
レポートの形式とタイプ
| 対応 | 非対応 | |
| 形式 | タブ形式。サマリー形式はタブ形式のレポートと同様に同期されます。行のグループ化は無視され、[詳細を表示(Show Details)]がオフになっていてもすべての行が含まれます。 | マトリックス、結合 |
| レポートタイプ | [取引先責任者と取引先]。オブジェクトが取引先責任者のみのカスタムレポートタイプも使用できます。インテグレーションで訪問者にリードまたはカスタムオブジェクトを使用している場合は、[リード(Leads)]タイプ(コンバージョン情報を含むリードを含む)、またはそのオブジェクトのみを使用するカスタムタイプを使用します。これらはいずれもカスタムルックアップで拡張できます。[取引先責任者と取引先]では、SalesforceとPendoの両方で、取引先を持たない取引先責任者は除外されます。 | 各行を関連リストのレコードと組み合わせるタイプ:「with」タイプ(取引先責任者と資産、商談と取引先責任者の役割など)、履歴タイプ、活動タイプです。2つ目のオブジェクトを行として結合するカスタムタイプも非対応です。 |
| 関連フィールド | レコードのルックアップ(標準またはカスタム)を通じて取得できるフィールド:取引先責任者に関連する取引先(取引先名やその他の取引先フィールド)、取引先の所有者(取引先所有者)、および取引先責任者の所有者の役割(所有者の役割)。 | 関連リスト内のレコードのフィールド(取引先責任者のケース、キャンペーンメンバーシップ、活動など)。取引先責任者は複数のレコードを持つことがあるため、Pendoでは1つの列として読み取ることができません。 |
Pendoは、一部の列についてはエラーではなく通知のみでスキップします。対象となるのは、レポート専用の計算項目(換算通貨、行数、経過日数など)、バケットフィールド、行レベルの数式、および接続されたSalesforceユーザーが読み取れないフィールドです。これらをフィルターで使用すると、エラーが発生します。
フィルター
| 対応 | 非対応 | |
| フィルターの種類 | レコードのフィールドおよびルックアップを通じて取得できるフィールド(取引先フィールドなど)に対するフィールドフィルター。カスタムフィルターロジック(AND、OR、NOT、および括弧)。レポートの標準日付フィルター(例:「作成日:過去7日間」)。「当会計年度と前会計年度」のような組み合わせを含む、あらゆる期間に対応しています。 | クロスフィルター(関連レコードの「あり」または「なし」)。フィールド間フィルター:代わりに数式フィールドを使用してください。 |
| 演算子 | 次と等しい、次と等しくない、次より小さい、次より大きい、次以下、次以上、次を含む、次を含まない、次で始まる、含む、除外する | テキスト型ではないフィールドに対するテキスト演算子 |
| フィールド | Salesforceでクエリ可能な任意のフィールド | 長文テキストエリア、リッチテキスト、暗号化フィールド。レポートではこれらに対してフィルターを設定できますが、Salesforceのクエリでは処理できないため、該当フィールド名を示すエラーが発生します。ただし、これらのフィールドを列として使用することは可能です。 |
Pendoによるフィルター値の読み取り方法:
- 選択リスト(複数選択可能な選択リストを含む)は、ラベルで照合されます。フィルターで使用している選択リストの値が後でそのフィールドから削除された場合、同期はその値を示すメッセージとともに停止します。同期を再開するには、フィルターからその値を削除してください。レポート自体は実行され続け、その値には一致しないだけなので、Salesforceはこれについて警告しません。
- 数値と通貨は単なる数値として読み取られます。複数通貨を使用するSalesforce組織では、Pendoは通貨コードを保持するため、フィルター値「USD 1」は米ドルで比較されます。
- 日付には、固定の日付、日時、またはレポートビルダーが提供する相対日付(THIS MONTH、NEXT 90 DAYS、3 DAYS AGO、THIS FISCAL QUARTERなど)を使用できます。これらは、接続されたSalesforceユーザーのタイムゾーンで評価されます。
- 標準日付フィルターは、レポートと同じ日数を対象とします。日時フィールドの場合、現在のところ日の境界はUTCに従います。詳細については、既知の制限事項を参照してください。
トラブルシューティング
| 表示される内容 | 対処方法 |
| 15桁または18桁のSalesforceレポートIDを入力してください。 | SalesforceのレポートURLからIDをコピーします。レポートIDは00Oで始まります。 |
| 行数の制限、マトリックスレポートまたは結合レポート、クロスフィルタ、フィールド間フィルタ、またはサポートされていないフィールドに関するメッセージ | レポートの要件の説明に従ってレポートを変更し、保存してから、レポートIDを再度入力してください。 |
| Pendoがレポートを見つけられない、または開けない | レポートが、接続済みのSalesforceユーザーがアクセスできるフォルダに保存されていることを確認してください。 |
| このフィールドはSalesforceレポートに存在しなくなりました。別のフィールドを選択してください。 | 照合に使用していた列がレポートから削除されました。Salesforceで列を復元するか、別のフィールドを選択してください。 |
| マッピングされた1つ以上のフィールドがSalesforceレポートに存在しなくなりました。続行するには、それらを削除するか置き換えてください。 | Pendoにマッピングした列がレポートから削除されました。Salesforceで列を復元するか、マッピングを削除または置き換えてください。 |
| Pendoは、[field name]に値がないレポートの行を同期しません | 一意の識別子に値がない行があります。Salesforceでそのフィールドに値を入力するか、空の値を除外するフィルタを追加してください。 |
| 重複するエントリが見つかりました。 | [リストを表示(View list)]を選択すると、他のレコードと一意の識別子の値が重複しているためにPendoがスキップしたレコードの一覧をダウンロードできます。Salesforceでデータを修正するか、レポートにフィルタを追加してください。 |
| 同期には、レポートに表示されないレコードも含まれる | レポートの[表示対象]設定は表示内容を制限しますが、Pendoは接続済みのSalesforceユーザーが閲覧できるすべてのレコードを同期します。同期するレコードを制限するには、[取引先責任者の所有者(Contact Owner)]フィルタなど、レポートにフィルタを追加してください。 |
| Pendoが作成した訪問者の数がレポートの行数より少ない | 既存の訪問者と一致する行は、新規作成ではなく更新されるため、まず一致した件数を確認してください。次に、一意の識別子が空または重複している行がないか確認し、接続済みのSalesforceユーザーがレポート内のすべてのレコードを閲覧できることを確認してください。 |
| 作成された訪問者がオーケストレートのメールを受信しない | [アクティビティのない最近作成された訪問者を含める]が選択されていること、メールの[受信者メタデータ]フィールドにその訪問者の値が設定されていること、および訪問者が作成されてから12か月未満であるか、アプリ内でのアクティビティがあることを確認してください。 |
その他の同期に関する問題については、Pendo Salesforceインテグレーションのトラブルシューティングを参照してください。
既知の制限事項
- 訪問者の同期元は1つのみです。 レポートは、訪問者の同期元としてSalesforceオブジェクトに代わるものです。両方を同時に使用することはできません。
- アカウントとの関連付けはありません。 レポートのアカウントフィールドは、訪問者のメタデータとして保存されます。これらのフィールドによって、訪問者がPendoのアカウントに関連付けられることはありません。
- 訪問者のみが作成されます。 訪問者の作成では訪問者のみが作成されます。PendoはSalesforceからアカウントを作成しません。
- 削除は行われません。 同期によって、レポートから除外された訪問者が削除されることはありません。
- 日時の境界はUTC基準です。 日時フィールドでは、標準の日付フィルタはUTCの日単位で計算され、接続済みのSalesforceユーザーのタイムゾーンは使用されません。そのため、範囲の開始時刻または終了時刻の前後数時間以内のレコードは、レポートで除外されていても同期されたり、逆に同期されなかったりすることがあります。