问题
如果访问者在 营业时间 结束前加载 Web Widget(经典),那么在我们所有的专员都已离线一天后,他们可以进行在线交谈。因此,他们将创建一条 错过的交谈 ,而不是离线消息。有什么方法可以确保小组件不会允许为当前已离线的部门请求在线交谈?
答案
免责声明:这篇文章仅用于教学目的。Zendesk 不支持或保证此代码。在评论部分发布您的任何问题,或尝试在线搜索解决方案。
原生小组件行为不会实时更新,因为特定部门在页面加载后会离线。然而,您可使用 API 强制小组件更新。
当相关部门有状态更新时,检查这个新的状态是否为" 离线 ",然后检查访问者是否已经处于活跃的会话中。如果状态为" 离线 ",而访问者不在活跃的会话中,则使用 updateSettings方法禁止在线交谈, 如以下例子所示,检查 CRM 部门是否在线:
<script id="ze-snippet"
src="https://static.zdassets.com/ekr/snippet.js?key=ACCOUNT_KEY"> </script>
<script>
// run whenever the department changes
zE('webWidget:on', 'chat:departmentStatus', function(dept) {
// only continue if the desired department is returning offline
if (dept.name === 'CRM' && dept.status === 'offline') {
// get the current state of the chat session
let isChatting = zE('webWidget:get', 'chat:isChatting');
// only update to suppress chat if the visitor is not currently chatting
if (isChatting == false) {
zE('webWidget', 'updateSettings', {
webWidget: {
chat: {
suppress: true
}
}
});
}
}
});
</script>
翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性
如对翻译准确性有任何疑问,请以文章的英语版本为准。