Loading

組み込みサービス事前チャット API を使用したデフォルトの動作の上書き、またはカスタムエンティティの作成

公開日: Oct 13, 2022
説明
組み込みサービス - 非標準の事前チャットの詳細を渡す

デフォルトの組み込みサービス事前チャットの上書き動作:

デフォルトでは、Chasitor が事前チャットに書き込むと、組み込みサービスは Live エージェントから事前チャット API を呼び出し、エンティティの検索や作成を行いますが、デフォルトの動作を上書きする必要がある場合があります。これは、embedded_svc.settings.extraPrechatInfo と embedded_svc.settings.extraPrechatFormDetails をコードスニペットに追加することで実行することができます。
解決策
基本

ウィジェットから LiveAgent に渡される事前チャット情報には、情報 (prechatInfo) とフォームの詳細 (prechatFormDetails) の 2 種類があります。

フォームの詳細 (prechatFormDetails) は、「メール」などの個々の項目を記述します。 それらはラベル ( "Email")、値、transcriptFields の配列 (事前チャット項目の値を継承するトランスクリプトオブジェクト項目の API 名)、および displayToAgent ブール値を持ちます (保留中のチャットにマウスポインタをあてたときに、小さなポップアップが表示される項目の場合)。

情報 (prechatInfo) を使用すると、項目からエンティティへのマッピングが可能になります。
これには、 entityName("Lead")、showOnCreate ブール値 (作成したオブジェクトをエージェントに表示すべきか)、saveToTranscript 文字列 (新しく作成されたオブジェクトを表示するトランスクリプト行に与えるべきラベル)、 エンティティ項目マッピングの配列が含まれます。 'entityFieldMap' には以下のものがあります:
  • fieldName - 「FindOrCreate」を実行する項目の名前。
  • isExactMatch - 「FindOrCreate」は、上記の項目で完全一致を実行する必要があります。
  • doCreate - 「FindOrCreate」が false を返す場合は、この項目を使用して上記のエンティティを作成します。
  • doFind - 作成する前に、この項目に基づいてエンティティを「検索」します。
  • label - prechatFormDetails の対応するラベル。

事前チャット API と項目の詳細については、こちらを参照してください。


事前チャットと extraPrechat のマージ

事前チャット情報と事前チャットフォームの詳細には、設定値 ( "regular" prechatInfo と prechatFormDetails) と、ユーザがスニペットに提供する追加の値 ( "extra" prechatInfo と prechatFormDetails) の 2 つがあります。これらの値は 1 つの配列にマージされ、追加の値が通常の値より優先され、FindOrCreateCommand に送信されます。

重要: 事前チャットと追加の事前チャットに同じ項目がある場合、マージはラベル名に基づいて行われます。 したがって、設定で定義されている項目のデフォルト設定を上書きする場合は、ラベル名が extraPrechatInfo と一致していることを確認する必要があります。

例:

1. 設定からの項目の上書き: これをテストするには、設定でサービスシナリオを選択し、そのスニペットに以下を追加します。これにより、マージが発生し、extraPrechatInfo と extraPrechatFormDetails は、chasitor から渡された名、姓、件名を上書きします。
embedded_svc.settings.extraPrechatFormDetails = [{"label":"First Name","value":"Marc","transcriptFields":[],"displayToAgent":true},{"label":"Last Name","value":"Benioff","transcriptFields":[],"displayToAgent":false},{"label":"Email","value":"benioff@salesforce.com","transcriptFields":[],"displayToAgent":true},{"label":"issue","value":"Sales forecasts","transcriptFields":[],"displayToAgent":true}] ; 

embedded_svc.settings.extraPrechatInfo = 
[{"entityName":"Contact","showOnCreate":true,"linkToEntityName":"Case","linkToEntityField":"ContactId","saveToTranscript":"Contact","entityFieldMaps":[{"isExactMatch":true,"fieldName":"FirstName","doCreate":true,"doFind":true,"label":"First Name"},{"isExactMatch":true,"fieldName":"LastName","doCreate":true,"doFind":true,"label":"Last Name"},{"isExactMatch":true,"fieldName":"Email","doCreate":true,"doFind":true,"label":"Email"}]},{"entityName":"Case","showOnCreate":true, "saveToTranscript":"Case", "entityFieldMaps":[{"isExactMatch":false,"fieldName":"Subject","doCreate":true,"doFind":false,"label":"issue"},{"isExactMatch":false,"fieldName":"Status","doCreate":true,"doFind":false,"label":"Status"},{"isExactMatch":false,"fieldName":"Origin","doCreate":true,"doFind":false,"label":"Origin"}]}]


2. 新しいエンティティ取引先を持つ extraPrechatInfo を追加します: 貴社のビジネスで、組み込みサービスが公開する標準的なシナリオでは利用できないエンティティが必要な場合など、たとえば、チャットが来たときに extraPrechatInfo のエンティティを定義することにより、取引先を作成できるようにする必要があります。

embedded_svc.settings.extraPrechatInfo = [{"entityName":"Contact","showOnCreate":true,"linkToEntityName":"Case","linkToEntityField":"ContactId","saveToTranscript":"Contact","entityFieldMaps":[{"isExactMatch":true,"fieldName":"FirstName","doCreate":true,"doFind":true,"label":"firstName"},{"isExactMatch":true,"fieldName":"LastName","doCreate":true,"doFind":true,"label":"LastName"},{"isExactMatch":true,"fieldName":"Email","doCreate":true,"doFind":true,"label":"Email"}]},{"entityName":"Case","showOnCreate":true,"entityFieldMaps":[{"isExactMatch":false,"fieldName":"Subject","doCreate":true,"doFind":false,"label":"issue"},{"isExactMatch":false,"fieldName":"Status","doCreate":true,"doFind":false,"label":"Status"},{"isExactMatch":false,"fieldName":"Origin","doCreate":true,"doFind":false,"label":"Origin"}]},
{"entityName":"Account","showOnCreate":true,"entityFieldMaps":[{"isExactMatch":true,"fieldName":"Name","doCreate":true,"doFind":true,"label":"LastName"}]}];

embedded_svc.settings.extraPrechatFormDetails = [{"label":"firstName","value":"Usain","transcriptFields":[],"displayToAgent":true},{"label":"LastName","value":"Bolt","transcriptFields":[],"displayToAgent":false},{"label":"Email","value":"bolt@gmail.com","transcriptFields":[],"displayToAgent":true},{"label":"issue","value":"Laptop broken","transcriptFields":[],"displayToAgent":true}] ;
 

3. チャットごとに取引先責任者を作成できないようにします: チャットごとに取引先責任者を検索したり作成しない場合は、この extraPrechatInfo を追加するだけで取引先責任者の作成を無効にできます。

embedded_svc.settings.extraPrechatInfo = [{"entityFieldMaps":[{"doCreate":false,"doFind":true,"fieldName":"LastName","isExactMatch":true,"label":"Last Name"},{"doCreate":false,"doFind":true,"fieldName":"FirstName","isExactMatch":true,"label":"First Name"}, {"doCreate":false,"doFind":true,"fieldName":"Email","isExactMatch":true,"label":"Email"}],"entityName":"Contact","saveToTranscript":"Contact","showOnCreate":true}];
ナレッジ記事番号

000383795

 
読み込み中
Salesforce Help | Article