質問
訪問者のチャット接続が タイムアウトし たが、ウィジェットが読み込まれたウィンドウまたはタブを閉じず、後で再接続して新しいメッセージを送信した場合、 プリチャットフォーム は自動的に表示されません。訪問者がタイムアウト後に再接続したときにWeb Widgetにプリチャットフォームが常に表示されるようにする方法はありますか?
回答
デフォルトでは、訪問者は再接続時にプリチャットフォームをスキップします。既存の Web Widget(従来版)スクリプトの前に以下のスクリプトを適用して、プリチャットフォームを強制的に表示します。
<script>
// run whenever chat connects (or reconnects)
zE('webWidget:on', 'chat:connected', function() {
// get the current state of the chat session
let isChatting = zE('webWidget:get', 'chat:isChatting');
// check there is not already an active chat session
if (isChatting == false) {
// if not then get the current state of the widget
let widgetState = zE('webWidget:get', 'display');
// check if already in the open 'chat' state, indicating prior timeout
if (widgetState == 'chat') {
// if it is then close the widget, reset and reopen in pre-chat state
zE('webWidget', 'close');
zE('webWidget', 'reset');
zE('webWidget', 'open');
}
}
</script>
ワークフローをテストします。必要に応じて、追加したスクリプトの後に以下のスクリプトを追加して、ウィジェットの設定を適用または再適用します。
<script>
zE('webWidget', 'updateSettings', {
webWidget: {
chat: {
departments: {
select: 'Shopping Cart'
}
}
}
});
});
</script>
この最後のステップでは、updateSettingsAPIを使用して、ウィジェットの設定を適用または再適用します。上記の例では、 Shopping Cart
部門は、ウィジェットの初回接続時または再接続時に適用されます。このワークフローについては、次の関連記事で詳しく説明しています。タイムアウトしたチャット訪問者が再接続した後、部門を再適用できますか?
このソリューションを正しく設定したことを確認してください。接続時にウィジェットの現在の状態を確認します。次に、ウィジェットをいったん閉じてリセットし、再度開いて、再接続する訪問者に常にプリチャットフォームが表示されるようにします。
翻訳に関する免責事項:この記事は、お客様の利便性のために自動翻訳ソフ トウェアによって翻訳されたものです。Zendeskでは、翻訳の正確さを期すために相応の努力を払っておりますが、翻訳の正確性につ いては保証いたしません。
翻訳された記事の内容の正確性に関して疑問が生じた場合は、正式版である英語の記事 を参照してください。