# 🎯 Guide rapide : Intégration du survey personnalisé ## Option 1 : Utiliser le survey PostHog natif (Recommandé) ✅ **Déjà configuré !** L'événement `contract_created` est envoyé automatiquement. Il vous suffit de : 1. Aller sur https://eu.posthog.com/ 2. Créer un survey (voir `POSTHOG_SURVEY_CONTRATS.md`) 3. Le cibler sur l'événement `contract_created` **Avantages** : Analytics automatiques, A/B testing, maintenance zéro. --- ## Option 2 : Utiliser le composant personnalisé Si vous voulez un contrôle total sur le design et le timing, utilisez le composant `ContractCreationSurvey`. ### Intégration dans NouveauCDDUForm Ajoutez ces imports en haut du fichier : ```tsx import { ContractCreationSurvey } from '@/components/surveys/ContractCreationSurvey'; ``` Ajoutez ces states avec les autres states du formulaire : ```tsx const [showSurvey, setShowSurvey] = useState(false); const [surveyContractId, setSurveyContractId] = useState(); const [surveyContractType, setSurveyContractType] = useState<'CDDU' | 'RG'>(); ``` Dans la fonction `onSubmit`, après la création réussie, ajoutez : ```tsx // Après: const result = await res.json().catch(() => ({})); setSurveyContractId(result?.contract?.id || result?.contract?.contract_number); setSurveyContractType(isRegimeRG ? 'RG' : 'CDDU'); // Afficher le survey après un court délai (laisser le temps à la redirection de commencer) setTimeout(() => { setShowSurvey(true); }, 1500); ``` Ajoutez le composant dans le JSX, après les overlays existants : ```tsx {/* Survey de satisfaction - après la fin des overlays existants */} setShowSurvey(false)} contractId={surveyContractId} contractType={surveyContractType} /> ``` ### Exemple complet de modification ```tsx // Dans onSubmit(), juste après la création réussie : const result = await res.json().catch(() => ({})); // 🎯 PostHog event (déjà en place) posthog?.capture('contract_created', { ... }); // 🎯 Préparer le survey personnalisé setSurveyContractId(result?.contract?.id); setSurveyContractType(isRegimeRG ? 'RG' : 'CDDU'); // Autoriser la navigation allowNavRef.current = true; setRedirecting(true); // Afficher le survey après 1.5s (pendant la redirection) setTimeout(() => { setShowSurvey(true); }, 1500); // Redirection après 3s setTimeout(() => { router.push("/contrats"); }, 3000); ``` ### Résultat Le survey apparaîtra en **bas à droite** de l'écran pendant la redirection, permettant à l'utilisateur de donner son avis avant d'être redirigé vers la liste des contrats. --- ## 📊 Analyser les résultats ### Dans PostHog 1. Allez dans **Activity** → **Live events** 2. Filtrez par événement : `contract_creation_survey_submitted` 3. Vous verrez les propriétés : - `rating` : Note de 1 à 5 - `feedback` : Commentaire (si donné) - `contract_id` : ID du contrat - `contract_type` : CDDU ou RG ### Créer un insight ``` Event: contract_creation_survey_submitted Aggregation: Average of rating Breakdown: contract_type ``` Cela vous donnera la note moyenne par type de contrat. --- ## 🎨 Personnalisation ### Changer les couleurs Dans `ContractCreationSurvey.tsx`, modifiez les classes Tailwind : ```tsx // Bouton principal className="... bg-emerald-600 hover:bg-emerald-700" // Étoiles className="... fill-yellow-400 text-yellow-400" // Border du composant className="... border-slate-200" ``` ### Changer la position ```tsx // En bas à gauche className="fixed bottom-4 left-4 ..." // En haut à droite className="fixed top-4 right-4 ..." // Centre de l'écran className="fixed inset-0 flex items-center justify-center ..." ``` ### Changer le timing ```tsx // Afficher immédiatement après création setTimeout(() => setShowSurvey(true), 0); // Afficher après 5 secondes setTimeout(() => setShowSurvey(true), 5000); ``` --- ## 🚨 Troubleshooting ### Le survey ne s'affiche pas 1. Vérifiez que `isOpen={true}` dans les props 2. Vérifiez que PostHog est bien initialisé (`window.posthog` dans la console) 3. Vérifiez les z-index (le composant a `z-50`) ### Le survey se ferme trop vite Augmentez le délai dans `handleSubmit` : ```tsx setTimeout(() => { onClose(); }, 3000); // 3 secondes au lieu de 2 ``` ### Les événements n'arrivent pas dans PostHog 1. Ouvrez DevTools → Network 2. Filtrez par "batch" 3. Vérifiez que les requêtes vers PostHog ont un statut 200 4. Vérifiez dans la console : `📊 Survey soumis: ...` --- **Recommandation finale** : Commencez avec le **survey PostHog natif** pour sa simplicité et ses analytics automatiques. Passez au composant personnalisé seulement si vous avez des besoins spécifiques de design ou de UX.