En esta sección
Guías / Widget de chat web

Widget de chat web

Lee y cambia cómo se ve el chat de tu sitio, el mensaje de bienvenida, el Met que responde y en qué dominios se muestra.

Actualizada el Ver .md

El widget es el chat que aparece en la esquina de tu sitio. Con GET y PATCH /workspaces/{workspaceId}/web-widget lees y cambias su apariencia, el mensaje de bienvenida, el Met que responde y los dominios donde se puede mostrar.

Scopes channels:read (leer) y channels:write (cambiar). No consume Energía. El chat web se activa la primera vez desde Canales → Chat web en el panel; mientras no esté activado, las dos operaciones responden 404 con web_widget_not_found.

import { Met } from '@meteor.ia/sdk';

const met = new Met(process.env.MET_KEY!, { workspaceId: 42 });

const widget = await met.webWidget.retrieve();
console.log(widget.appearance.color, widget.welcome.title, widget.primary_met_id);

Cambiar la configuración

Lo que no mandes no cambia. Dentro de appearance y welcome también va campo por campo: puedes cambiar solo el color sin tocar el resto.

await met.webWidget.update({
  appearance: { color: '#1F6FEB', theme: 'auto', position: 'left' },
  welcome: { title: '¡Hola! 👋', tagline: 'Escríbenos y te respondemos al instante.' },
  primary_met_id: 31,
  allowed_domains: ['midominio.com', '*.midominio.com'],
});
CampoValores
appearance.colorHexadecimal #RRGGBB.
appearance.avatarUn emoji o la URL https de una imagen.
appearance.positionright o left.
appearance.bubble_styleicon (solo el círculo) o expanded (con bubble_text al lado).
appearance.themelight, dark o auto (sigue el modo del sistema del visitante).
welcome.title, welcome.taglineEl título y el mensaje de bienvenida del chat.
primary_met_idEl Met que responde, un id de met.agents.list(). null lo quita.
secondary_met_idsMets de respaldo, hasta 10. Reemplaza la lista completa.
allowed_domainsDe 1 a 50. Reemplaza la lista completa. *.midominio.com cubre los subdominios.

Un Met que no es de tu workspace responde 404 con met_not_found; un dominio mal escrito, 400 con validation_error y param: 'allowed_domains'. Los cambios se ven en tu sitio en la siguiente carga de la página.

allowed_domains no puede ir vacío. Una lista vacía no cierra el widget: lo deja abierto, y se mostraría y respondería en cualquier sitio. Por eso responde 400 con allowed_domains_empty. Para que el widget no aparezca en ningún sitio, desactívalo desde Canales → Chat web en el panel. Tampoco se acepta un comodín que cubra sitios de otras personas: un sufijo público como *.com.co o *.co, ni el de una plataforma que reparte subdominios, como *.vercel.app, *.github.io, *.netlify.app o *.herokuapp.com. Responde 400 con allowed_domain_too_broad. Usa tu propio dominio (*.midominio.com) o tu subdominio exacto (midominio.vercel.app).

Lo que sigue en el panel

El código de instalación (el <script> con el token del widget), el horario de atención, el formulario previo al chat y encender o apagar el widget se manejan desde Canales → Chat web. La respuesta de la API no trae el token del snippet.