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
| Option | Type | Description |
|---|---|---|
embedKey | string | Cle d'embed du widget Feedback. Obligatoire si tu n'utilises pas appKey. |
appKey | string | Cle d'application pour l'Onboarding, Analytics et l'identification. Obligatoire si tu n'utilises pas embedKey. |
apiUrl | string | URL de l'API Saasy (optionnel, infere automatiquement). |
locale | string | Langue 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
| Methode | Description |
|---|---|
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();