API d’exécution du widget
Pilotez le widget depuis JavaScript via l’objet window.syncanix.
Une fois chargé, le widget installe un objet window.syncanix que vous pouvez appeler depuis votre propre code.
Ce que vous pouvez faire
- open() — ouvre le panneau de chat par programmation.
- setPosition(position) — déplace le lanceur dans un autre coin.
- unmount() — retire le widget de la page.
- registerComponent() / unregisterComponent() / getComponentCatalog() — enregistrez vos propres composants React pour que l’assistant les affiche, validés par un schéma.
- setContext() / clearContext() — alimentez l’état en direct de l’application (utilisateur, page, panier) dans le prochain tour. JSON borné uniquement — jamais de secrets.
- setTokenProvider(fn) — fournissez le jeton de l’utilisateur final par tour (prioritaire sur l’attribut data).
- setStepUpProvider(fn) — fournissez le flux de réauthentification renforcée.
Exemple
// 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());Ce que l’assistant peut afficher — et ce qu’il ne peut pas voir
La surface affichable est explicite par conception : les primitives intégrées, les composants que vous enregistrez avec registerComponent et les embeds provenant d’origines que votre administrateur a ajoutées à la liste autorisée. L’assistant ne peut piloter que ce que vous lui avez délibérément confié.
Le widget ne scanne, n’auto-détecte ni ne capture jamais le DOM de votre page vers le modèle. Lire le contenu de la page hôte dans un contexte d’IA est une surface d’exfiltration de données et d’injection ; la capture du DOM en direct reste donc médiée par le client : vous décidez de ce qui est intégrable en l’enregistrant.
Chargé une seule fois
Installer l’objet global est idempotent — si le script est inclus deux fois, le doublon est ignoré avec un avertissement, vous n’avez donc jamais deux widgets.