El SDK para sitios web de Chatwoot te permite enviar información adicional del usuario a Chatwoot.
Si has instalado nuestro código en tu sitio web, el SDK expondrá el objeto window.$chatwoot. Para asegurarte de que el SDK se haya cargado completamente, por favor asegúrate de escuchar el evento chatwoot:ready de la siguiente manera:
window.addEventListener("chatwoot:ready", function () {
// Usa window.$chatwoot aquí
// ...
});
Si deseas escuchar los mensajes en el widget, puedes usar el siguiente evento.
window.addEventListener('chatwoot:on-message', function(e) {
console.log('chatwoot:on-message', e.detail)
})
Configuraciones del SDK
Para ocultar la burbuja, puedes utilizar la configuración mencionada a continuación.
Nota: Si usas esto, también debes activar el widget.
window.chatwootSettings = {
hideMessageBubble: false,
showUnreadMessagesDialog: false, // Deshabilita el cuadro de mensajes no leídos
position: "left", // Esto puede ser left o right
locale: "en", // Idioma a establecer
useBrowserLanguage: false, // Establece el idioma del widget desde el navegador del usuario
type: "standard", // [standard, expanded_bubble]
darkMode: "auto", // [light, auto]
// baseDomain: "yourdomain.com" // configura si deseas rastrear usuarios entre subdominios
};
Usar el idioma del navegador automáticamente en tu widget de chat en vivo
Para mostrar el widget de chat en vivo en la configuración de idioma del navegador del usuario, establece useBrowserLanguage en true en window.chatwootSettings como se indicó arriba.
Nota: Si useBrowserLanguage está en true, se ignorará el locale especificado. Si el idioma del navegador no es compatible con chatwoot, se utilizará el valor indicado en locale. Si ese también falta, el widget utilizará el locale del panel de agente.
Modo Oscuro
El widget de chat en vivo de Chatwoot es compatible con modo oscuro desde la versión v2.4.0. Para habilitar el modo oscuro, sigue los pasos mencionados aquí.
Diseños del widget
Chatwoot admite dos diseños para el widget.
-
Estándar (por defecto)

-
Burbuja expandida

