Saasy

Configuration et API JavaScript

Configure le widget et contrôle-le par programmation.

Configuration et API JavaScript

Configuration initiale

Le widget se configure via l'objet window.SaasyConfig avant le chargement du script. C'est la méthode recommandée pour initialiser le widget.

<script>
  window.SaasyConfig = {
    embedKey: "TON_EMBED_KEY",
    appKey: "TON_APP_KEY",
  };
</script>
<script src="https://cdn.saasy.fr/widget.js" async defer></script>

Options de configuration

OptionTypeDescription
embedKeystringCle d'embed du widget Feedback. Obligatoire si tu n'utilises pas appKey.
appKeystringCle d'application pour l'Onboarding, Analytics et l'identification. Obligatoire si tu n'utilises pas embedKey.
apiUrlstringURL de l'API Saasy (optionnel, infere automatiquement).
localestringLangue du widget (fr, en, etc.).

API JavaScript

Une fois le widget chargé, l'objet window.Saasy est disponible globalement. Il expose des méthodes pour contrôler le widget par programmation.

Methodes disponibles

MethodeDescription
open()Ouvre le widget
close()Ferme le widget
toggle()Ouvre ou ferme le widget
openTab(kind)Ouvre le widget sur un onglet specifique ("ideas", "roadmap", "changelog", "submit_idea", "survey")
openIdea(ideaId)Ouvre le detail d'une idee specifique
identify(user)Identifie l'utilisateur actuel
setLocale(locale)Change la langue du widget
destroy()Detruit l'instance du widget

Exemples

// Ouvre le widget
window.Saasy.open();

// Ferme le widget
window.Saasy.close();

// Bascule l'etat du widget
window.Saasy.toggle();

Utile pour declencher l'ouverture depuis un bouton personnalise :

document.querySelector("#mon-bouton-feedback").addEventListener("click", () => {
  window.Saasy.toggle();
});

Ouvrir un onglet specifique

// Ouvre sur la liste des idees
window.Saasy.openTab("ideas");

// Ouvre sur la roadmap
window.Saasy.openTab("roadmap");

// Ouvre le changelog
window.Saasy.openTab("changelog");

L'onglet doit etre active dans la configuration de ton widget pour que la methode fonctionne.

Ouvrir une idee specifique

window.Saasy.openIdea("64b2c3d4e5f678901234567b");

Identifier l'utilisateur

window.Saasy.identify({
  userId: "usr_123",
  email: "alice@exemple.fr",
  name: "Alice Martin",
  plan: "pro",
});

L'identification est partagee avec le module Analytics si actif.

Changer la langue

window.Saasy.setLocale("fr");

API Onboarding

Si le module Onboarding est active :

// Demarrer un flow
window.Saasy.onboarding.startFlow("flow_123");

// Fermer le flow actif
window.Saasy.onboarding.dismissFlow();

// Marquer une checklist comme completee
window.Saasy.onboarding.completeChecklist("checklist_456");

// Identifier l'utilisateur pour le ciblage
window.Saasy.onboarding.identify({ plan: "pro", isTrialUser: false });

API Analytics

Si le module Analytics est active :

// Tracker un evenement custom
window.Saasy.analytics.track("subscription_upgraded", { plan: "pro" });

// Tracker une page vue manuellement
window.Saasy.analytics.page();

// Identifier un utilisateur
window.Saasy.analytics.identify("user_123", { email: "alice@example.com" });

// Reinitialiser l'identite (logout)
window.Saasy.analytics.reset();

// Opt-out / Opt-in du tracking
window.Saasy.analytics.optOut();
window.Saasy.analytics.optIn();

Evenements

Tu peux écouter les événements émis par le widget :

window.Saasy.on("open", () => {
  console.log("Widget ouvert");
});

window.Saasy.on("close", () => {
  console.log("Widget fermé");
});

window.Saasy.on("ready", () => {
  console.log("Widget prêt");
});

Pour retirer un listener :

const handler = () => console.log("ouvert");
window.Saasy.on("open", handler);
window.Saasy.off("open", handler);

Les événements disponibles sont : open, close, ready.

Initialisation manuelle

Tu peux aussi initialiser le widget manuellement via window.SaasyWidget.init() :

window.SaasyWidget.init({
  embedKey: "TON_EMBED_KEY",
  appKey: "TON_APP_KEY",
});

Pour detruire le widget (utile dans le cleanup de composants React/Vue) :

window.Saasy.destroy();