Identifier les utilisateurs inactifs sur Laravel : La méthode pragmatique (sans usine à gaz)

Dans la vie d'une application, l'acquisition de nouveaux utilisateurs n'est que la moitié de la bataille. L'autre moitié, c'est la rétention.

Intégration technique
Didier Sampaolo 2 min de lecture
Package Laravel : User Last Seen At
Sommaire
En résumé :
  • Le problème : Savoir si un utilisateur est actif nécessite souvent d'analyser des logs lourds ou de déployer des outils d'analytics complexes.
  • La solution LVLUP : Le package laravel-user-last-seen-at ajoute simplement une colonne last_seen_at mise à jour silencieusement via un middleware (Web ou API).
  • Les cas d'usage directs : Relancer les utilisateurs sur le point de churner, nettoyer vos listes d'envois pour protéger votre délivrabilité, ou purger les données (RGPD) avec de simples requêtes Eloquent.
  • Notre philosophie : Pourquoi faire compliqué quand une seule colonne suffit à débloquer 90 % de vos besoins marketing et CRM ?

Mais pour retenir un utilisateur, encore faut-il savoir qu'il est en train de vous quitter. Chez LVLUP, nous accompagnons régulièrement des entreprises dans l'optimisation de leur efficacité opérationnelle. Et l'une des questions qui revient le plus souvent du côté des équipes marketing ou produit est d'une simplicité désarmante : "Comment puis-je avoir la liste de tous les utilisateurs qui ne se sont pas connectés depuis 30 jours ?"

Pour répondre à cette question, nous avons packagé et open-sourcé notre solution : laravel-user-last-seen-at.

Le constat : L'enfer des logs et de l'over-engineering

La réaction typique d'une équipe technique face à ce besoin est souvent de sortir l'artillerie lourde : mettre en place de l'Event Sourcing, éplucher les logs d'accès, ou intégrer un outil d'analytics tiers lourd et coûteux.

Le résultat ? Des tables de base de données qui explosent en volume, des requêtes qui prennent des secondes entières à s'exécuter, et au final, une équipe marketing qui n'a toujours pas sa donnée facilement accessible pour ses campagnes.

Notre solution : Une donnée chaude, accessible instantanément

Notre philosophie chez LVLUP est le pragmatisme. Nous avons créé ce package pour faire une seule chose, de la manière la plus légère possible : enregistrer la date et l'heure de la dernière interaction d'un utilisateur avec votre application (que ce soit via votre site web ou votre API).

Le package fournit un middleware qui met à jour une colonne last_seen_at directement sur votre modèle User.

Grâce à cela, vos requêtes deviennent d'une simplicité enfantine :

$inactiveUsers = User::where('last_seen_at', '<', now()->subDays(30))->get();

3 Cas d'usage immédiats pour votre business

Avoir cette donnée directement sur le modèle Utilisateur débloque instantanément plusieurs leviers :

  • Les campagnes de réengagement (Anti-Churn) : Créez une commande automatique qui envoie un email de relance personnalisé ("Vous nous manquez !") exactement 15 jours après la dernière visite d'un utilisateur.
  • La protection de votre délivrabilité email : Continuer d'envoyer des newsletters à des comptes fantômes détruit votre réputation d'expéditeur (Sender Score). Utilisez last_seen_at pour exclure automatiquement les inactifs de vos envois globaux.
  • La conformité RGPD : Identifiez facilement les comptes inactifs depuis plusieurs années pour les anonymiser ou les supprimer, conformément à la réglementation, via une simple tâche planifiée.

La vision LVLUP

Le meilleur code est celui qu'on n'a pas besoin d'écrire, et la meilleure architecture est celle qui répond au besoin métier sans créer de dette technique. Avec laravel-user-last-seen-at, vous gagnez un temps précieux que vous pouvez réinvestir là où se trouve votre vraie valeur ajoutée.

Vous pouvez retrouver le code source et les instructions d'installation sur notre dépôt GitHub ou sur Packagist.

Vos processus internes (CRM, marketing, gestion des données) méritent des solutions techniques fluides et performantes. Si vous souhaitez auditer vos outils actuels, accélérer le développement de votre application, ou y intégrer des solutions d'Intelligence Artificielle pragmatiques, parlons-en.

Didier Sampaolo
Didier Sampaolo

Fondateur / Directeur technique

À lire aussi

Découvrez d'autres articles sur le même sujet