Pergunta
Quero modificar o comportamento nativo do Web Widget (Classic) usando APIs de JavaScript. Li na Central de Ajuda e encontrei muitas implementações diferentes. Como posso combinar esses diferentes fluxos de trabalho da API do Web Widget (Classic)?
Resposta
O mais importante é saber quando você deseja que as configurações do seu widget sejam aplicadas. Alguns fluxos de trabalho precisam ser executados sempre que um departamento for atualizado, enquanto outros precisam ser executados quando o widget é conectado ou reconectado pela primeira vez. Isso é ilustrado com este exemplo simplificado de configuração do departamento de CRM :
<script id="ze-snippet"
src="https://static.zdassets.com/ekr/snippet.js?key=ACCOUNT_KEY"> </script>
<script>
// first hide the widget on page load
zE('webWidget', 'hide');
// whenever an unread message appears unhide and open the widget
zE('webWidget:on', 'chat:unreadMessages', function(number) {
zE('webWidget', 'show');
zE('webWidget', 'open');
});
// this callback runs whenever chat first connects (or reconnects)
zE('webWidget:on', 'chat:connected', function() {
// put any code you only want run once here
});
// this callback runs whenever a department status changes
zE('webWidget:on', 'chat:departmentStatus', function(dept) {
// only set the widget online for chat if this department was online
if (dept.name === 'CRM' && dept.status === 'online') {
// apply the chat widget settings
zE('webWidget', 'updateSettings', {
webWidget: {
chat: {
departments: {
enabled: [''],
select: 'CRM'
},
suppress: false
}
}
});
} else if (dept.name === 'CRM' && dept.status !== 'online') {
// or suppress chat (optional: apply contact form settings here)
zE('webWidget', 'updateSettings', {
webWidget: {
chat: {
suppress: true
}
}
});
}
});
</script>
Há alguns itens no script acima que vale a pena discutir. Primeiramente, as primeiras etapas de ocultar o widget e exibi-lo quando uma mensagem não lida é recebida podem ser ociosas completamente, sem alterar o restante da funcionalidade do script. Como estão sendo usados assim que o widget é carregado, eles foram colocados na parte superior do script. Isso não é estritamente necessário.
Além disso, é importante observar que, enquanto alguns fluxos de trabalho personalizados colocam um bloco da API updateSettings em um retorno de chamada chat:connected , você também pode colocar isso em chat:departmentStatus, e ela também será aplicada quando o widget conectar (ou reconectar). após uma sessão expirada). Por isso, use o auxiliar chat:connected
API especificamente para comandos que você deseja disparar apenas uma vez e a chat:departmentStatus
API para comandos que você deseja disparar sempre que o departamento especificado for alterado após o carregamento da página.
Para obter mais informações sobre os diferentes fluxos de trabalho da API do Web Widget (clássico) , consulte estes artigos:
- Posso configurar o Web Widget (Classic) para apresentar o Chat na minha página da web apenas quando um departamento específico estiver online?
- Posso reaplicar o departamento após um visitante expirado do chat se reconectar?
- Como posso me certificar de que o formulário pré-chat é apresentado ao visitante se ele exceder o tempo limite, mas se reconectar?
Aviso sobre a tradução: este artigo foi traduzido por um software de tradução automática para oferecer a você uma compreensão básica do conteúdo. Medidas razoáveis foram tomadas para fornecer uma tradução precisa, no entanto, a Zendesk não garante a precisão da tradução.
Em caso de dúvidas relacionadas à precisão das informações contidas no artigo traduzido, consulte a versão oficial do artigo em inglês.
0 comentários