コンテキスト変数とシステム変数について理解する
コンテキスト変数とシステム変数を使用して、ボットの会話中に重要な情報にアクセスします。コンテキスト変数によって、チャネルに関係なくボットで顧客情報を収集できます。システム変数には、会話に関するバックエンド情報が保存されます。
必要なエディション
| サポートされているエディションを表示する。 |
コンテキスト変数
コンテキスト変数は、Salesforce オブジェクトと、顧客がボットとやりとりするために使用するチャネルとの間の動的な対応付けを作成します。システム管理者がチャネルに関係なく取引先責任者を検索して、関連オブジェクトにアクセスできる事前作成済みのコンテキスト変数が用意されています。チャットと組み合わせると、事前チャットフォームのデータを使用して、迅速なルックアップを促進できます。
たとえば、ボットの会話でチャットを使用している場合、取引先責任者 ID は LiveChatTranscript オブジェクトから読み取られます。会話でメッセージングを使用している場合、取引先責任者 ID は MessagingSession オブジェクトに関連付けられた MessagingEndUser オブジェクトから読み取られます。
ボットは Salesforce の複数のオブジェクトを参照して、顧客が誰かを判断できます。取引先責任者 ID が存在する場合、フローまたは Apex で取引先責任者 ID コンテキスト変数を使用できます。この方法では、取引先責任者の名、姓、およびその他の項目が出力されます。
コンテキスト変数は参照のみです。
Salesforce には、次の事前作成済みコンテキスト変数が用意されています。
- ルーティング可能 ID: 事前チャットフォームを使用している場合、ルーティング可能 ID を使用して現在のボットセッションの LiveChatTranscript レコードにアクセスします。そこから、取引先責任者 ID とリード ID の項目を検索できます。
- チャットキー: チャットトランスクリプトのセッション ID。チャットキーを使用して、注文またはケースを参照したり、チャットトランスクリプトレコードで作成されたカスタム項目にアクセスしたり、情報を Apex またはフローに渡したりします。
- 取引先責任者 ID: 取引先責任者 ID を使用して、チャット中の顧客が既知の取引先責任者であることを確認します。
- メッセージングでは、サービス担当者が以前にメッセージングユーザーと取引先責任者をリンクしている場合、ボットビルダーの ContactId コンテキスト変数が入力されます。この変数は、MessagingEndUser.ContactId 項目に関連付けられます。リンクは、サービス担当者がリンク通知を受信したとき、またはチャネルオブジェクトリンクを介して作成されます。ContactId 変数は、チャット中の顧客が初めてサービス担当者に連絡したとき、またはボットにのみ接触したメッセージングユーザーが戻ってきたときに null になります。
- エンドユーザー ID:ボットビルダーで、[エンドユーザー ID] を使用して、ボットとチャットしている顧客に関する情報を検索します。Apex またはフローで、[エンドユーザー ID] を使用して顧客の取引先責任者 ID を検索します。
用意されているコンテキスト変数は次のチャネルオブジェクトに対応付けられます。
| 表示ラベル | API 参照名 | データ型 | チャットチャネル項目への対応付け | チャットオムニチャネル項目への対応付け | メッセージチャネル項目のへ対応付け |
|---|---|---|---|---|---|
| チャットキー | ChatKey | Text | LiveChatTranscript.ChatKey | LiveChatTranscript.ChatKey | 該当なし |
| 取引先責任者 ID | ContactId | ID | LiveChatTranscript.ContactId | LiveChatTranscript.ContactId | MessagingEndUser.ContactId |
| エンドユーザー ID | EndUserId | ID | 該当なし | LiveChatTranscript.LiveChatVisitorId | MessagingSession.MessagingEndUserId |
| ルーティング可能 ID | RoutableId | ID | 該当なし | LiveChatTranscript.Id | MessagingSession.Id |
コンテキスト変数は、変数名の前の [Context] タグで識別されます。コンテキスト変数は、ダイアログアクションの入力として使用できます。
カスタムコンテキスト変数
カスタムコンテキスト変数は、ボットが会話中に学習した情報を使用するのに役立ちます。ユーザーは、カスタムコンテキスト変数を事前チャットフォームのカスタム項目に対応付けて会話をカスタマイズしたり、受信メッセージの電話番号を使用して取引先責任者を検索したりできます。
カスタムコンテキスト変数は、複数のチャネルおよびオブジェクトにリンクできます。チャットチャネルは LiveChatTranscript オブジェクトに対応付けることができ、メッセージングチャネルは MessagingSession または MessagingUser オブジェクトから対応付けることができます。
カスタムコンテキスト変数を作成するには、「カスタムコンテキスト変数の作成」を参照してください。
システム変数
Salesforce では、次のシステム変数が提供されます。
- 参照元ボット ID: ボットからボットへの転送で、この項目には転送を開始したボットの ID が表示されます。
- Last Customer Input (前回の顧客の入力): 顧客が最後に入力したテキスト文字列。この項目は、顧客がテキストを入力した場合にのみ入力され、顧客が静的選択肢または動的選択肢の応答を選択した場合には入力されません。前回の顧客の入力を取得するには、ダイアログアクションで [前回の顧客の入力] システム変数を使用します。次に、それを Apex に渡して、センチメント分析などの追加処理を行うことができます。
![ダイアログアクションの [前回の顧客の入力] システム変数の例](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support_intelligence-262-0-0-production-jajp/0dc6044b-4cfe-47f1-b021-979d7d1c5626/support_intelligence/images/bots/bots_service_system_variable1.png)
ダイアログルール条件で [前回の顧客の入力] システム変数を使用することもできます。

差し込み項目のコンテキスト変数とシステム変数
他の Einstein ボットの変数同様、差し込み構文に従って、コンテキスト変数とシステム変数をボットメッセージで使用できます。
- カスタム項目を呼び出すには、[項目名] を使用して末尾に
__cを追加します。たとえば、{!CustomField__c}です。 - 特定のレコードを呼び出すには、
{!Record.Field}を使用します。 - リスト変数の項目を呼び出すには、
FieldName[X]を使用し、X でリスト内の項目の場所を参照します。Einstein ボットはリスト変数を含むゼロベースのインデックスを使用するため、リストの最初の項目はFieldName[0]です。
{!$System.LastCustomerInput}
{!$Context.ContactId}
{!VariableName}
- カスタムコンテキスト変数の作成
取引先責任者のコンテキスト変数は含まれていますが、ボット実装で使用する任意の種別のコンテキスト変数を作成できます。商品名、店舗の所在地、紹介 URL、顧客のショッピングカート内の品目でコンテキスト変数を使用します。

