Skip to content

RH-03 — Surconsommation congés

FonctionNatureFrameworkScoreStatut
RHAutomatisationn8n18*🟠 Vague 2 — API Progessi confirmée ✅

Source : atelier RH 27/08 — “Écart calculé entre jours contractuels, facturés et absences. Suivi CP, RTT, CET, arrêts, formations”.


  • Suivi manuel actuel des écarts entre :
    • Jours contractuels (définis au contrat)
    • Jours facturés au client (CRA validés)
    • Absences réelles (CP, RTT, CET, arrêts maladie, formations)
  • Types de compteurs :
    • CP (congés payés)
    • RTT (compteur standard 208 jours, calcul faux en cas d’arrivée en cours de mois — actuellement corrigé à la main par Sonia Gantou / Clément)
    • CET (compte épargne temps) — absent de Progessi, tenu uniquement dans Nibelis
    • Arrêts maladie
    • Formations
  • Verbatim Maëva Saucerotte : “Sur la fiche de paye, mais pas sur le projet [Progessi]… C’est la paie qui sait combien il y a de…” — les compteurs Progessi ne reflètent pas la paie de manière fiable.
  • Verbatim Maëva : “Le CET, quand quelqu’un prend son CET ou se le fait rémunérer, enfin plutôt prend des congés de son CET, c’est pas décompté [sur Progessi]” — CET non intégré au compteur opérationnel.
  • Verbatim Maëva : “C’est Sonia qui nous dit, ça y est, c’est bon, on a déclenché quelque chose dans le projet-ci, qui fait qu’au 1er janvier, les collaborateurs peuvent avoir leurs RTT sur leur compteur projet-ci” — RTT ouverture manuelle annuelle.
  • Verbatim atelier : “Écart calculé entre jours contractuels, facturés et absences. Suivi des CP, RTT, CET, arrêts, formations et absences non travaillées.”
  • Règles d’imposition (verbatim Maëva) : imposition possible uniquement sur la période estivale, préavis de 2 mois, minimum 10 congés acquis — RH-03 doit alerter en amont pour permettre l’action.
  • Générable depuis Progessi READ ✅ — les données de base (leaves, sickLeaves, timesheets) sont exposées, mais l’agrégation “solde” n’existe pas en tant qu’endpoint : à reconstruire côté n8n.
  • Nibelis reste référence paie — communication systématique : “vue opérationnelle Progessi, référence paye = Nibelis”.
  • Interlocutrice : Sonia Gantou (RTT), Clément (règles paye), Alexandra Delcourt (arbitrage seuils).

Transcripts sources : RH audit Mekorai 27/08/2026 (synthèse + verbatim), restitution DG consolidée vagues 1-2.

Générer mensuellement un rapport de surconsommation par collaborateur/entité/manager, détecter les écarts anormaux (dépassement solde CP/RTT, arrêts maladie YTD élevés, absences non travaillées inhabituelles), alerter Alexandra sur cas critiques, notifier chaque manager pour ses équipes.

Ce que l’API Progessi READ apporte (spec OpenAPI 2026-08-25) :

  • POST /profiles → liste consultants actifs avec businessUnit, legalEntity, hireDate.
  • POST /emplLeaves → congés posés/validés (21 champs : type, dateFrom, dateTo, days, status…).
  • POST /sickLeaves → arrêts maladie (20 champs).
  • POST /timesheets → CRA avec nbDays (jours travaillés), nbLeaves (jours de congés déjà agrégés), nbSickLeaves, potentialDays (jours ouvrés du mois), intercontract, relations producer / businessUnit / legalEntity.
  • POST /timeEntries → détail journalier si besoin de granularité.

Ce qui n’existe PAS côté Progessi et doit être reconstitué côté n8n :

  • Un endpoint agrégé /leave-balanceinexistant. Le solde CP se calcule côté n8n : acquis N-1 + acquis N - consommés (emplLeaves type CP).
  • Le CET — absent de Progessi, tenu uniquement dans Nibelis → afficher un lien Nibelis, ne pas calculer.
  • Un seuil de surconsommation — c’est une règle métier (paramètres n8n) : ex. consommé > solde + tolerance ou arrêts YTD > 15 jours.
  • Le mapping manager — champ managerId sur /profiles à confirmer (bloquant partagé avec ADV-02) ; fallback = CSV mensuel RH.