Si utilizas la burbuja expandida, puedes personalizar el texto usado en la burbuja estableciendo el parámetro launcherTitle en chatwootSettings como se muestra a continuación.
window.chatwootSettings = {
type: "expanded_bubble",
launcherTitle: "Chatea con nosotros",
};
Habilitar ventana emergente
Para habilitar la ventana emergente, agrega la siguiente configuración a chatwootSettings. Esta opción está deshabilitada por defecto.
window.chatwootSettings = {
// ...Otras configuraciones
showPopoutButton: true,
}
También puedes abrir la ventana de chat programáticamente con el método `popoutChatWindow()`.
Mensajes personalizados
Personaliza el mensaje de bienvenida y los mensajes de disponibilidad que se muestran en el encabezado del widget y los indicadores de estado del equipo.
window.chatwootSettings = {
// ...Otras configuraciones
welcomeTitle: "¿Necesitas ayuda?", // Encabezado personalizado del widget
welcomeDescription: "Estamos aquí para apoyarte.", // Subtítulo del encabezado
availableMessage: "¡Estamos en línea y listos para chatear!", // Cuando el equipo está disponible
unavailableMessage: "Actualmente estamos fuera de línea." // Cuando el equipo no está disponible
};
Alternar funciones
Habilita o deshabilita funciones opcionales de la interfaz en el widget:
window.chatwootSettings = {
// ...Otras configuraciones
enableFileUpload: true, // Mostrar botón de adjuntar archivos
enableEmojiPicker: true, // Habilitar selector de emojis en la caja de texto
enableEndConversation: true // Permite que el usuario termine la conversación
};
Abrir programáticamente la ventana emergente
Puedes abrir la ventana emergente programáticamente con el método popoutChatWindow().
Para iniciar esto, llama al método como se muestra a continuación.
window.$chatwoot.popoutChatWindow();
Alternar la visibilidad de la burbuja del widget
Si deseas ocultar/mostrar la burbuja del widget de Chatwoot, puedes hacerlo con toggleBubbleVisibility('show/hide')
Ejemplo
window.$chatwoot.toggleBubbleVisibility("show"); // para mostrar la burbuja
window.$chatwoot.toggleBubbleVisibility("hide"); // para ocultar la burbuja
Activar el widget programáticamente
Si deseas abrir la ventana de chat haciendo clic en un enlace de tu sitio web, sigue el método a continuación. En tu acción, llama al SDK de Chatwoot como se describe abajo.
window.$chatwoot.toggle();
// Alterna el widget pasando el estado
window.$chatwoot.toggle("open"); // Para abrir el widget
window.$chatwoot.toggle("close"); // Para cerrar el widget
Establecer el usuario en el widget
window.$chatwoot.setUser("<unique-identifier-key-of-the-user>", {
email: "<email-address-of-the-user@your-domain.com>",
name: "<name-of-the-user>",
avatar_url: "<avatar-url-of-the-user>",
phone_number: "<phone-number-of-the-user>",
});
setUser acepta un identificador que puede ser un user_id en tu base de datos o cualquier parámetro único que represente a un usuario. Puedes pasar email, name, avatar_url, phone_number como parámetros. El soporte para parámetros adicionales está en desarrollo.
Asegúrate de restablecer la sesión cuando el usuario cierre sesión en tu aplicación.
Validación de identidad usando HMAC
Para no permitir la suplantación y mantener la conversación con tus clientes privada, recomendamos configurar la validación de identidad en Chatwoot. La validación de identidad se habilita generando un HMAC (código de autenticación de mensajes basado en hash) basado en el atributo identifier, utilizando SHA256. Junto con el identifier, puedes pasar identifier_hash como se muestra a continuación para asegurarte de que el usuario es el correcto.
window.$chatwoot.setUser(`<unique-identifier-key-of-the-user>`, {
name: "", // Nombre del usuario
avatar_url: "", // URL del avatar
email: "", // Correo electrónico del usuario
identifier_hash: "", // Hash del identificador generado en base a webwidget hmac_token
phone_number: "", // Número de teléfono del usuario
description: "", // descripción sobre el usuario
country_code: "", // Código de país de dos letras
city: "", // Ciudad del usuario
company_name: "", // Nombre de la compañía
social_profiles: {
twitter: "", // Nombre de usuario en Twitter
linkedin: "", // Nombre de usuario en LinkedIn
facebook: "", // Nombre de usuario en Facebook
github: "", // Nombre de usuario en Github
},
});
Para generar el HMAC, lee validación de identidad. Ten en cuenta que implementar autenticación HMAC permitirá que el historial de chat persista entre sesiones.
Establecer atributos personalizados
Para establecer información adicional sobre el cliente, puedes utilizar el campo de atributos personalizados del cliente. Lee más sobre atributos personalizados aquí.
Para establecer un atributo personalizado, usa setCustomAttributes como se muestra:
window.$chatwoot.setCustomAttributes({
accountId: 1,
pricingPlan: "paid",
// Aquí la clave ya está definida en el atributo personalizado
// El valor debe ser según el tipo (Actualmente soporta Number, Date, String y Number)
});
Puedes ver esta información en el panel lateral de una conversación.
Para eliminar un atributo personalizado, usa deleteCustomAttribute así:
window.$chatwoot.deleteCustomAttribute("attribute-key");
Establecer el idioma manualmente
window.$chatwoot.setLocale("en");
Para establecer el idioma manualmente, utiliza la función setLocale.
Establecer etiquetas en la conversación
Ten en cuenta que las etiquetas se establecerán en una conversación si el usuario no ha iniciado una conversación. En ese caso, los siguientes elementos no tendrán ningún efecto:
window.$chatwoot.setLabel("support-ticket");
window.$chatwoot.removeLabel("support-ticket");
Refrescar la sesión (usa esto al cerrar sesión del usuario en tu app)
window.$chatwoot.reset();
Errores del widget
Para ver cualquier error en el widget, asegúrate de escuchar el evento chatwoot:event como se muestra:
window.addEventListener("chatwoot:error", function () {
// ...
});
Nota: Esta funcionalidad está disponible en la versión v2.3.0 y posteriores.
Personalizar el encabezado y descripción de bienvenida
Puedes cambiar:
-
El título y la descripción de bienvenida
-
Los mensajes que se muestran cuando tu equipo está en línea o fuera de línea
-
Habilitar selectivamente funciones de la interfaz como carga de archivos, selector de emojis y botón para terminar la conversación
window.chatwootSettings = {
welcomeTitle: '¿Necesitas ayuda?',
welcomeDescription: 'Estamos aquí para apoyarte.',
availableMessage: '¡Estamos en línea y listos para chatear!',
unavailableMessage: 'Actualmente estamos fuera de línea.',
enableFileUpload: true,
enableEmojiPicker: true,
enableEndConversation: true
};