Historique des modifications apportées au site. Cette page est réservée à l'équipe technique et marketing.
Dernière mise à jour : 22 février 2026
Création d'un endpoint /api/ringover/webhook qui reçoit les événements d'appel Ringover (ringing, answered, hangup, missed) et met à jour le message Slack du lead en temps réel. Le message Slack évolue en place : "📞 Appel en cours...", "✅ L'interlocuteur a répondu", "📴 Appel terminé — Durée : 3min 45s", "❌ Pas de réponse". Inclut l'URL d'enregistrement audio si disponible.
Impact : Suivi complet du cycle de vie d'un lead dans un seul message Slack. Plus besoin de basculer entre Slack et Ringover pour connaître le statut d'un appel.
Les notifications de leads sont désormais envoyées via l'API Bot Slack (chat.postMessage) au lieu du webhook. Cela permet de récupérer le timestamp du message pour le modifier ultérieurement (statut d'appel Ringover, marquage traité). Fallback automatique sur le webhook si le Bot Token n'est pas configuré.
Impact : Les messages Slack des leads peuvent être mis à jour en place au lieu de créer de nouveaux messages. Channel Slack plus propre.
Chaque notification de lead dans Slack affiche un bouton '✅ Traiter ce lead'. Quand un membre clique, le message est mis à jour avec 'Traité par {nom} — Lead traité en X minutes et Y secondes'. Protection contre le double traitement incluse.
Impact : Visibilité immédiate sur qui traite quel lead et en combien de temps. Pas de doublons.
L'événement google_ads_conversion a été retiré des fonctions trackPhoneClick et trackWhatsAppClick. Les conversions Ads ne se déclenchent plus que sur les soumissions de formulaires (trackFormSubmission, trackAuditRequest).
Impact : Les résultats de conversion Ads ne sont plus faussés par les clics téléphone/WhatsApp.
Ajout d'un composant RouteTracker dans App.tsx qui pousse un événement 'virtual_pageview' dans le dataLayer à chaque changement de route. Inclut page_path, page_title et page_location. Sarah doit créer un trigger GTM sur l'événement custom 'virtual_pageview' pour déclencher la balise GA4 pageview.
Impact : GTM/GA4 peut désormais comptabiliser correctement les pages vues dans la SPA. Chaque navigation interne déclenche un événement virtual_pageview dans le dataLayer.
L'événement custom a été renommé de 'form_submit_contact' en 'leroux_form_submit' pour éviter toute collision avec le trigger natif GTM 'Form Submission' qui se déclenche automatiquement sur les balises <form> HTML. Sarah doit mettre à jour ses triggers GTM pour écouter 'leroux_form_submit' au lieu de 'form_submit_contact'.
Impact : Plus de double déclenchement des conversions form_submit. Sarah contrôle entièrement quand les tags se déclenchent via le nom d'événement custom.
Ajout d'événements dataLayer sur les 3 boutons du popup d'engagement : 'popup_click_rdv' (Prendre rendez-vous), 'popup_click_appeler' (Appeler), 'popup_click_whatsapp' (WhatsApp). Chaque événement inclut click_source: 'engagement_popup'.
Impact : Sarah peut créer des triggers GTM sur ces 3 événements pour mesurer l'engagement avec le popup.
Ajout du tracking dataLayer (leroux_form_submit + google_ads_conversion) sur le formulaire inline de la page d'accueil HomeOptimized, qui en était dépourvu. Tous les formulaires du site envoient désormais les mêmes événements.
Impact : Couverture complète : aucun formulaire du site n'est oublié dans le tracking de conversion.
Les images (/images/hero-premium.png, /images/team-professional.png, /images/office-exterior.png, /images/consultation-premium.png) avaient été déplacées vers S3 lors d'un précédent déploiement mais les références dans le code n'étaient pas mises à jour. Toutes les références pointent désormais vers les URLs CDN.
Impact : Les images s'affichent correctement sur toutes les pages. Plus de zones vides ou d'alt text visible.
La barre de progression sticky du formulaire d'audit était masquée par le StickyFooterCTA (bandeau 'Besoin d'aide'). Ajout d'un margin-bottom de 72px et augmentation du z-index pour que la barre de progression soit toujours visible au-dessus du bandeau.
Impact : Les utilisateurs peuvent désormais voir et cliquer sur les boutons Précédent/Suivant du formulaire d'audit sans obstruction.
Suppression du script gtag.js direct (AW-10871697402 + G-R1R4YNZTS0) qui créait une deuxième instance de tracking en parallèle de GTM. Toutes les conversions Google Ads et GA4 sont désormais gérées UNIQUEMENT via GTM (GTM-MNTLWM56). Suppression également de l'envoi direct via gtag() dans googleAdsTracking.ts.
Impact : Les événements form_submit ne se déclenchent plus en double. Les conversions sont comptées correctement (1 seule fois). Les balises GTM (Conversion Linker, GAds_Balise, GA4_Balise, etc.) ne se déclenchent plus 2 fois.
Vérification et ajout du tracking de conversion sur les formulaires qui en étaient dépourvus : AuditGratuit (page /audit), LiquidationJudiciaire (page /liquidation-judiciaire), TupTransfrontaliere (page /tup-transfrontaliere). Tous les formulaires envoient désormais un événement form_submit_contact dans le dataLayer après soumission réussie.
Impact : Couverture complète du tracking : chaque formulaire du site déclenche correctement une conversion. Aucun lead n'est perdu dans le suivi.
Ajout de l'attribut data-culture='FR' sur le script CookieBot pour forcer l'affichage du bandeau de consentement en français. Vérifier que le domaine leroux-associes.com est bien scanné dans le CookieBot Manager (manage.cookiebot.com) pour que le bandeau s'affiche correctement.
Impact : Le bandeau de consentement devrait maintenant s'afficher en français sur le domaine de production.
Le bouton 'Prendre rendez-vous' du popup d'engagement ouvre désormais une modale élégante avec le calendrier Google intégré en iframe, au lieu d'ouvrir un nouvel onglet. L'utilisateur reste sur le site pendant toute la prise de RDV.
Impact : Meilleure expérience utilisateur : pas de changement de contexte. Le visiteur reste sur le site et peut revenir facilement après la prise de RDV.
Suppression complète de l'intégration Calendly (widget inline + package react-calendly). Le bouton 'Prendre rendez-vous' du popup d'engagement ouvre désormais directement Google Calendar (calendar.app.google) dans un nouvel onglet. Plus simple, plus rapide, sans dépendance externe.
Impact : Prise de rendez-vous fonctionnelle et fiable. Plus d'erreur 404 Calendly. Réduction du poids du bundle (suppression du package react-calendly).
Remplacement du bandeau cookies basique (OK / En savoir plus) par CookieBot, une CMP certifiée Google. Le script CookieBot est positionné en premier dans le HEAD pour bloquer automatiquement tous les cookies avant consentement. Les signaux ad_user_data et ad_personalization sont désormais envoyés correctement via Consent Mode V2.
Impact : Google Ads peut maintenant recevoir les signaux de consentement requis et modéliser les conversions. La diffusion ne sera plus bridée par précaution juridique.
Le bouton 'Prendre rendez-vous' du popup d'engagement pointait vers un lien invalide (erreur 404). Corrigé et remplacé par Google Calendar.
Impact : Les visiteurs peuvent maintenant prendre rendez-vous directement depuis le popup sans erreur.
Repositionnement du bouton 'Fermer' au-dessus du popup (en dehors du cadre blanc) pour ne plus chevaucher le texte. Couleur du bouton changée en gris (#8e8e93) pour mieux se distinguer du reste du site tout en restant visuellement lié au popup.
Impact : Meilleure expérience utilisateur : le bouton Fermer est clairement identifiable et ne masque plus le contenu.
[HISTORIQUE] Ajout initial de l'ID GA4 directement dans le code source en parallèle de GTM. SUPPRIMÉ le 12/02/2026 car cette double instance causait le déclenchement en double des événements form_submit. GA4 est désormais géré uniquement via GTM.
Impact : Supprimé — Le tracking GA4 passe désormais exclusivement par GTM pour éviter les doublons.
Ajout du conteneur GTM dans le HEAD et le BODY de index.html. Configuration du Consent Mode RGPD avec les paramètres par défaut (analytics accepté, publicité refusée jusqu'au consentement).
Impact : GTM est opérationnel et prêt à recevoir les tags de conversion Google Ads.
Création du module googleAdsTracking.ts pour gérer les conversions. Tracking ajouté sur : soumission des formulaires de contact (CallbackForm, ContactForm), clics téléphone (Header, Footer, StickyFooterCTA), clics WhatsApp. Actions de conversion : Leroux - Formulaire Contact, Leroux - Clic Telephone.
Impact : Google Ads peut maintenant mesurer les conversions et optimiser les enchères en fonction des résultats réels.
Chaque soumission de formulaire envoie une notification Slack dans le channel dédié avec les informations du lead (nom, téléphone, email, société, message). Les notifications incluent des boutons d'action : Appeler (Ringover desktop), Appeler sur mobile, WhatsApp.
Impact : L'équipe reçoit les leads en temps réel sur Slack avec possibilité d'appeler directement.
Les notifications Slack de leads incluent maintenant des boutons interactifs pour lancer un appel via Ringover (desktop et mobile) ou contacter le prospect sur WhatsApp. L'API Ringover est connectée pour déclencher les appels automatiquement.
Impact : Réduction du temps de réponse aux leads : un clic suffit pour appeler le prospect.
Création d'un popup d'engagement qui apparaît après 30 secondes de navigation. Design inspiré des notifications iOS avec animation slide-in + bounce. Le popup propose : Prendre RDV (via Calendly intégré), Appeler, WhatsApp. Un mode debug est disponible via ?debug=popup dans l'URL.
Impact : Augmentation attendue du taux de conversion grâce à un CTA non-intrusif mais visible.
Barre fixe en bas de l'écran avec boutons 'Appeler maintenant' et 'WhatsApp', visible sur toutes les pages. Design responsive adapté mobile et desktop.
Impact : Les visiteurs ont toujours un moyen de contact visible, quel que soit leur position sur la page.
Bouton flottant 'Une urgence ?' qui apparaît après 300px de scroll et disparaît quand le footer est visible. Propose deux options : Contact et WhatsApp.
Impact : CTA supplémentaire pour capter les visiteurs en cours de lecture.
Création des pages Mentions Légales et Politique de Confidentialité avec contenu conforme RGPD. Liens ajoutés dans le footer.
Impact : Conformité légale du site.
Bouton 'Appeler' ajouté dans le header en haut à droite, visible sur desktop et mobile. Tracking complet des clics (page, timestamp, temps de navigation). Animation de pulsation subtile avec effet glow doré qui se déclenche après 15 secondes. Interface admin pour visualiser les statistiques (/admin/analytics).
Impact : Mesure précise de l'engagement téléphonique. L'animation attire l'attention sans être intrusive.
Le bouton 'Prendre rendez-vous' du popup ouvre une modale avec le widget Calendly intégré (calendly.com/joubert-associes/rdv-tup-dirigeant). Le visiteur peut réserver un créneau sans quitter le site.
Impact : Parcours de conversion plus fluide : moins de friction pour prendre RDV.
Ajout de CTA après chaque section importante sur les pages Home (4 CTA), Liquidation (4 CTA) et TUP (3 CTA). Variation des types : Appel, WhatsApp, Formulaire, Audit. Principe : un utilisateur ne peut jamais scroller plus d'un écran sans voir un CTA.
Impact : Multiplication des points de conversion sur les pages clés.
Ajout d'une checkbox 'Disponible sur WhatsApp' dans tous les formulaires de contact (CallbackForm, ContactForm, LiquidationJudiciaire, Tup). L'information est enregistrée en base de données et transmise dans les notifications.
Impact : L'équipe sait immédiatement si le prospect préfère être contacté via WhatsApp.
Normalisation des numéros de téléphone en format +33 (conversion automatique 06/07 → +336/+337). Correction de la validation email Zod qui rejetait certains emails valides. Gestion des numéros à 9 chiffres.
Impact : Plus aucun lead perdu à cause d'une validation trop stricte.
Refonte complète de la page comme landing page optimisée pour Google Ads. Structure CRO : H1 accroche directe, sous-titre rassurant, CTA au-dessus de la ligne de flottaison, sections Douleur/Risques/Solutions/Différenciation/Réassurance, CTA final.
Impact : Page optimisée pour la conversion depuis les campagnes Google Ads.
Refonte complète avec structure CRO : Hero épurée, encadré de qualification, sections progressives (constat → alternative → méthode → proposition), mini-FAQ en accordéons, CTA final sobre.
Impact : Page optimisée pour qualifier et convertir les visiteurs intéressés par la TUP.
32 variantes de titres implémentées avec rotation aléatoire à chaque session. La variante est stockée en sessionStorage pour rester cohérente pendant la navigation. Catégories : originales, expert-comptable, urgence/action, regret/témoignage, provocation douce.
Impact : Test en conditions réelles pour identifier le titre le plus performant.
Intégration de l'API Creditsafe pour l'autocomplétion des informations entreprise. Le visiteur tape le nom de sa société et les champs SIRET, activité, nom du dirigeant se remplissent automatiquement. Composant réutilisable CompanyAutocomplete déployé sur tous les formulaires.
Impact : Réduction du temps de remplissage des formulaires et amélioration de la qualité des données collectées.
Formulaire d'audit détaillé avec 9 sections : Identité, Situation comptable, Dettes sociales/fiscales, Relations bancaires, Véhicules/matériels, Actif société, Dettes exploitation, Contrôles fiscaux, Contexte dirigeant. Navigation progressive avec barre de progression sticky glassmorphism.
Impact : Collecte d'informations structurée pour qualifier les prospects avant le premier RDV.
Mise en place du backend tRPC avec base de données MySQL. Tous les formulaires enregistrent les leads en BDD, envoient un email à [email protected], créent une entrée Notion, et notifient le propriétaire. Intégration Resend pour les emails.
Impact : Aucun lead n'est perdu : triple sauvegarde (BDD + Email + Notion).
Titre optimisé (54 caractères), meta description (158 caractères), mots-clés pertinents. Balises Open Graph et Twitter Card configurées avec image OG 1200x630px. Balise canonical, robots index/follow.
Impact : Meilleur référencement naturel et aperçu attractif lors du partage sur les réseaux sociaux.
Augmentation de la taille des textes sur tout le site pour les personnes âgées. Élargissement de la Hero Section. Amélioration des FAQ (texte plus grand, meilleur contraste). Vérification des espacements et contrastes.
Impact : Site accessible à un public plus large, y compris les dirigeants seniors.
Pattern géométrique avec hexagones interconnectés en arrière-plan de la Hero Section. Animation d'apparition progressive (révélation radiale). Opacité subtile (10%) pour ne pas gêner la lecture. Design responsive.
Impact : Différenciation visuelle et impression de qualité premium.
Création de toutes les pages : Accueil (version optimisée conversion), Le Cabinet, FAQ, Contact, Audit Gratuit, Protection du Gérant, Redressement Judiciaire, Liquidation Judiciaire, Cession & Reprise, TUP Transfrontalière, Mentions Légales, Politique de Confidentialité. Navigation avec mega menu, footer complet.
Impact : Site fonctionnel avec toutes les pages nécessaires pour les campagnes Google Ads.
Page confidentielle — Accès réservé à l'équipe technique et marketing