Ce qui reste manuel :

  • Ouverture annuelle des RTT (Sonia).
  • Régularisation Progessi quand paie détecte un écart CET/CP (Clément).
  • Décisions RH d’imposition estivale.
  1. Cron mensuel début de mois (ex : 5 du mois pour données M-1 complètes).
  2. Extraire depuis Progessi tous les collaborateurs actifs.
  3. Pour chaque collaborateur :
    • Lire compteurs (CP acquis/pris/restants, RTT, CET) — CF widget “Congés” identifié dans data model Progessi
    • Lire absences période (maladie, formations)
    • Lire jours facturés (CRA validés)
    • Calculer :
      • Solde CP consommé vs disponible
      • RTT idem
      • Jours maladie YTD
      • Formations YTD
  4. Détecter surconsommations :
    • CP consommé > solde → surconsommation CP
    • RTT idem
    • Absences maladie > seuil YTD → alerte
  5. Générer rapport : Excel + dashboard web filtrable (entité/manager/type).
  6. Ranking : top consommateurs par type (diffusion limitée DRH).
  7. Alerter RH sur cas critiques.
  8. Notifier managers : chacun reçoit la liste de ses équipes concernées.
  9. Historique : évolution mensuelle des soldes.
flowchart TD
    Cron[Cron mensuel<br/>5 du mois M<br/>periode M-1] --> ListCol[Progessi<br/>POST /profiles<br/>FilterModel active=true<br/>fields: id,email,businessUnit,<br/>legalEntity,hireDate,managerId]
    ListCol --> Loop{Pour chaque<br/>consultant}
    Loop --> Leaves[Progessi<br/>POST /emplLeaves<br/>FilterModel<br/>producerId=X<br/>dateFrom BETWEEN YTD]
    Loop --> Sick[Progessi<br/>POST /sickLeaves<br/>FilterModel<br/>producerId=X YTD]
    Loop --> TS[Progessi<br/>POST /timesheets<br/>FilterModel<br/>producerId=X<br/>period=M-1<br/>fields: nbDays,nbLeaves,<br/>nbSickLeaves,potentialDays,<br/>intercontract]
    Leaves --> Agg[Agregation n8n<br/>CP acquis N-1+N<br/>CP consommes = sum days<br/>type=CP<br/>RTT idem<br/>Maladie YTD = sum sickLeaves]
    Sick --> Agg
    TS --> Agg
    Agg --> Rule{Regle metier<br/>surconsommation ?<br/>consommes > acquis + seuil<br/>OR maladie > 15j YTD}
    Rule -->|Oui| Add[Ligne rapport<br/>+ severite]
    Rule -->|Non| Skip[Skip]
    Add --> Rank[Ranking top<br/>consommateurs<br/>diffusion DRH]
    Rank --> Gen[Excel structure<br/>+ dashboard n8n]
    Gen --> Publish[Graph API<br/>PUT /sites/rh/drive/root:<br/>/surconso-YYYY-MM.xlsx]
    Publish --> AlertRH[Graph API<br/>POST /me/sendMail<br/>DRH cas critiques]
    Publish --> LoopMgr{Pour chaque<br/>manager avec equipe<br/>concernee}
    LoopMgr --> NotifMgr[Graph API<br/>POST /me/sendMail<br/>manager sa liste]
    Publish --> Hist[Graph API<br/>PUT /Historique/<br/>YYYY-MM/surconso.xlsx]
    Agg -.->|CET| NibelisLink[Lien Nibelis<br/>affiche seulement<br/>pas calcule]

Base URL : https://proxiad.progessi.com/api/control/restBasicAuthREAD-ONLY. Pattern : GET /<res>, POST /<res> (FilterModel), GET /<res>/{id}. Toute demande d’écriture passe par clalanne@progessi.com.

Besoin RH-03Endpoint ProgessiFaisabilitéContournement
Lister consultants actifs (avec BU, entité légale)POST /profiles FilterModel active=true✅ 34 fields
Congés posés / validés YTDPOST /emplLeaves FilterModel dateFrom range + type (CP, RTT, CET, formation…)✅ 21 fields
Arrêts maladie YTDPOST /sickLeaves FilterModel dateFrom range✅ 20 fields
CRA validés du mois (jours facturés)POST /timesheets FilterModel period + validated✅ 39 fields, dont nbDays, nbLeaves, nbSickLeaves, potentialDays, intercontract
Solde CP/RTT agrégé❌ Pas d’endpoint /leave-balance🔴 inexistantReconstruction côté n8n : acquis N-1 + acquis N - consommés depuis emplLeaves groupé par type. Règle acquis à formaliser avec Sonia.
CET (compte épargne temps)❌ Non présent sur Progessi🔴 inexistantAfficher lien Nibelis dans la fiche collaborateur du rapport ; ne pas calculer.
Type “formation” comme absence❓ À qualifier — champ type sur emplLeaves OU entité dédiée⚠️ à trancherSession partage écran RH — vérifier le référentiel types dans le widget Congés Progessi.
Mapping manager❓ champ managerId sur /profiles à confirmer⚠️Fallback CSV RH mensuel (mutualisé ADV-02).
Poser/valider un congé automatiquement❌ Aucun POST /emplLeaves en write🔴 impossibleReste manuel dans Progessi. RH-03 se limite à la détection + alerte.
Déclencher un workflow RH d’imposition❌ Pas de BPM exposé🔴 impossibleNotif Alexandra qui pilote manuellement.

