Buscar y explorar la ayuda

Identificar clientes con sesión iniciada

Indica al widget qué cliente inició sesión, con un token firmado en tu servidor, para que las acciones trabajen sobre sus propios pedidos y su cuenta.

Cuando tus clientes inician sesión en tu sitio, el chatbot puede saber quiénes son, de forma segura. Tu servidor firma un token de corta duración para el cliente y tu página se lo pasa al widget. ChatbotGen verifica la firma, así que nadie puede hacerse pasar por otra persona. Las acciones marcadas Solo para clientes verificados funcionan entonces para ese cliente y pueden usar {{user.id}}, {{user.email}} y las demás variables de usuario.

La IA solo conoce el nombre del cliente; el id, el email y los demás datos van únicamente a tus acciones.

  1. Copia el secreto de identidad

    Abre la pestaña Acciones del chatbot y copia el secreto de identidad (empieza con cbid_) en las variables de entorno de tu servidor, por ejemplo CHATBOTGEN_IDENTITY_SECRET. Nunca lo pongas en el código del navegador.

  2. Firma un token en tu servidor

    Con el cliente ya autenticado, crea un JWT firmado con HS256 y ese secreto. Claims obligatorios: sub (el id de tu cliente) y exp (vencimiento, por ejemplo una hora). Opcionales: email, name, phone y attributes (un objeto plano como {"plan": "pro"}).

  3. Pásaselo al widget

    En la página, llama a window.chatbotgen("identify", { token }) después del inicio de sesión y a window.chatbotgen("resetUser") al cerrar sesión. El fragmento de abajo encola las llamadas hechas antes de que cargue el widget.

  4. Marca las acciones

    Activa Solo para clientes verificados en cada acción que lea o cambie datos de un cliente.

Fragmento para la página


La URL exacta de tu script, con el fragmento completo, está en la pestaña Acciones. También puedes definir window.chatbotgenSettings = { identityToken: "" } antes de que cargue el script.

Ejemplo de servidor (Node.js)

import jwt from "jsonwebtoken"

const token = jwt.sign(
  { sub: String(user.id), email: user.email, name: user.name, exp: Math.floor(Date.now() / 1000) + 3600 },
  process.env.CHATBOTGEN_IDENTITY_SECRET,
  { algorithm: "HS256" }
)

Sirve cualquier librería JWT (PyJWT, firebase/php-jwt, ruby-jwt…). Solo se acepta HS256 y exp es obligatorio.

Para tener en cuenta

  • Si otro cliente inicia sesión en el mismo navegador, el widget empieza una conversación nueva para él.
  • Si el token venció o la firma no coincide, el cliente sigue como anónimo; las acciones solo para verificados le piden iniciar sesión.
  • En WhatsApp y Telegram el cliente se identifica por su cuenta automáticamente, sin token.
  • Si el secreto se filtra, rótalo en la pestaña Acciones y actualiza tu servidor enseguida.

Ver también