Pregunta
Quiero modificar el comportamiento nativo del Web Widget (Classic) usando las API de Javascript. Leí el Centro de ayuda y encontré muchas implementaciones distintas. ¿Cómo se combinan estos distintos flujos de trabajo de la API del Web Widget (clásico)?
Respuesta
Lo más importante que debe tener en cuenta es cuándo desea que se aplique la configuración del widget. Algunos flujos de trabajo deben ejecutarse cada vez que se actualiza un departamento, mientras que otros deben ejecutarse cuando el widget se conecta o se vuelve a conectar. Esto se ilustra con este ejemplo simplificado de cómo configurar el 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>
Hay un par de cosas en el script anterior que vale la pena discutir. Primero, los pasos iniciales de ocultar el widget y luego mostrarlo cuando se recibe un mensaje sin leer podrían omitirse por completo sin cambiar el resto de la funcionalidad del script. Dado que se usan apenas se carga el widget, se colocaron en la parte superior del script. Esto no es estrictamente necesario.
A continuación, vale la pena señalar que si bien algunos flujos de trabajo personalizados colocan un bloque de API updateSettings en una devolución de llamada chat: conectado , también se puede poner en un chat: departmentStatus, y también se aplicará cuando el widget se conecte por primera vez (o se vuelva a conectar) después de una sesión agotada). Por esta razón, use la palabra clave chat:connected
API específica para los comandos que se desean activar una sola vez, y la API chat:departmentStatus
API para los comandos que se desean activar en cualquier momento que cambie el departamento especificado después de que se cargue la página.
Si desea más información sobre los distintos flujos de trabajo de la API del Web Widget (clásico) , consulte estos artículos:
- ¿Puedo configurar el Web Widget (clásico) para presentar Chat en mi página web solo cuando un departamento específico está conectado?
- ¿Puedo volver a aplicar el departamento después de que un visitante de chat agotado se vuelve a conectar?
- ¿Cómo puedo asegurarme de que el formulario previo al chat se presente al visitante si se agota el tiempo de espera pero se vuelve a conectar?
Descargo de responsabilidad de la traducción: Este artículo ha sido traducido usando software de traducción automática para proporcionar una idea básica del contenido. Se han realizado esfuerzos razonables para proporcionar una traducción exacta, sin embargo, Zendesk no garantiza la exactitud de la traducción.
Si surge alguna pregunta relacionada con la exactitud de la información incluida en el artículo traducido, consulte la versión en inglés del artículo, que es la versión oficial.
0 comentarios