Sources externes :

  • Microsoft Graph : envoi mails DRH/manager + publication rapport Excel sur SharePoint RH.
  • Nibelis : source de vérité CET et paye — non intégré dans le calcul, mais mentionné comme référence.

Règles métier côté n8n (à cadrer avec Alexandra + Sonia) :

  • Seuil critique CP : consommé > solde + 2 jours → alerte DRH.
  • Seuil maladie YTD : > 15 jours cumulés YTD → alerte DRH.
  • RTT arrivée en cours d’année : proratisation calculée côté n8n depuis hireDate et compteur standard 208, PAS depuis Progessi (qui donne 208 fixes).
  • Diffusion ranking “top consommateurs” : DRH uniquement (validation cadrage social).
#ÉtapeFonction / endpointApplicationExiste ?Accès dispo ?Notes
1Lister collabs actifsPOST /profiles FilterModel status=activeProgessiShortcut existant
2Solde congésGET /profiles/{id}/leave-balance OU champs sur /profiles/{id}ProgessiÀ qualifierSession 30 min RH — voir widget Congés (transcript t’a montré structure : gainedN1, consumedN, rttBalance…)
3Sick leavesGET /sickLeaves périodeProgessi
4Empl leavesGET /emplLeaves périodeProgessi
5FormationsGET /formations OU champ sur emplLeavesProgessiÀ qualifier — Progessi a une entité formation ?
6CRA validésGET /timesheets?status=validatedProgessi
7Mapping managerChamp managerId sur profilesProgessiIdem ADV-02 — bloquant partagé
8Mail RH + managersPOST /me/sendMailMicrosoft Graph⚠️ Extension droits
9Publication rapportPUT /sites/rh/drive/root:/rapport-M.xlsxMicrosoft Graph⚠️Site SharePoint RH
  • API Progessi ✅ (cartographie précise compteurs à faire)
  • Extension droits M365 (mail + SharePoint)
  • Mapping manager (partagé avec ADV-02)
  • Session partage écran RH : cartographier compteurs Progessi (30 min) — champs gainedN1, consumedN, rttBalance, formations
  • Règles de calcul :
    • Formule CP acquis (N-1 / N)
    • Seuil surconsommation critique (dépassement > X jours ?)
    • Seuil alerte maladie YTD
  • Périmètre entités v1
  • Format rapport préféré (Excel structuré ? dashboard web ?)
  • Ranking manager : diffusion à qui ? (DRH ? managers eux-mêmes ? direction ?)
  • Templates notifs validés
  • Question CET / RTT employeur : intégration en v1 ou report v2 ?

Effort : 3 jours-n8n (API Progessi confirmée, pas de blocage majeur).

  • S+0 : session partage écran RH (30 min)
  • S+1 J1 : shortcut Progessi leave_balance + query jointures
  • S+1 J1 : handler RH-03 + calculs
  • S+1 J2 : génération Excel + dashboard léger
  • S+1 J3 : tests + démo Alexandra
  • S+2 : pilote 1 mois
  • S+3 : mise en production
  • Rapport mensuel généré début de mois, tous collabs actifs présents
  • Surconsommations détectées avec seuils paramétrés
  • Filtres dashboard par entité + manager + type
  • Alerte critique RH fonctionne
  • Notif managers pour leurs équipes uniquement
  • Cohérence Progessi × rapport (contrôle 5 collabs test)
  • Historique mensuel consultable
RisqueImpactMitigation
Compteurs Progessi pas alignés NibelisConfusion RHAvertissement systématique “vue opérationnelle, référence paye = Nibelis”
Sensibilité RGPDBlocage juridiqueDroits par rôle, DPO validation
Trop d’alertes managersAlert fatigueDigest hebdo consolidé, pas alerte par collab
Ranking “top consommateurs” mal perçuMalaise socialDiffusion limitée DRH + validation cadrage DRH
  • Q1 : Compteurs Progessi — endpoint dédié /leave-balance ou champs répartis sur /profiles/{id} ?
  • Q2 : Formation — entité Progessi dédiée /formations ou stockée dans emplLeaves avec type ?
  • Q3 : Manager — même problématique que ADV-02, champ managerId sur profiles ou CSV mensuel RH ?
  • Q4 : Seuil surconsommation critique — définition exacte (dépasse solde de +X jours ? dépasse le mois M+1 ?)
  • Q5 : RTT — cas particulier arrivée en cours de mois (208 jours vs prorata) — géré par le calcul ou juste flag ?
  • Q6 : Ranking managers — quelle diffusion acceptée politiquement ?
  • Q7 : CET — le compte doit-il être remonté ou juste un lien vers Nibelis ?
  • Q8 : Formations — sortent-elles du décompte “surconsommation” (elles sont payées + facturées) ?