问题
当访问者的在线交谈连接 超时, 但他们没有关闭加载小组件的窗口或标签,然后重新连接以发送新消息时, 交谈前的表格 不会自动显示给他们。是否可以要求访问者在超时后重新连接时始终在 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 不支持并不保证该代码。如有任何问题,请将其发布在评论部分,或尝试在线搜索解决方案。
翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性
如对翻译准确性有任何疑问,请以文章的英语版本为准。