この記事では、Pendo ToolkitのTrackEvent Apexクラスを使用して、SalesforceからPendoにサーバーサイドのトラックイベントを送信する方法を説明します。これらのイベントは、ユーザーの行動を監視し、利用率を測定し、Pendo Web SDKで自動的にキャプチャされないアクションを追跡するのに役立ちます。
この機能はSalesforce管理者および開発者が利用可能で、以下からイベントを送信することをサポートします。
- Apex(同期または非同期)
- Lightning Webコンポーネント (LWC)
- Auraコンポーネント
- Salesforceフロー(Apexアクション経由)
- バッチジョブまたはトリガー
ウェブやモバイルアプリからイベントを追跡する場合は、トラックイベント APIを使用してください。
前提条件
この機能を使用するには、次の点を確認してください。
- Pendo Toolkit for Salesforceがインストールされ、設定されていること。手順については、「Salesforce向けPendoツールキットを設定する」を参照してください。
- SalesforceでPendo Toolkit管理者の権限セットが割り当てられていること。
- Salesforceの権限:アプリケーションのカスタマイズと、フロー、Apex、またはLWCを編集して有効化する権限があります。
- Pendoサブスクリプションからトラックイベントの共有秘密(API key)にアクセスできます。
ステップ1:SalesforceでPendoトラックイベントAPIを設定する
- Pendoで、[設定]>[サブスクリプション設定]に移動します。
- [アプリケーション]タブを選択し、アプリを選択します。
- トラックイベントの共有秘密の横にある[表示]を選択し、キーをコピーします。
- Salesforceでアプリランチャーを開き、Pendoアプリを検索してください。
- Pendoアプリで、[Pendoトラックイベント設定]タブを開きます。
- APIキーを貼り付け、環境(
io、eu、us1、jpn)を選択し、[保存]を選択します。
ステップ2 : フロー、Apex、またはコンポーネントを使用してイベントを送信する
設定が完了したら、Salesforceの以下のいずれかの方法でイベントを送信できます。
すべての方法に対して以下のベストプラクティスをお勧めします。
- イベントデータに個人を特定できる情報(PII)を含めないでください。
- 送信するイベントデータがデータセキュリティポリシーに準拠していることを確認してください。
- 本番イベントを送信する前に、サンドボックスでセットアップをテストしてください。
オプション1:Salesforce Flowを使用する
- Flow Builderを開きます。
-
Action要素を追加し、
trackEventを検索します。 - TrackEventから[Apexアクション]を選択します。
- 入力パラメーターの値を指定します。
-
event(文字列)。ユーザーアクションの名前(例:
LoggedIn)。 - visitorId(文字列)。ユーザーに関連付けられた一意のID。
- accountId(文字列、任意)。ユーザーに紐づけられているアカウント。
- properties(コレクション、任意)。カスタムキーと値のデータ。
-
context(コレクション、任意)。
ip、userAgent、urlなどのセッションデータ。
-
event(文字列)。ユーザーアクションの名前(例:
ヒント: Pendoトラックイベントサンプルフローを出発点として使用してください。使用事例に合わせて複製してカスタマイズします。
オプション2:Apexでトラックイベントを送信する
TrackEventクラスは、同期または非同期の Apex、トリガー、バッチジョブで使用します。
TrackEvent.EventData event = new TrackEvent.EventData();
event.event = 'Registered';
event.visitorId = 'user-123';
event.accountId = 'acc-001';
event.properties = new Map<String, Object>{
'plan' => 'Pro',
'device' => 'Mobile'
};
event.context = new Map<String, Object>{
'ip' => '76.253.187.23',
'userAgent' => 'Mozilla/5.0'
};
TrackEvent.send(new List<TrackEvent.EventData>{ event });オプション3:LWCまたはAuraからAPIを呼び出す
TrackEvent.send()を呼び出します。Lightning WebコンポーネントでJSONシリアル化を使用するメソッド:
import send from '@salesforce/apex/TrackEvent.send';
const eventPayload = JSON.stringify({
event: 'ClickedButton',
visitorId: 'user-123',
accountId: 'acc-001',
properties: { page: 'HomePage' },
context: { ip: '192.168.1.1' }
});
send({ eventDataJson: eventPayload })
.then(result => console.log('Success'))
.catch(error => console.error('Error sending event:', error));