Retour au site

Changelog — Leroux & Associés

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

dimanche 22 février 2026

Intégration

Intégration webhooks Ringover → statuts d'appel en temps réel dans Slack

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.

Intégration

Migration Slack : webhook → Bot API (chat.postMessage/chat.update)

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.

Fonctionnalité

Bouton 'Traiter ce lead' interactif dans Slack

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.

Tracking / Analytics

Retrait google_ads_conversion des boutons WhatsApp et Appeler

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.

jeudi 12 février 2026

Tracking / Analytics

Virtual pageview SPA pour GTM/GA4

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.

Tracking / Analytics

Renommage event form_submit_contact → leroux_form_submit

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.

Tracking / Analytics

Tracking popup 'Besoin d'aide' (Prendre RDV, Appeler, WhatsApp)

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.

Tracking / Analytics

Tracking formulaire page d'accueil (google_ads_conversion)

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.

Correction

Images manquantes sur 4 pages (Protection Gérant, Le Cabinet, Contact, Cession Reprise)

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.

Correction

Bouton Suivant caché par le bandeau 'Besoin d'aide' sur /audit

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.

Tracking / Analytics

Correction double form_submit dans le dataLayer

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.

Tracking / Analytics

Audit complet des tags sur toutes les pages et formulaires

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.

CMP / RGPD

CookieBot : ajout data-culture FR

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.

Intégration

Google Calendar intégré dans une modale iframe

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.

lundi 9 février 2026

Intégration

Remplacement de Calendly par Google Calendar

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).

CMP / RGPD

Intégration CookieBot CMP avec Google Consent Mode V2

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.

Correction

Correction lien prise de rendez-vous dans le popup d'engagement

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.

Design / UX

Ajustements visuels du popup d'engagement

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.

dimanche 8 février 2026

Tracking / Analytics

Intégration GA4 directe (G-R1R4YNZTS0) — SUPPRIMÉE le 12/02

[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.

samedi 7 février 2026

Tracking / Analytics

Installation Google Tag Manager (GTM-MNTLWM56)

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.

Tracking / Analytics

Tracking Conversions Google Ads (AW-10871697402)

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.

vendredi 6 février 2026

Intégration

Intégration Slack pour les notifications de leads

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.

Intégration

Intégration boutons Ringover dans Slack

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.

jeudi 5 février 2026

Fonctionnalité

Popup d'engagement style iOS/iMessage

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.

Fonctionnalité

Sticky Footer CTA permanent

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.

Fonctionnalité

CTA flottant au scroll

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.

Fonctionnalité

Pages légales complètes

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.

mercredi 4 février 2026

Fonctionnalité

Bouton Appeler avec tracking et animation

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.

Fonctionnalité

Intégration Calendly dans le popup

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.

Design / UX

Ajout de CTA stratégiques dans chaque section

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.

mardi 3 février 2026

Fonctionnalité

Formulaires avec checkbox WhatsApp

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.

Correction

Correction format téléphone et validation email

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.

lundi 2 février 2026

Fonctionnalité

Refonte page Liquidation Judiciaire (Landing Page Google Ads)

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.

Fonctionnalité

Refonte page TUP Transfrontalière (Landing Page CRO)

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.

Fonctionnalité

A/B Testing titres page Audit Gratuit

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.

dimanche 1 février 2026

Intégration

Autocomplétion Creditsafe sur tous les formulaires

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.

Fonctionnalité

Formulaire d'audit complet multi-étapes (9 sections)

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.

samedi 31 janvier 2026

Intégration

Backend complet avec base de données et notifications

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).

vendredi 30 janvier 2026

SEO

Optimisation SEO complète

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.

Design / UX

Amélioration accessibilité et lisibilité

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.

jeudi 29 janvier 2026

Design / UX

Pattern géométrique animé dans la Hero Section

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.

mercredi 28 janvier 2026

Fonctionnalité

Création du site complet

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