aller au contenu principal
Parcourir la documentation

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() / close() / toggle() — ouvrez, fermez ou basculez le panneau de conversation depuis votre code.
  • isOpen — si le panneau est ouvert à cet instant, pour que votre bouton affiche l’état correspondant.
  • setPosition(position) — déplace le lanceur dans un autre coin.
  • enable() / disable() — active ou désactive le chat à l’exécution sans le démonter (pour les incidents, le paiement ou les heures d’assistance).
  • 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.
  • exposeShadowRoot(host, root) — signalez au widget une partie de votre page construite avec des web components, afin que l’assistant puisse voir et manipuler les contrôles qu’elle contient. Renvoie une fonction qui annule l’opération.
  • registerDataSource() / unregisterDataSource() / getDataSourceCatalog() — donnez à l’assistant un moyen nommé de récupérer des données depuis votre app, pour qu’une réponse composée affiche des chiffres réels au lieu de les décrire.
  • registerAction() / unregisterAction() / getActionCatalog() — permet à l’assistant d’appeler vos propres fonctions, avec validation de schéma et confirmation en option.
  • 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.
  • setHeadersProvider(fn) — ajoute des en-têtes de requête (comme Authorization ou un jeton CSRF) à chaque appel d’outil ; prioritaire sur l’attribut de données.
  • setTheme(key) — change le thème en direct par son nom sans remonter le chat (pour un commutateur clair/sombre du site hôte).
  • setConsent(signal) — indiquez au widget ce que le visiteur a accepté, pour qu’il suive le choix que votre propre bandeau de consentement a déjà recueilli.
  • mapSite() / stopSiteWalk() et teach() / stopTeach() — démarrez et arrêtez depuis votre page les deux sessions de cartographie lancées par un opérateur. Chacune exige un jeton à usage unique généré dans le tableau de bord, et aucune ne peut démarrer sans lui.

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é.

Ce que le widget lit de votre page est une autre question. La découverte est activée par défaut et lit la STRUCTURE de vos pages — quels formulaires existent, comment leurs champs s’appellent, où vont vos liens — et propose chaque élément comme une capacité à examiner. Il ne lit jamais ce que quelqu’un a saisi, et tout ce qu’il trouve arrive désactivé.

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.

Étapes suivantes