Ce que j'ai construit cette semaine : Modules Perfex CRM et UX Admin
Cette semaine, j'ai construit deux modules Perfex CRM et un passage plus large sur l'UX admin de Perfex CRM. Ce n'était pas une grande fonctionnalité. C'était un nettoyage pratique du travail qui ralentit une équipe CRM chaque jour : trouver le bon contexte, filtrer les listes sans se souvenir de chaque champ, parcourir les tables sur mobile et expédier des mises à jour de modules sans deviner.
La partie importante est que j'ai gardé le travail proche de Perfex CRM au lieu de construire un deuxième système à côté. Les nouvelles pièces sont des modules, des hooks, des améliorations de listes et des vérifications de sortie qui s'intègrent dans le flux de travail admin existant.
Idée principale : Garder Perfex natif, rendre le travail plus rapide
La couche admin de Perfex CRM vit déjà à l'intérieur de Perfex CRM, donc l'objectif n'était pas de remplacer Perfex. L'objectif était de supprimer les frictions autour de cela.
Un CRM devient généralement désordonné de petites manières. Les tables deviennent difficiles à parcourir. Le contexte des emails se trouve en dehors du lead. Les filtres sont puissants, mais le personnel doit connaître les champs exacts avant de pouvoir les utiliser. Les pages admin mobiles fonctionnent techniquement, mais elles ressemblent à des pages de bureau compressées dans un téléphone.
C'est ce sur quoi j'ai travaillé cette semaine. Deux constructions de modules étaient les plus importantes : Historique des Emails et Filtres AI.
Ce qui a changé en termes pratiques
Le travail se divise en quatre améliorations pratiques : meilleur contexte client, filtrage CRM plus rapide, tables admin plus propres et mises à jour de modules plus sûres. L'Historique des Emails gère le problème de contexte. Les Filtres AI gèrent le problème de recherche et de segmentation. Le passage DataTables rend les écrans admin quotidiens plus faciles à parcourir. Les portes de sortie réduisent le risque d'expédier une mise à jour de module Perfex CRM défectueuse.
Pour la recherche, le sujet principal est les modules Perfex CRM, mais l'intention réelle est plus large : les équipes veulent une automatisation CRM qui ne fuit pas de données, ne casse pas les flux de travail natifs ou ne force pas le personnel à apprendre un nouveau tableau de bord.
Module 1 : Historique des Emails pour Perfex CRM
Le module Historique des Emails ajoute une vue de conversation en lecture seule aux leads et clients de Perfex.
Le module importe les messages correspondants à partir de boîtes mail IMAP configurées ou d'un répertoire .eml, puis lie les messages uniquement lorsque le participant externe correspond exactement à un email de contact de lead ou de client dans Perfex. Cette règle de correspondance exacte est importante. Elle garde le module utile sans le transformer en un index de recherche d'emails lâche.
Le module n'envoie pas de mail, ne répond pas aux mails, ne supprime pas de mails et ne marque pas les messages comme lus. Il est construit comme preuve et contexte, pas comme une autre boîte de réception.
Pour l'écran des leads, la partie utile est simple : lorsque j'ouvre un lead, je peux voir le dernier contexte d'email accessible sans quitter le CRM. Le même contexte peut également soutenir les décisions de prochaines étapes dans le profil du lead. Si un lead est devenu silencieux, si le dernier email change le statut, ou si le membre du personnel a besoin d'un rappel de la dernière vraie conversation, la vue CRM a la preuve à proximité.
J'ai également ajouté des limites plus strictes autour des emails internes. Le module prend en charge les emails ignorés du même domaine et d'autres domaines d'entreprise internes, de sorte que les conversations internes ne polluent pas la vue de l'historique client. Les données d'audit existantes ne sont pas supprimées simplement parce que les règles de visibilité changent.
La gestion des données est intentionnellement conservatrice. Elle stocke du texte brut, des participants, des en-têtes nécessaires pour la vue et les relations CRM exactes. Elle ne stocke pas les pièces jointes, ne rend pas HTML, ne charge pas d'images distantes, ne fait pas fonctionner de pixels de suivi ou ne montre pas d'iframes. Les identifiants sont cryptés, et les importations peuvent être exécutées en mode test avant d'appliquer les changements.
C'est le genre d'automatisation CRM en laquelle j'ai plus confiance : en lecture seule là où cela doit être en lecture seule, correspondance stricte là où une correspondance lâche créerait du bruit, et suffisamment d'auditabilité pour comprendre ce qui s'est passé.
Module 2 : Filtres AI pour Perfex CRM
Le deuxième module est Filtres AI pour Perfex CRM.
L'idée est simple : un membre du personnel décrit la liste qu'il veut en langage clair, et le module convertit cette demande en règles de filtre Perfex natives.
C'est utile car les CRM ont déjà une logique de filtrage, mais les utilisateurs n'oublient souvent pas où se trouve chaque champ. Ils savent ce qu'ils veulent : des factures en retard, des leads de haute valeur d'une source, des projets actifs avec un statut spécifique, des tickets qui nécessitent de l'attention. Le module transforme cette intention en système de filtre existant au lieu d'inventer une couche de recherche séparée.
La limite de sécurité est la principale fonctionnalité. Le module envoie la demande de l'utilisateur et les définitions de filtre disponibles à OpenAI. Il n'envoie pas les lignes de la liste filtrée. Il n'envoie pas de filtres enregistrés en tant que données. Le modèle ne peut pas retourner SQL, code exécutable, rappels bruts ou noms de colonnes arbitraires. Le serveur valide la sortie par rapport à une liste d'autorisation avant d'appliquer quoi que ce soit.
L'interface utilisateur est également construite autour de la récupération. Si la demande AI échoue, le filtre actuel de l'utilisateur et le texte tapé restent intacts. Effacer le filtre AI restaure l'état exact avant le filtre AI. Le bouton de baguette est là pour la vitesse, mais le résultat reste dans le comportement de filtre natif de Perfex.
J'ai également déplacé la configuration du module dans la zone des paramètres natifs de Perfex, ajouté la gestion des clés API écriture seule cryptées, et resserré le nettoyage de désinstallation autour des autorisations de rôle. Pour les mises à jour de sortie, le module vérifie les actifs de sortie GitHub immuables, les métadonnées de version, le hachage SHA-256, les chemins d'archive, la syntaxe PHP et le comportement d'échange sur le même système de fichiers avant de remplacer les fichiers.
Cela semble ennuyeux jusqu'à ce qu'une mise à jour de module CRM se passe mal. Alors c'est la seule chose qui compte.
Les listes admin ont reçu le plus grand passage visuel
La partie visible de la semaine était l'UX de la liste admin.
J'ai travaillé sur un design de carte compacte pour DataTables à travers la couche admin de Perfex CRM. L'objectif était de rendre les écrans de liste plus faciles à parcourir sans changer la source de données sous-jacente. Les en-têtes ont obtenu des indicateurs de tri plus propres. Les colonnes de tri actives montrent maintenant une flèche d'accentuation plus forte, tandis que les colonnes non triées gardent un indice plus léger. Les actions de ligne ont été compressées dans un petit menu là où cela avait du sens, et le débordement des tags utilise maintenant un modèle +N au lieu d'étirer la ligne.
Les leads ont également obtenu une structure plus forte. Le statut a été avancé, les actions de contact sont devenues une colonne d'icônes plus claire, et la source a été déplacée plus tard où elle appartient. Cela rend le tableau plus lisible comme une file d'attente de travail au lieu d'une exportation brute de base de données.
J'ai également corrigé la douleur de cache autour du CSS admin en utilisant une URL custom.css versionnée md5. C'était un petit changement avec un grand effet : le cache du navigateur immuable ne devrait pas laisser le personnel regarder une ancienne feuille de style après qu'une correction UX ait été expédiée.
Travail Admin Mobile
Un admin CRM ne devrait pas s'effondrer sur un téléphone.
Cette semaine a inclus des passages mobiles à travers les clients, les leads, les projets, les tâches, les factures, les dépenses et les estimations. J'ai resserré les colonnes clés, les cibles tactiles, les entrées, le contraste de pagination, les afférences de défilement sur le bord droit, les anneaux de mise au point et le comportement en mode sombre.
Il ne s'agit pas de faire en sorte qu'un CRM ressemble à une application grand public. Il s'agit de rendre le travail admin rapide possible lorsque quelqu'un est loin d'un bureau. Si un utilisateur a seulement besoin de vérifier un lead, de parcourir une facture ou de mettre à jour une tâche, la page ne devrait pas le punir pour l'avoir ouverte sur mobile.
La recherche de la base de connaissances a été reconstruite
La liste de la base de connaissances a également reçu un véritable passage de recherche.
J'ai ajouté un héros de recherche central, un compte en direct, un surlignage, un comportement Entrée et Échap, et un raccourci clavier. Cela transforme la base de connaissances d'une liste statique en quelque chose de plus proche d'un outil interne. Le personnel devrait être en mesure de trouver la bonne réponse rapidement, surtout lorsqu'il est déjà dans un flux de travail client.
La prochaine étape du lead est devenue plus utile
Le widget de prochaine étape du lead a maintenant un meilleur contexte avec lequel travailler. L'Historique des Emails peut fournir un contexte de communication récent, tandis que le flux de travail garde la décision proche du profil du lead.
C'est la direction que j'aime pour l'IA dans le travail CRM. L'IA ne devrait pas flotter au-dessus du système. Elle devrait se trouver à côté de l'enregistrement réel, utiliser un contexte étroit, expliquer la prochaine action et laisser l'utilisateur aux commandes.
Les portes de sortie et les tests comptent plus que l'UI
Le travail moins visible cette semaine pourrait être le plus important.
J'ai durci l'emballage des modules et les portes de sortie, ajouté des vérifications autour des migrations de l'Historique des Emails, testé le comportement de l'importateur, couvert l'emballage des Filtres AI, et ajouté des vérifications locales TLS et de déploiement autour de l'environnement du panneau.
La leçon est simple : les améliorations de l'UX admin ne sont crédibles que lorsque le chemin de sortie est ennuyeux. Une belle peau de tableau ne suffit pas si les mises à jour de modules sont fragiles. Un filtre AI utile ne suffit pas si le modèle peut pousser une sortie de filtre non sécurisée. Le contexte des emails n'est pas suffisant si le module stocke trop ou lie les messages trop lâchement.
Ainsi, le travail était divisé entre la surface produit et la discipline opérationnelle : de meilleurs écrans, des modules plus stricts, des mises à jour plus sûres et des modes de défaillance plus petits.
Ce que j'ai retenu de cette semaine
La meilleure personnalisation de Perfex CRM n'est pas celle qui montre le plus de code personnalisé. C'est celle qui rend le CRM existant plus affûté sans casser la façon dont les équipes travaillent déjà.
L'Historique des Emails rend l'enregistrement CRM plus complet. Les Filtres AI rendent les vues de liste plus faciles à utiliser. Le travail sur les tables admin rend le balayage quotidien plus rapide. Les corrections mobiles rendent les mêmes flux de travail moins douloureux loin du bureau. Les portes de sortie rendent le travail plus sûr à expédier.
C'est la version de l'automatisation CRM AI que je veux continuer à construire : étroite, utile, testable et liée au travail admin réel.