Un point en particulier faisait défaut à Qrew par rapport aux logiciels concurrents : l’intégration de services tiers pour faciliter l’import de données. C’est ainsi qu’est né le projet visant à combler ce manque.
Il a donc été convenu que Qrew serait connectable à différents services regroupant l’ensemble des données collaborateurs, tels que Microsoft Azure, le logiciel de paie Silae, Payfit, et encore d’autres. Le but serait de synchroniser les données contenues dans ces services pour importer en un clic l’ensemble de celles-ci sur Qrew.
En charge de ce projet, Microsoft Azure a été le premier service qu’il a fallu que je conceptualise.
Cette partie de l’application allait comporter des enjeux importants en termes de temps et de maintenabilité. Il fallait penser le code de façon évolutive et extensible. L’architecture dans le projet et de la base de données a donc été déterminante avant de penser à la feature elle-même. Je me ferais un plaisir de vous en parler davantage au cours d’un entretien.
Toujours est-il que cela m’a permis de mettre en place une logique applicable à tous les futurs agents de synchronisation (téléchargez le PDF pour mieux voir l’infographie, sinon vous pouvez agrandir l’image ci-dessous depuis Notion) :

Infographie synchronisation.pdf
L’ambition était claire. Je souhaitais pourvoir aux utilisateurs l’interface la plus intuitive possible, mais aussi la plus performante. Nous travaillions avec des clients qui allaient devenir de plus en plus gros, avec en vue probable dans un moyen terme plus de 20.000 collaborateurs sur certains clients grands comptes. Pour anticiper ce besoin, plusieurs éléments ont été mis en place. Une connexion au répertoire Azure AD du client par l’API Microsoft Graph après création de leur côté d’une application de jonction nous autorisant à récupérer les données strictement nécessaires, ce client renseignant alors ses clés sur Qrew de façon complètement sécurisée.
L’intégrateur (n.b.: collaborateur de nos clients ayant les droits d’importer les données de son entreprise, généralement une personne technique) pouvant tracer le statut de connexion à Azure peut alors choisir les comptes qu’il souhaite importer et mettre par la suite à jour automatiquement. Une fois sa configuration en place, il lance alors la première synchronisation manuellement.
Cette action lance de manière asynchrone, via le composant Messenger de Symfony, un script convertissant les utilisateurs Azure en utilisateurs Qrew, tout en s’assurant de conserver le parallèle entre les deux. Cela leur crée dans la foulée un accès au SSO.
Si la synchronisation ne rencontre pas d’erreur critique, la configuration sauvegardée se déclenchera alors ensuite automatiquement. Il suffira de modifier un utilisateur sur Azure pour qu’il se mette à jour sur Qrew. C’est un gain de temps non négligeable pour les RH qui ont bien d’autres missions à accomplir au quotidien ! Qrew se charge également de révoquer les licences des utilisateurs Azure désactivés, de créer des licences automatiquement pour les nouveaux utilisateurs inscrits sur Azure, et s’auto-gère ensuite.
Un dashboard est présent sur l’interface de l’intégrateur lui permettant de tracer scrupuleusement toutes les erreurs critiques qui ont eu lieu mais aussi les erreurs non-critiques, tels qu’un champ invalide, un manager qui n’a pas pu être importé, une erreur quelconque à la création ou à la modification de tel utilisateur,… Il sait alors aisément comment corriger le problème via son interface Azure AD.
Un soin particulier a été apporté à la performance de cette feature, permettant à l’heure actuelle de supporter la création et/ou la modification de 5000 utilisateurs par minute et de préserver les ressources du serveur et l’expérience utilisateur.
Vous souhaitez en savoir plus ? Contactez-moi pour en discuter.