Apprenez à planifier, concevoir et construire une application web qui collecte les demandes de service internes, orchestre les approbations, suit les SLA et rapporte la performance en toute sécurité.

Avant de concevoir des écrans ou de choisir une stack, précisez ce que votre application de demandes de service internes résout. La plupart des équipes ont déjà un « système » : il est simplement dispersé entre fils d'email, messages de chat, feuilles de calcul et conversations informelles. Ce mécanisme masque le travail, crée des demandes en double et rend difficile la réponse à une question simple : « Qui est responsable et quand sera‑t‑il fait ? »
Commencez par rédiger une problématique concise et un objectif v1, par exemple : « Fournir un portail unique pour les demandes d’employés pour les accès IT et les réparations Facilities avec une responsabilité claire, des approbations quand nécessaire, et une visibilité des SLA. »
Les demandes internes se regroupent généralement en quelques catégories :
Vous n’avez pas besoin de résoudre tous les cas limites le premier jour, mais choisissez un périmètre de départ clair (par exemple : « Accès IT + réparations Facilities »).
Écrivez en langage simple les points de défaillance actuels :
Cette liste devient votre étoile polaire pour ce que l’application doit corriger.
Définissez vos utilisateurs principaux et ce dont chacun a besoin :
Fixez des objectifs que vous pourrez suivre après le lancement : temps de résolution plus rapide, moins de relances par ticket, vitesse de première réponse accrue, et responsabilité plus claire (par exemple « toute demande a un responsable sous 1 heure ouvrée »). Ces métriques guident les décisions produit et démontrent l’efficacité de l’application.
Avant de concevoir écrans ou workflows, clarifiez qui utilise l’app et ce que chacun est autorisé (et attendu) à faire. La plupart des systèmes de demandes internes échouent parce que les rôles sont flous : les gens ignorent qui est responsable de l’étape suivante, et les demandes rebondissent.
Employé (demandeur)
Les employés doivent pouvoir soumettre une demande en quelques minutes et être assurés qu’elle ne disparaîtra pas.
Approbateur
Les approbateurs contrôlent les dépenses, accès et décisions de politique.
Agent / Résolveur
Les agents sont ceux qui font réellement le travail et communiquent l’avancement.
Admin
Les admins conservent le système organisé et sécurisé.
Pour chaque type de demande, définissez :
Un simple tableau RACI dans votre spécification évite la confusion et facilite les décisions de workflow ultérieures.
Une version v1 du portail doit exceller dans quelques fonctionnalités : permettre aux employés de soumettre des demandes claires, les acheminer rapidement vers la bonne équipe, et tenir tout le monde informé jusqu’à la clôture. Si vous tentez d’inclure tous les cas limites dès le départ, vous retarderez la livraison et manquerez quand même les besoins réels.
Commencez avec un petit ensemble de catégories (ex. Aide IT, Facilities, RH, Achats). Chaque catégorie doit prendre en charge des champs dynamiques pour que le formulaire ne demande que ce qui est pertinent.
Inclure :
Votre v1 doit assurer une affectation prévisible : par catégorie, département, emplacement, ou règles de mots‑clés. Ajoutez la priorité (bas/moyen/haut) et un chemin d’escalade simple (ex. « non assignée 24 h » ou « priorité haute inerte 4 h »). Gardez l’éditeur de règles minimal ; vous pourrez le rendre plus flexible plus tard.
Supportez d’abord l’approbation en une étape (manager ou propriétaire budgétaire). Si les approbations sont critiques, ajoutez des approbations conditionnelles (ex. « > 500 $ nécessite Finance »). Les chaînes multi‑étapes peuvent attendre sauf si elles sont essentielles dès le départ.
Incluez des notifications par email et in‑app pour : demande reçue, assignée, besoin d’info, approuvée/refusée, complétée. Ajoutez des rappels pour les approbateurs et les assignés sur les éléments en retard.
Avant la soumission et dans la liste de demandes, proposez une recherche avec filtres (catégorie, statut, demandeur). Ajoutez « demandes similaires » et des liens vers des pages de connaissances pour que les utilisateurs résolvent des problèmes courants sans ouvrir un ticket.
Un modèle de données clair facilite tout : les formulaires restent cohérents, les workflows peuvent être automatisés, et le reporting devient fiable. Commencez par décider ce qu’est une « demande » dans votre organisation et quels détails doivent être capturés systématiquement.
Gardez le formulaire initial léger mais suffisamment complet pour que l’équipe destinataire puisse agir sans aller‑retour. Un socle pratique inclut :
Les catégories doivent refléter l’organisation du travail (IT, Facilities, RH, Finance), tandis que les sous‑catégories reflètent des types de travail répétables (ex. IT → « Demande d’accès », « Matériel », « Logiciel »). Gardez des noms conviviaux et évitez les doublons (« Onboarding » vs « New Hire Setup »).
Si les choix de catégorie augmentent avec le temps, versionnez‑les plutôt que de renommer silencieusement : cela protège le reporting et réduit la confusion.
Utilisez la validation pour éviter les tickets vagues et les détails manquants :
Choisissez un cycle de vie simple que les équipes ne réinterpréteront pas, et définissez la signification de chaque statut :
Rédigez les règles de transition (qui peut passer en Pending Approval ? quand Waiting for Info est‑il permis ?), et stockez une piste d’audit des changements de statut, assignations, approbations et éditions clés.
Une application de demandes de service réussit ou échoue selon la rapidité avec laquelle les employés peuvent soumettre une demande et la facilité avec laquelle les équipes peuvent la traiter. Avant de construire, esquissez les écrans centraux et les « happy paths » pour chaque rôle : demandeur, approbateur et assigné.
Considérez le formulaire comme un flux guidé, pas une page intimidante. Utilisez des sections pas à pas (ou divulgation progressive) pour que les employés ne voient que ce qui compte pour la catégorie choisie.
Rendez les attentes explicites : indiquez les informations requises, les temps de réponse typiques et la suite une fois soumis. Les infobulles et textes d’aide peuvent prévenir les allers‑retours (« Qu’est‑ce qui compte comme ‘urgent’ ? », « Quels fichiers joindre ?»).
Les personnes qui traitent les demandes ont besoin d’une liste de type boîte de réception avec triage rapide. Incluez des filtres qui correspondent au travail réel :
Concevez les lignes pour répondre à « de quoi s’agit‑il et que dois‑je faire ensuite ? » en un coup d’œil : titre, demandeur, priorité, statut actuel, date d’échéance/indicateur SLA, et action suivante.
La page de détail est le lieu de collaboration. Elle devrait combiner :
Gardez les actions principales visibles (approuver/refuser, assigner, changer le statut) et les actions secondaires accessibles mais non distrayantes.
Préparez l’accessibilité dès les premiers wireframes : navigation au clavier pour toutes les actions, contraste couleur suffisant (ne pas se fier uniquement à la couleur pour les statuts), et labels lisibles compatibles avec les lecteurs d’écran.
Les workflows transforment un simple « formulaire + boîte de réception » en une expérience de service prévisible. Définissez‑les tôt pour éviter que les demandes ne s’enlisent, que les approbations ne soient arbitraires, et pour que chacun sache ce que « terminé » signifie.
Commencez par un chemin de soumission épuré qui réduit les allers‑retours :
Le triage empêche le système de devenir une boîte mail partagée.
Les approbations doivent être politiques et cohérentes :
L’escalade n’est pas une punition ; c’est un filet de sécurité.
Bien faits, ces workflows maintiennent le mouvement des demandes tout en offrant aux employés des résultats prévisibles et aux équipes une responsabilité claire.
Un bon schéma facilite la maintenance, le reporting et l’évolution. Visez un ensemble « noyau » de tables, puis ajoutez des tables de support pour la flexibilité et l’analytics.
Commencez par les tables que vous utiliserez sur presque chaque écran :
Gardez requests.status comme un ensemble contrôlé de valeurs, et stockez les horodatages pour le reporting du cycle de vie.
Pour soutenir différents types de demandes sans créer de nouvelles tables à chaque fois :
Pour une piste d’audit, créez audit_events avec request_id, actor_id, event_type, old_value/new_value (JSON), et created_at. Suivez explicitement les changements de statut, d’assignation et les approbations.
Pour le reporting, utilisez des vues (ou tables dédiées plus tard) comme :
Indexez requests(status, created_at), requests(assigned_team_id) et audit_events(request_id, created_at) pour garder les requêtes fréquentes rapides.
Une application de demandes réussit quand elle est facile à faire évoluer. Votre première version évoluera au fur et à mesure que les équipes ajoutent des types de demandes, étapes d’approbation et règles de SLA — choisissez donc une technologie que votre équipe peut maintenir.
Pour la plupart des outils internes, les choix « sages » gagnent :
Si votre objectif est d’aller encore plus vite (surtout pour un outil interne), envisagez de générer une base de travail avec Koder.ai. C’est une plateforme de « vibe‑coding » où vous décrivez le portail en chat et itérez sur les fonctionnalités (formulaires, files, approbations, notifications) avec un workflow d’agents. Koder.ai cible souvent React en frontend et Go + PostgreSQL en backend, supporte l’export du code source, le déploiement, domaines personnalisés et inclut des snapshots avec rollback — utile quand vous affineZ rapidement l’automatisation des workflows. Les offres vont de Free, Pro, Business à Enterprise pour permettre un pilote avant engagement.
/requests, /approvals, et /attachments. Envisagez GraphQL seulement si votre UI a besoin de vues très flexibles des mêmes données (et si vous êtes prêt à gérer la complexité supplémentaire).Pour l’architecture, un monolithe modulaire est souvent idéal en v1 : une seule application déployable avec modules séparés (requests, approvals, notifications, reporting). C’est plus simple que des microservices tout en gardant des boundaries propres.
Les demandes internes incluent souvent captures, PDF ou documents RH.
La containerisation (Docker) assure des environnements cohérents. Pour l’hébergement, choisissez une plateforme gérée déjà utilisée par l’organisation (PaaS ou Kubernetes). Assurez‑vous que la solution supporte :
Si vous comparez des options, gardez des critères de décision courts et documentés : les mainteneurs futurs vous remercieront.
La sécurité n’est pas une tâche « plus tard » pour une application interne. Même utilisée uniquement par les employés, elle manipule des données d’identité, des détails de demande et parfois des pièces sensibles (RH, finance, accès IT). Quelques fondamentaux précoces évitent de gros retravaux.
Privilégiez le Single Sign‑On (SSO) via SAML ou OIDC pour que les employés utilisent leur compte corporate et pour éviter de stocker des mots de passe. Si l’organisation s’appuie sur un annuaire (Entra ID/Active Directory/Google Workspace), intégrez‑le pour les mises à jour automatisées joiner/mover/leaver.
Rendez l’accès explicite avec un contrôle d’accès basé sur les rôles (RBAC) : demandeurs, approbateurs, agents et admins. Ajoutez une visibilité par équipe pour que chaque groupe de support ne voie que ses demandes, tandis que les employés ne voient que les leurs (et éventuellement celles de leur département).
Utilisez HTTPS partout (chiffrement en transit). Pour les données stockées, chiffrez les champs sensibles et fichiers si nécessaire, et ne mettez pas de credentials dans le code. Utilisez un gestionnaire de secrets (stockage cloud ou vault) et faites des rotations régulières.
Pour les approbations, changements d’accès ou demandes liées à la paie, conservez une piste d’audit immuable : qui a vu, créé, édité, approuvé et quand. Traitez les logs d’audit comme append‑only et restreignez leur accès.
Ajoutez des limites de taux sur les connexions et endpoints clés, validez et assainissez les entrées, et protégez les uploads (vérification de type, limites de taille, scan malware si besoin). Ces bases maintiennent le système fiable face aux erreurs et usages abusifs.
Une application de demandes ne fonctionne que si les gens voient les demandes et y réagissent. Les intégrations font du portail un outil intégré aux routines quotidiennes de l’équipe au lieu d’être « encore un onglet ».
Commencez par un petit ensemble de notifications qui déclenchent l’action :
Gardez les messages courts et incluez des liens profonds vers la demande. Si l’organisation utilise Slack ou Teams, envoyez des notifications chat, mais conservez l’email pour la traçabilité et les utilisateurs hors chat.
Reliez les demandes à l’organisation réelle en synchronisant depuis votre fournisseur d’identité (Okta, Azure AD, Google Workspace). Cela aide pour :
Exécutez la synchro sur un planning et au login, et proposez une sur‑couche admin pour les cas marginaux.
Si les demandes impliquent des visites sur site, interviews ou remises d’équipement, ajoutez une intégration calendrier pour proposer des créneaux et créer des événements une fois approuvés. Traitez les événements calendrier comme dérivés de la demande afin que la demande reste la source de vérité.
Si vous hésitez entre construire et acheter, comparez vos besoins d’intégration avec une option packagée sur /pricing, ou consultez le contexte sur les patterns communs dans /blog/it-service-desk-basics.
Si votre application ne mesure pas la performance, elle ne peut pas s’améliorer. Le reporting vous permet de repérer les goulets d’étranglement, justifier des effectifs et prouver la fiabilité au business.
Commencez par un petit ensemble de métriques SLA compréhensibles de tous.
Temps de première réponse : temps entre la soumission et le premier contact humain (commentaire, demande de clarification, assignation ou mise à jour de statut). Utile pour réduire les « est‑ce que quelqu’un a vu ? ».
Temps de résolution : temps entre la soumission et la clôture. C’est la métrique reflet de la livraison de bout en bout.
Rendez les règles SLA explicites par catégorie et priorité (ex. « Demandes d’accès : première réponse sous 4 heures ouvrées, résolution sous 2 jours ouvrés »). Décidez aussi de ce qui met le chrono en pause : attente du demandeur, approbations tierces, informations manquantes.
Les rapports ne doivent pas vivre seulement dans des tableaux de bord. Agents et leads ont besoin d’écrans opérationnels utiles :
Ces vues transforment le suivi SLA en workflow concret, pas en tableau mensuel.
Utilisez un dashboard léger pour répondre vite aux questions de management :
Rendez les graphiques cliquables pour que les dirigeants puissent creuser jusqu’aux demandes réelles.
Même avec une excellente UI, certains acteurs voudront analyser hors‑ligne. Fournissez des export CSV pour des listes filtrées (par équipe, catégorie, période, statut SLA) afin que finance, ops ou auditeurs puissent travailler sans accès admin.
Un bon lancement pour une application interne est moins une grande annonce qu’un apprentissage contrôlé. Traitez la v1 comme un produit opérationnel à améliorer rapidement, pas comme un système final.
Pilotez avec un département (ou un type de demande) où le volume est significatif mais le risque maîtrisable — ex. demandes d’accès IT ou réparations Facilities. Définissez des critères de succès pour le pilote : temps soumission→résolution, taux d’achèvement, fréquence des corrections manuelles.
Une fois le pilote stable, étendez par vagues : départements supplémentaires, plus de formulaires, puis plus d’automatisation. Maintenez une page « ce qui a changé » ou des notes de version dans l’app pour que les utilisateurs ne soient pas surpris.
Concentrez les tests sur les parcours qui brisent la confiance :
Faites du UAT une checklist alignée sur vos workflows clés : créer, éditer/annuler, approuver/refuser, réassigner, clore, et (si permis) rouvrir.
Si les demandes vivent aujourd’hui dans des feuilles ou emails, décidez quoi importer (éléments ouverts, 90 derniers jours, ou historique complet). Importez au minimum : demandeur, catégorie, horodatages, statut courant et notes nécessaires pour la continuité. Étiquetez clairement les items migrés dans la piste d’audit.
Ajoutez une enquête in‑app sur les demandes fermées (« Été‑elle résolue ? » et « Des problèmes avec le formulaire ?»). Tenez une courte revue hebdomadaire avec les parties prenantes pour prioriser les retours, puis faites du grooming du backlog avec des priorités claires : fiabilité d’abord, ergonomie ensuite, nouvelles fonctionnalités enfin.
Commencez par choisir un périmètre restreint et à fort volume (par exemple, demandes d’accès IT + réparations Facilities). Documentez ce qui ne fonctionne pas aujourd’hui (emails enfouis, responsabilité floue, absence de piste d’audit), définissez vos utilisateurs principaux (demandeurs, approbateurs, agents, admins) et fixez des indicateurs mesurables de réussite (par exemple « chaque demande a un responsable sous 1 heure ouvrée »).
La plupart des demandes internes se regroupent en catégories répétables :
Commencez par les catégories fréquentes et douloureuses, puis étendez une fois que les workflows sont stables.
Utilisez un petit ensemble de rôles explicites avec permissions claires :
Faites en sorte qu’il soit difficile de soumettre une mauvaise demande :
Un formulaire d’entrée de meilleure qualité réduit les relances et accélère le routage et les approbations.
Rendez le routage prévisible et minimal en v1 :
Gardez l’editeur de règles simple ; la sophistication viendra en observant les schémas réels.
Commencez par une approbation en une étape (manager ou propriétaire budgétaire) et ne demandez d’approbations que lorsque la politique l’exige.
Pour évoluer :
Évitez les chaînes multi‑étapes sauf si elles sont critiques pour vos types de demande principaux dès le départ.
Utilisez un cycle de vie petit et partagé avec des significations claires, par exemple :
Documentez les règles de transition (qui peut changer quoi) et conservez une piste d’audit des changements de statut, des réassignations et des approbations afin que les décisions soient traçables.
Traitez-le comme trois écrans centraux plus une vue de détail solide :
Intégrez l’accessibilité dès le début (navigation au clavier, contraste, labels pour lecteurs d’écran).
Un schéma pratique comprend :
Priorisez les fondamentaux en entreprise :
Ajoutez un petit RACI dans votre spec pour que la propriété et les transferts ne soient pas ambigus.
users, roles, user_roles, teams, requests, comments, attachmentscategories, form_fields, request_field_valuesapprovals, sla_policiesaudit_eventsIndexez les requêtes courantes (comme requests(status, created_at) et audit_events(request_id, created_at)) pour que les files et les timelines restent rapides.
Ces choix évitent des ré‑travaux quand arrivent les demandes RH/finance/sécurité.