Cómo funciona la conversación web
El chat web proporciona una interfaz de chatbot fácil de usar que puede añadir a su sitio web sin escribir ningún código.
Después de añadir el script de chat web a su sitio web, sus clientes verán un icono de inicio en el que pueden hacer clic para abrir la ventana de chat y comenzar una conversación con el asistente. El aspecto del icono del lanzador se adapta a los navegadores de escritorio y móviles.
Cuando un cliente pulsa el lanzador, se abre la ventana de conversación web, que muestra inicialmente la pantalla de inicio. La pantalla de inicio muestra un saludo y un conjunto opcional de sugerencias para iniciar conversaciones sobre preguntas y problemas comunes. El cliente puede pulsar un iniciador de conversación o escribir un mensaje en el campo de entrada para iniciar la conversación con el asistente.
La apariencia y el comportamiento del icono del lanzador, la pantalla de inicio y la mayoría de los demás aspectos del chat web se pueden configurar y personalizar para que coincidan con el estilo y la marca de su sitio web. Para obtener más información, consulte Configuración de la conversación web.
Aspecto y comportamiento del iniciador
El iniciador de la conversación web da la bienvenida a los clientes y se da a conocer para que sepan dónde encontrar ayuda si la necesitan. De forma predeterminada, el iniciador de chat web se muestra como un círculo. en la esquina inferior derecha:
Después de 15 segundos, el iniciador se expande y muestra un mensaje de bienvenida al usuario. Aun en el estado expandido, el cliente puede pulsar el iniciador para abrir la conversación web. (Si el cliente vuelve a cargar la página o navega a una página diferente antes de que se expanda el lanzador, el temporizador de 15 segundos se reinicia)
El aspecto de este estado expandido difiere ligeramente en función de si el cliente está utilizando un navegador de escritorio o un navegador móvil:
-
En los navegadores de escritorio, el iniciador expandido muestra dos botones principales que el cliente puede pulsar para abrir la conversación web y un botón Cerrar que cierra el iniciador.
El iniciador expandido permanece en estado expandido aunque el cliente vuelva a cargar la página o navegue a otra página. Permanece en su estado expandido hasta que el cliente lo abre. El cliente puede abrirlo haciendo clic en uno de los dos botones principales. Cuando el cliente la cierra, vuelve a su pequeño estado inicial durante el resto de la sesión.
-
En los navegadores móviles, el iniciador muestra un único botón principal.
El cliente puede cerrar el iniciador desplazándose por la página, deslizando hacia la derecha en el iniciador expandido o esperando 10 segundos, momento en el que el iniciador expandido retoma automáticamente el estado inicial pequeño. Si el usuario vuelve a cargar la página o navega a una página diferente mientras el lanzador está expandido, permanece en su estado expandido y el temporizador de 10 segundos se reinicia.
Después de la siguiente renovación de página, si el lanzador permanece en estado reducido sin haberlo pulsado, "salta" arriba y abajo para atraer la atención del cliente. El primer rebote ocurre 15 segundos después de la actualización de la página; si el cliente sigue sin hacer clic en el lanzador, vuelve a rebotar 60 segundos más tarde. (La temporización del segundo rebote puede verse afectada si el usuario renueva la página o navega a otra página). Si el usuario sigue sin hacer clic en el lanzador, no vuelve a rebotar.
El idioma del texto predeterminado que se muestra en el lanzador depende de la configuración regional configurada para el chat web. Si personaliza el texto del mensaje de bienvenida, el texto que proporcione se utilizará independientemente de los valores del entorno local.
Puede configurar el color del lanzador y el texto del mensaje de saludo en los ajustes del chat web. Para obtener más información, consulte Configuración de la conversación web.
Representación de la salida del asistente
Además de texto sin formato, watsonx Assistant admite muchos tipos de respuesta que se pueden utilizar para generar elementos multimedia e interactivos. La conversación web incluye soporte incorporado para una amplia variedad de tipos de respuesta:
- Formato de texto: El chat web admite el formato de texto que utiliza tanto HTML como " Markdown ". Para obtener más información, consulte Formato deMarkdown.
- URL: los URL válidos (como
http://example.com
) se representan automáticamente como enlaces que se pueden pulsar. Cuando un cliente pulsa un enlace en la conversación web, el sitio web de destino se abre en una nueva pestaña del navegador. - Opciones: las respuestas de opciones (cuando el asistente solicita al cliente que seleccione entre un conjunto de opciones) se representan automáticamente como elementos interactivos. (De forma predeterminada, un conjunto de menos de cinco opciones se representa como un conjunto de botones que se pueden pulsar; cinco o más opciones se representan como una lista desplegable.)
- Fechas: cuando el asistente solicita al cliente que especifique una fecha, la conversación web muestra un selector de fechas interactivo. El cliente puede especificar la fecha pulsando el selector de fechas o escribiendo un valor de fecha válido en el campo de entrada.
- Respuestas multimedia: la conversación web admite todos los tipos de respuesta multimedia (
audio
,image
yvideo
). - iframe: la conversación web admite el tipo de respuesta
iframe
, que incorpora contenido HTML (como un formulario o mapa interactivo) directamente en la ventana de la conversación web.
Para obtener más información sobre cómo la conversación web maneja tipos de respuesta específicos, consulte Referencia de tipos de respuesta.
Formato de rebaja
En las respuestas de texto de su asistente, puede utilizar el formato Markdown para aplicar resaltado como, por ejemplo, cursiva, o para incluir elementos como párrafos y cabeceras. Algunos ejemplos comunes de formato de Markdown son:
-
Encabezamientos:
# First-level heading ## Second-level heading
-
Resaltado:
This text includes *italic* and **bold** highlighting, as well as a `code` snippet.
-
Listas:
1. ordered 2. list - bulleted - list
-
Tablas:
| Column 1 | Column 2 | |----------|----------| | Row | One | | Row | Two |
-
Enlaces:
[This link](https://www.ibm.com/products/watson-assistant/demos/lendyr/demo.html) opens in a new tab. [This link](https://www.ibm.com/products/watson-assistant/demos/lendyr/demo.html){{target=\"_self\" rel=\"noopener noreferrer\"}} opens in the same tab.
Para obtener más información sobre el formato Markdown, consulte la especificación CommonMark.
Transferencia de agente activo
El chat web permite transferir al cliente a un humano en situaciones que el asistente no puede manejar. Si configura una de las integraciones de centro de contacto compatibles, el chat web puede abrir una ventana de chat independiente en la que el cliente puede comunicarse con un agente en directo.
A continuación, el asistente puede iniciar una transferencia en situaciones en las que el asistente no puede manejar las solicitudes de un cliente. (Para obtener más información sobre cómo iniciar una transferencia, consulte Conexión a un agente activo.)
Para obtener información sobre cómo añadir una integración de centro de contacto a la conversación web, consulte Adición de soporte de centro de contacto.
Detalles técnicos
El chat web se muestra en su sitio web mediante un fragmento de código corto de JavaScript, que llama a un código de JavaScript adicional alojado en IBM Cloud. El código alojado se actualiza automáticamente con nuevas funciones y correcciones, por lo que, de forma predeterminada, siempre dispondrá de la última versión. (Opcionalmente, puede fijar una versión específica si prefiere controlar las actualizaciones usted mismo).
El fragmento de código que crea el widget de conversación web incluye un objeto de configuración, que puede modificar para cambiar el aspecto y el comportamiento de la conversación web. El objeto de configuración también especifica detalles que permiten que la conversación web se conecte al asistente. Si se siente cómodo escribiendo código en l JavaScript, puede personalizar el chat web modificando el fragmento de código y utilizando la API del chat web.
La conversación web utiliza la API con estado de watsonx Assistant v2 para comunicarse con el asistente. De forma predeterminada, la sesión finaliza y la conversación finaliza después de 5 minutos de inactividad. Esto significa que si un usuario deja de interactuar con el asistente, después de 5 minutos, cualquier valor de variable de contexto que se haya establecido durante la conversación anterior se establece en nulo o vuelve a sus valores iniciales. Puede cambiar el valor de tiempo de espera de inactividad en los valores del asistente (si lo permite el plan).
Accesibilidad
IBM se esfuerza por proporcionar productos con un acceso utilizable para todo el mundo, independientemente de la edad o aptitudes.
La integración de conversación web cumple con el estándar Web Content Accessibility 2.1 Nivel AA. Se realizan pruebas con lectores de pantalla y herramientas automatizadas de manera continuada.
Facturación
watsonx Assistant cargos basados en el número de usuarios activos mensuales (MAU) únicos.
De forma predeterminada, la conversación web crea un ID exclusivo y anónimo la primera vez que un usuario nuevo inicia una sesión. Este identificador se almacena en una cookie de origen, que permanece activa durante 45 días. Si el mismo usuario vuelve a acceder al sitio y vuelve a conversar con el asistente mientras esta cookie sigue activa, la integración de la conversación web reconoce al usuario y utiliza el mismo ID de usuario. Solo se le cobrará una vez al mes por el mismo usuario anónimo.
En los dispositivos Apple, la función de antirrastreo inteligente suprime automáticamente cualquier cookie del lado del cliente después de 7 días. Si un cliente anónimo accede a su sitio web y vuelve a visitarlo dos semanas después, las dos visitas se tratan como dos MAU diferentes. Para obtener información sobre cómo evitar este problema, consulte Gestión de la información de identidad de usuario en la conversación web.
Para obtener información sobre cómo personalizar el manejo de la información de identidad de usuario para fines de facturación, consulte Gestión de la información de identidad de usuario en la conversación web.
El uso se mide de forma diferente en función del tipo de plan. En los planes Lite, el uso se mide por el número de llamadas /message
(API) que se envían al asistente desde la integración de conversación web. En todos los demás
planes, el uso se mide por el número de usuarios activos mensuales (MAU) con los que interactúa la conversación web. El número máximo de MAU permitidos difiere en función del tipo de plan watsonx Assistant.
Plan | Uso máximo |
---|---|
Enterprise | MAU ilimitados |
Premium (heredado) | MAU ilimitados |
Plus | MAU ilimitados |
Prueba | MAU 5.000 |
Lite | 10.000 API (aproximadamente 1.000 MAU) |
Soporte de navegadores
El chat web admite varios dispositivos y plataformas. Por lo general, si las dos últimas versiones de un navegador representan más del 1 % de todo el tráfico de escritorio o móvil, el chat web es compatible con ese navegador.
En la lista siguiente, se especifica el software de navegador mínimo necesario para la conversación web (incluidas las dos versiones más recientes, salvo mención expresa de lo contrario):
- Safari de Apple
- Apple Safari Mobile
- Google Chrome
- Google Chrome para Android
- Microsoft Edge (basado en Chromium y no basado en Chromium)
- Mozilla Firefox
- Mozilla Firefox ESR (solo el ESR más reciente)
- Mozilla Firefox Mobile
- Opera
- Navegador móvil de Samsung
- UC Browser para Android
Para obtener resultados óptimos al mostrar el chat web en dispositivos móviles, el elemento <head>
de su página web debe incluir el siguiente elemento de metadatos:
<meta name="viewport" content="width=device-width, initial-scale=1" />
Soporte de idiomas
De forma predeterminada, el chat web muestra etiquetas y mensajes codificados en inglés, pero se ha incorporado soporte para todos los idiomas que admite watsonx Assistant. También puede elegir entre una amplia selección de entornos locales para personalizar la visualización de series tales como fechas y horas para audiencias globales.
Cualquiera que sea el idioma que esté utilizando, también puede personalizar el texto de las series codificadas.
Para obtener más información, consulte Soporte de audiencias globales en la conversación web.
Seguridad
De forma predeterminada, todos los mensajes que se envían entre la conversación web y el asistente se cifran con TLS (Transport Layer Security). Puede habilitar la característica de seguridad de conversación web si necesita una protección más sólida.
El script de inclusión de conversación web que incluye en el sitio web contiene identificadores exclusivos (como el ID de integración y el ID de instancia de servicio) que permiten que la conversación web se conecte con el asistente. Estos identificadores no se consideran secretos y son visibles para cualquiera que tenga acceso a su sitio web. Cualquiera que tenga estos ID puede utilizarlos para enviar mensajes a su asistente y recibir sus respuestas. Sin embargo, estos ID no se pueden utilizar para iniciar sesión en la cuenta, realizar cambios en el asistente o recuperar registros o información de análisis sobre el asistente.
Si le preocupa el acceso no autorizado a su asistente, puede habilitar la característica de seguridad de conversación web para una seguridad adicional, como verificar el origen del mensaje y autenticar usuarios. La habilitación de la característica de seguridad requiere más trabajo de desarrollo en el sitio web. Para obtener más información, consulte Seguridad de conversación web.
Actualización de políticas de seguridad del sitio
Si el sitio web utiliza una Política de seguridad de contenidos (CSP), debe actualizarla para otorgar permiso a la conversación web.
Tabla. Las propiedades de CSP listan los valores que se deben añadir al CSP.
Propiedad | Valores |
---|---|
default-src |
'self' *.watson.appdomain.cloud 'unsafe-inline' |
connect-src |
*.watson.appdomain.cloud |
Para default-src, si tiene un font-src
independiente, debe añadir *.watson.appdomain.cloud
junto con font-src
.
En el ejemplo siguiente, se muestra un código de metadatos de CSP completo:
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self' *.watson.appdomain.cloud fonts.gstatic.com 'unsafe-inline';connect-src *.watson.appdomain.cloud" />
Permitir elementos
Si su CSP utiliza un nonce para añadir elementos como etiquetas <script>
y <style>
a una lista de permitidos, no utilice unsafe-inline
para permitir todos esos elementos. En su lugar,
proporcione un valor nonce al widget de conversación web como opción de configuración. El chat web establece el nonce en cualquiera de los elementos <script>
y <style>
que genera dinámicamente.
Un CSP que pasa un valor nonce al widget de conversación web puede tener este aspecto:
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self' *.watson.appdomain.cloud fonts.gstatic.com 'nonce-<server generated value>';connect-src *.watson.appdomain.cloud"
>
Puede pasar el valor nonce a la conversación web editando el script incluido como se indica a continuación:
window.watsonAssistantChatOptions = {
integrationID: "YOUR_INTEGRATION_ID",
region: "YOUR_REGION",
serviceInstanceID: "YOUR_SERVICE_INSTANCE",
cspNonce: "<server generated value>",
onLoad: function(instance) {
instance.render();
}
};
Acceso a hosts de conversación web
Si el sistema que aloja el sitio web tiene acceso limitado a Internet (por ejemplo, si utiliza un proxy o un cortafuegos), asegúrese de que sea posible acceder a los URL siguientes:
https://web-chat.global.assistant.watson.appdomain.cloud
: aloja el código del widget de la conversación web y el script incluido en el sitio web hace referencia a él.https://integrations.{location}.assistant.watson.appdomain.cloud
: aloja el servidor de la conversación web, que maneja la comunicación con el asistente. Sustituya{location}
por la ubicación del centro de datos en el que se encuentra la instancia de servicio, que forma parte del URL de punto final de servicio. Para más información, consulte Buscar y actualizar la URL del punto final.
Revisión de la seguridad
La integración del chat web se somete a pruebas y análisis periódicos para detectar y solucionar posibles problemas de seguridad, como las vulnerabilidades de cross-site scripting (XSS).
Asegúrese de ejecutar sus propias comprobaciones de seguridad para ver cómo se adapta la conversación web con la estructura y las políticas actuales del sitio web. La conversación web está alojada en el sitio y puede heredar todas las vulnerabilidades que presente el sitio. Servir contenido a través de HTTPS, utilizar una Política de seguridad de contenidos (CSP) e implementar otras precauciones básicas de seguridad web.
Copiando estado de sesión
La integración de conversación web almacena el estado de la sesión actual como memoria caché en el navegador web del usuario. Cuando el usuario envía una consulta al asistente, el asistente responde junto con una copia del estado actual de la sesión. Cuando la sesión del asistente caduca en el servidor debido a tiempo de espera de inactividad, la conversación web crea una nueva sesión y copia el estado de la sesión anterior en la nueva sesión. Por lo tanto, los usuarios obtienen una conversación sin fisuras del usuario si la sesión caduca mientras el usuario está en medio de una conversación. Este estado sólo se conserva mientras el usuario mantenga abierta la pestaña del navegador con el chat web. Si el usuario vuelve a cargar la página, sale de la página o cierra la pestaña, este estado de sesión se pierde y obtendrá una nueva sesión con nuevo estado la próxima vez que abra el chat web. Cuando caduca la sesión en el servidor, al usuario se le presenta un aviso de que tendrá que enviar un mensaje para continuar la conversación.
El estado de sesión almacenado por la conversación web no incluye ninguna variable privada. Estas variables sólo se almacenan en el servidor. Cuando un asistente copia el estado de sesión antiguo del servidor en una sesión nueva, que se ha iniciado después de la caducidad de la sesión de servidor antigua, se perderán las variables privadas que se hayan establecido desde la sesión antigua.