Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

lightningsnapin:prechatAPI を使用する場合、プレチャットフォームから LiveChatTranscript オブジェクトのカスタム項目に値を渡します。

公開日: Oct 13, 2022
説明
全般的に、Snap-in はページにチャット API を読み込みません。チャット要求を送信すると、Salesforce 側でエンティティを検索または作成するための事前チャットフォームの詳細が送信されます。lightningsnapin:prechatAPI は、これらの情報を渡すことに対応していません。また、Locker Service により、グローバルウィンドウオブジェクト (embedded_svc.settings.extraPrechatFormDetails が存在する場所) にアクセスできません。
 
解決策
事前チャットフォームから動的な値をトランスクリプトオブジェクトのカスタム項目に直接保存する場合、次の操作を実行します。
  • トランスクリプトオブジェクトにカスタム項目を作成します (例: PrechatText__c)。
  • 値プロパティを渡さずに、追加の事前チャットフォームの詳細のトランスクリプト項目を渡します。 
embedded_svc.settings.extraPrechatFormDetails = [{"label":"Text", "transcriptFields": ["PrechatText__c"]}];

注意:  この設定はカスタム事前チャットコンポーネントではなく、Snap-in がホストされているコンテナページにあります。
  • チャット要求が送信される前に事前チャットコンポーネントから値を取得し、embedded_svc.settings.extraPrechatFormDetails を更新するには、カスタムイベントを使用して、コンテナページでカスタム LiveChatTranscript 項目の値がわかるようにする必要があります。
  • カスタム事前チャットコンポーネントの [チャットを開始] 関数で、startChat 関数を含む CustomEvent を起動します。(サンプルコードを次に示します)
 
if(cmp.find("prechatAPI").validateFields(fields).valid) {
    var event = new CustomEvent(
        "setCustomField",
        {
            detail: {
                callback: cmp.find("prechatAPI").startChat.bind(this, fields),
                customField: "value"
            }
        }
    );
    // Dispatch the event.
    document.dispatchEvent(event);
} else {
    console.warn("Prechat fields did not pass validation!");
}

コンテナページで CustomEvent のリスナーを追加します。ハンドラーは extraPrechatFormDetails を更新し、startChat 関数を呼び出します。
 
document.addEventListener(
	"setCustomField",
	function(event) {
		embedded_svc.settings.extraPrechatFormDetails[0].value = event.detail.customField;
		// Fire startChat callback.
		event.detail.callback();
	},
	false
);

 
ナレッジ記事番号

000380580

 
読み込み中
Salesforce Help | Article