API en tiempo de ejecución del widget
Controla el widget desde JavaScript mediante el objeto window.syncanix.
Cuando el widget se carga, instala un objeto window.syncanix que puedes invocar desde tu propio código.
Lo que puedes hacer
- open() — abre el panel de chat de forma programática.
- setPosition(position) — mueve el lanzador a otra esquina.
- unmount() — elimina el widget de la página.
- registerComponent() / unregisterComponent() / getComponentCatalog() — registra tus propios componentes de React para que el asistente los represente, validados con un esquema.
- setContext() / clearContext() — alimenta el estado en vivo de la aplicación (usuario, página, carrito) en el siguiente turno. Solo JSON acotado, nunca secretos.
- setTokenProvider(fn) — proporciona el token del usuario final por turno (tiene prioridad sobre el atributo data).
- setStepUpProvider(fn) — proporciona el flujo de reautenticación reforzada.
Ejemplo
// Open the chat programmatically
window.syncanix.open();
// Feed live host-app context into the next turn (bounded JSON, no secrets)
window.syncanix.setContext({ page: 'checkout', cartItems: 3 });
// Provide the signed-in user's token per turn (recommended for SSR apps)
window.syncanix.setTokenProvider(async () => await getAccessToken());Qué puede representar el asistente — y qué no puede ver
La superficie representable es explícita por diseño: las primitivas integradas, los componentes que registras con registerComponent y los embeds de orígenes que tu administrador ha incluido en la lista de permitidos. El asistente solo puede manejar lo que le has entregado deliberadamente.
El widget nunca escanea, autodetecta ni captura el DOM de tu página hacia el modelo. Leer contenido de la página anfitriona en un contexto de IA es una superficie de exfiltración de datos e inyección, así que la captura del DOM en vivo queda mediada por el cliente: tú decides qué es integrable registrándolo.
Se carga una sola vez
Instalar el objeto global es idempotente: si el script se incluye dos veces, el duplicado se ignora con una advertencia, así que nunca acabas con dos widgets.