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.
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) ychannels: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 responden404conweb_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'],
});
| Campo | Valores |
|---|---|
appearance.color | Hexadecimal #RRGGBB. |
appearance.avatar | Un emoji o la URL https de una imagen. |
appearance.position | right o left. |
appearance.bubble_style | icon (solo el círculo) o expanded (con bubble_text al lado). |
appearance.theme | light, dark o auto (sigue el modo del sistema del visitante). |
welcome.title, welcome.tagline | El título y el mensaje de bienvenida del chat. |
primary_met_id | El Met que responde, un id de met.agents.list(). null lo quita. |
secondary_met_ids | Mets de respaldo, hasta 10. Reemplaza la lista completa. |
allowed_domains | De 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_domainsno 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 responde400conallowed_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.coo*.co, ni el de una plataforma que reparte subdominios, como*.vercel.app,*.github.io,*.netlify.appo*.herokuapp.com. Responde400conallowed_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.