Support de Travail & Spécifications Produits (PRD)
Projet : SDK JavaScript d'Onboarding Interactif & Digital Adoption Platform (DAP) Sovereign
Document de référence pour le développement
1. Vision Produit & Positionnement Stratégique
1.1 Proposition de Valeur
Un SDK JavaScript ultra-léger couplé à un éditeur No-Code via extension Chrome , permettant aux éditeurs SaaS et sites web de déployer des parcours d'onboarding interactifs (spotlights, infobulles, questions à choix multiples, guidage étape par étape) sans écrire une ligne de code frontend.
1.2 Différenciateurs Clés (Moat)
- Souveraineté & RGPD Native (EU-First) :
- Hébergement 100% européen (Scaleway, OVHcloud, Outscale).
- Aucune fuite de PII (Personally Identifiable Information). Télémétrie anonymisée ou stockée exclusivement en Europe.
- Alternative directe aux solutions dominantes américaines (Appcues, Pendo) et israéliennes (WalkMe).
- Architecture Hydratée Frontend/Backend (Event-Driven) :
- Possibilité de synchroniser les étapes front (clics UI) avec des événements de validation backend (Webhooks, API serveur, ex: validation KYC, webhook Stripe).
- Résilience du Sélectionneur DOM (Auto-Healing) :
- Mécanisme de ciblage robuste combinant sélecteurs CSS, XPath, attributs d'accessibilité (ARIA) et identificateurs textuels pour éviter que les tours ne rompent lors de mises à jour de l'UI du site hôte.
2. Architecture Globale du Système
Le système repose sur 3 composants principaux interconnectés :
┌────────────────────────────────────────────────────────┐
│ 1. EXTENSION CHROME (Éditeur No-Code) │
│ - Inspection / Sélection d'éléments du DOM │
│ - Overlay d'édition en direct sur le site hôte │
│ - Configuration des étapes, textes & logiques │
└──────────────────────────┬─────────────────────────────┘
│ 1. Sauvegarde des règles JSON
▼
┌────────────────────────────────────────────────────────┐
│ 2. PLATEFORME BACKEND & DASHBOARD │
│ - API Gateway & CDN de distribution des scénarios │
│ - Base de données des clients, clés API & parcours │
│ - Engine d'Analytics (taux de complétion, churn) │
└──────────────────────────┬─────────────────────────────┘
│ 2. Distribution CDN du SDK & des flux JSON
▼
┌────────────────────────────────────────────────────────┐
│ 3. SDK JS CLIENT (Script à intégrer) │
│ - Téléchargement et exécution dans la page hôte │
│ - Encapsulation CSS/UI dans un Shadow DOM │
│ - Détection dynamique (MutationObserver) │
└────────────────────────────────────────────────────────┘
3. Spécifications Techniques Détaillées
3.1 Le SDK JavaScript Client
Intégration par le client
Le client intègre une seule ligne dans le ou le de son application :
<script src="https://cdn.votre-saas.eu/v1/sdk.js" data-key="key_live_abc123" async defer></script>
Contraintes Techniques Strictes
- Taille du Bundle : $< 15\text{ KB}$ (gzippé). Zero dépendance lourde (vanilla JS uniquement).
- Isolation d'UI (Shadow DOM) : L'intégralité des éléments graphiques générés par le SDK (infobulles, modales, overlays canvas, boutons) doit être injectée dans un Shadow Root ( mode: 'closed' ) . Ceci empêche les règles CSS du site hôte d'altérer l'UI du SDK et vice versa.
- Chargement Asynchrone & Non Bloquant : Chargement différé pour préserver le score Google PageSpeed / Core Web Vitals du site client.
Moteur d'Éléments Dynamiques & SPAs (React, Vue, Angular)
- MutationObserver : Surveillance continue des modifications du DOM afin d'attendre l'apparition d'un composant chargé de manière asynchrone avant d'exécuter une étape.
- Scroll Smooth & Auto-Repositioning : Calcul dynamique des coordonnées de l'élément cible via getBoundingClientRect() avec réalignement réactif lors des redimensionnements de fenêtre (resize) et défilements (scroll).
3.2 L'Extension Chrome (Éditeur No-Code)
L'extension permet au client de créer, modifier et tester ses scénarios directement sur sa propre application en environnement de dev, staging ou prod.
Fonctionnalités de l'Extension
- Mode Inspecteur visuel :
- Au survol des éléments du site, affichage d'une bordure d'analyse.
- Au clic, génération automatique du sélecteur multi-critères :
- Sélecteur CSS principal (#id, .class).
- Fallbacks sémantiques (attribut data-testid, balises ARIA, texte contenu).
- Formulaire de Configuration d'Étape :
- Édition du titre, du texte de l'infobulle et de sa position relative (Haut, Bas, Gauche, Droite, Centré).
- Déclencheurs d'étape : au clic sur l'élément, à la saisie de texte, ou via un bouton "Suivant".
- Moteur d'Embranchements (Branching Engine / Questions) :
- Création d'étapes de type "Question à Choix Multiples" ( ex: "Quel est votre rôle ?" ).
- Routage dynamique : rediriger vers l'Étape 4A ou l'Étape 4B selon le choix de l'utilisateur.
- Publication Directe :
- Bouton "Publier sur le CDN" qui envoie la structure JSON validée au backend.
3.3 Le Backend & Dashboard de Gestion
Structure des Données (Exemple de Charge JSON d'un Scénario)
{
"tour_id": "tour_onboarding_v1",
"name": "Onboarding Nouveaux Utilisateurs",
"triggers": {
"url_pattern": "/dashboard/*",
"event": "first_login"
},
"steps": [
{
"step_id": "step_1",
"type": "spotlight",
"target": {
"selector": "#create-project-btn",
"fallback_text": "Créer un projet"
},
"content": {
"title": "Bienvenue !",
"body": "Cliquez ici pour démarrer votre premier projet."
},
"position": "bottom",
"next_trigger": "element_click"
},
{
"step_id": "step_2",
"type": "question",
"content": {
"title": "Quelle est votre équipe ?",
"options": [
{ "label": "Tech / Dev", "next_step": "step_3_dev" },
{ "label": "Sales / Marketing", "next_step": "step_3_sales" }
]
}
}
]
}
Modules du Dashboard Web
- Gestion des Scénarios : Activation, désactivation, versionnage et prévisualisation des tours.
- Analytics de Complétion :
- Taux de conversion global du tour (Commencé vs Terminé).
- Funnel d'étapes et détection des points d'abandon (drop-off rate par étape).
- Statistiques sur les choix effectués aux étapes de questionnement.
- Règles de Ciblage (Targeting Engine) :
- Afficher le tour selon des segments d'utilisateurs (ex: rôle, date d'inscription, langue).
- Limiter la fréquence (ex: afficher 1 seule fois par utilisateur).
4. Workflows Opérationnels
4.1 Workflow de Déploiement par le Client
- Étape 1 : Le client s'inscrit sur la plateforme et récupère sa clé d'API (data-key).
- Étape 2 : Il ajoute le snippet JavaScript sur son application.
- Étape 3 : Il installe l'extension Chrome d'édition et se connecte à son compte.
- Étape 4 : Il navigue sur son site web, construit son scénario de guidage à l'écran et clique sur "Publier".
- Étape 5 : Le parcours est immédiatement actif pour l'ensemble des visiteurs finaux répondant aux critères de ciblage.
4.2 Workflow d'Exécution sur le Site de l'Utilisateur Final
- Initialisation : Le SDK s'exécute de façon asynchrone et effectue une requête GET légère vers le CDN pour récupérer la configuration active liée à la data-key.
- Evaluation des Règles : Le SDK vérifie si l'URL actuelle et le contexte de l'utilisateur remplissent les conditions de déclenchement d'un tour.
- Rendu de l'Overlay (Spotlight) :
- Injection du masque sombre (Canvas ou Overlay CSS dans le Shadow DOM).
- Calcul des coordonnées de l'élément cible et découpage d'un "trou" lumineux (effet Spotlight).
- Défilement fluide (scrollIntoView) jusqu'à l'élément ciblé si nécessaire.
- Rendu de l'Infobulle : Positionnement du tooltip avec flèche directionnelle pointant vers l'élément.
- Progression : Enregistrement des événements de progression en mémoire et envoi d'évènements d'analytics légers en arrière-plan (Beacon API).
5. Feuille de Route de Développement (Roadmap V1)
- [ ] Phase 1 (Core SDK Engine) :
- Développement du SDK JS minimaliste.
- Implémentation du Shadow DOM et de l'Overlay Spotlight canvas/CSS.
- Moteur de positionnement réactif et MutationObserver.
- [ ] Phase 2 (Extension Chrome V1) :
- Développement de l'inspecteur DOM de l'extension Chrome.
- Capture multi-sélecteurs (CSS + Fallbacks sémantiques).
- UI d'édition simplifiée des étapes.
- [ ] Phase 3 (Backend & Dashboard) :
- API Gateway d'authentification des clés d'API.
- CDN de distribution des fichiers de configuration JSON.
- Dashboard pour visualiser les tours et les analytics basiques (taux de complétion).
- [ ] Phase 4 (Features Avancées & RGPD) :
- Implémentation du moteur de branching (Questions/Réponses).
- Module d'anonymisation des données pour la conformité RGPD stricte.