Skip to content

ADV-02 — Rapport quotidien directeurs marché

FonctionNatureFrameworkScoreStatut
ADVAutomatisationn8n21🟢 En développement

Source : atelier ADV 29/07/2026 — escalade humaine du cas ADV-01.


  • Vanessa décrit sa méthode actuelle : “Sur mon périmètre, j’attends quand même le dernier jour du mois avant de les relancer, parce qu’ils peuvent très bien m’en déloger. […] je fais un petit filtre, je fais une capture d’écran et je l’envoie au directeur de marché en leur disant il me manque tant de CRA, est-ce que tu peux voir avec Untel.” Le mail au DM = artisanat manuel, 1 DM à la fois, dernier jour du mois.
  • Vanessa ne relance jamais directement les consultants : “Moi, je relance pas par consultant. Sur mes périmètres, je relance pas du tout les consultants. Je relance les directeurs de marché. C’est vraiment une particularité pour moi.”
  • Question de Dina (co-animatrice) : “Est-ce qu’il est pertinent de regrouper et avoir tous les DM dans un groupe Teams pour dire ‘bonjour, on est le 27, commencez à rappeler vos CRA’ ?”Réponse Vanessa (nette) : “Non.”
  • Vanessa complète : “Tu ne parles pas pareil à Maud qu’à Adriana. […] c’est plus personnalisé, donc du coup il y a plus d’efficacité.” Chaque BU est traitée séparément (ex : envoi à Maud pour Paris, à Adriana pour Aix-en-Provence — communications “totalement différentes”).
  • Gabriel (Mekorai) valide la cible : “Cher directeur d’agence, voici le rapport de tous vos collaborateurs qui n’ont pas encore… en fait, envoyez le mail à votre place, directement au directeur d’agence.”
  • Vanessa remonte quand-même le sujet paye : “Tant qu’on n’a pas tous nos CRA, on ne peut absolument pas sortir [le chiffre d’affaires]” — d’où l’urgence croissante en fin de mois et post-clôture.
  • Structure hiérarchique évoquée : ADV → Directeur de marché (BU) → Commercial mission → Consultant. Mail actuel de Vanessa remonte au DM ; post-clôture, l’escalade paye (Sujita) prend le relais manuel.
  • Zone d’incertitude : le champ managerId (ou équivalent) sur profiles n’a pas été vérifié en séance. Faisabilité du mapping = premier arbitrage à faire avant dev.

Transcripts sources : ADV atelier 29/07/2026 (synthèse + verbatim), restitution consolidée DG vagues 1-2.

Remplacer le mail-capture-d’écran manuel de Vanessa par un digest quotidien lu directement depuis Progessi et groupé par directeur de marché. Chaque DM reçoit un tableau HTML personnalisé avec ses consultants pending (nom, jours saisis vs potentiels, écart, dernière saisie, indicateur intercontrat) — le DM garde la main sur la manière de relancer individuellement. En parallèle, digest global consolidé pour l’ADV (Bahija + Vanessa) avec taux de complétion par BU. Aucune écriture Progessi côté n8n : la validation reste la responsabilité du consultant + DM. Escalade au N+1 uniquement post-clôture, sur seuil à valider avec DRH.

  1. Chaque matin à 8h00 : interroger Progessi pour lister tous les CRA non validés du mois courant.
  2. Joindre avec la table de mapping consultant → directeur de marché.
  3. Grouper par directeur — chaque directeur = 1 sous-liste.
  4. Adapter le ton selon la période :
    • J-8+ (début de mois) : ton informatif
    • J-3 à J-1 : ton alerte
    • Post-clôture (J+1 à J+3 mois suivant) : ton urgence + escalade paye
  5. Composer un mail HTML avec tableau (nom, dernière saisie, jours à valider, lien direct Progessi).
  6. Envoyer un mail à chaque directeur (uniquement ses consultants) + un digest global à Bahija/Vanessa (ADV).
  7. Détecter les cas stagnants : consultant non-validé depuis 3+ jours consécutifs → mail à son propre N+1 (DAF/direction).
flowchart TD
    Cron[Cron n8n 8h00 tous les jours] --> Pending[Progessi<br/>POST /timesheets<br/>FilterModel statusCode=DRAFT<br/>+ periodStart=currentMonth<br/>sortModel lastUpdate desc]
    Pending --> Enrich[Pour chaque timesheet<br/>lire nbDays, potentialDays,<br/>ecart, intercontract]
    Enrich --> Profile[Progessi<br/>GET /profiles/consultantId<br/>recup email, managerId]
    Profile --> HasMgr{managerId<br/>renseigne ?}
    HasMgr -->|Oui| Mgr[Progessi<br/>GET /profiles/managerId]
    HasMgr -->|Non| Fallback[SQLite n8n<br/>consultant_manager_csv<br/>import mensuel RH]
    Mgr --> GroupBy[Group by directeur BU]
    Fallback --> GroupBy
    GroupBy --> Period{Periode mois ?}
    Period -->|J-8+ debut| TplInfo[Template info]
    Period -->|J-3 a J-1| TplAlert[Template alerte]
    Period -->|Post-cloture J+1 a J+3| TplUrgent[Template urgent]
    TplInfo --> Compose[Compose HTML<br/>tableau par directeur<br/>lien deep Progessi]
    TplAlert --> Compose
    TplUrgent --> Compose
    Compose --> Send[Graph<br/>POST /me/sendMail<br/>x N directeurs]
    Send --> Digest[Digest global ADV<br/>Graph POST /me/sendMail<br/>vers Bahija et Vanessa]
    Digest --> CheckStag[SQLite n8n<br/>stagnation_log<br/>compte jours consecutifs]
    CheckStag --> Stagnant{Stagnants<br/>3j+ ?}
    Stagnant -->|Oui + post cloture| N1[Graph<br/>POST /me/sendMail<br/>vers N+1 du directeur]
    Stagnant -->|Non| Log[(SQLite n8n<br/>trace envoi)]
    N1 --> Log

Vérification faite contre la spec OpenAPI progessi-read-api.json (reçue 2026-08-25). Rappel : mode READ-only, BasicAuth, base https://proxiad.progessi.com/api/control/rest.

Besoin fonctionnelEndpoint ProgessiDisponible ?Commentaire
Lister CRA pending du moisPOST /timesheets FilterModel statusCode=DRAFT + periodeChamps riches : nbDays, potentialDays, ecart, nbLeaves, nbSickLeaves, intercontract — permet un tableau HTML dense sans requête supplémentaire
Récupérer email consultantGET /profiles/{consultantId}Nécessaire pour tri, personnalisation, lien deep
Récupérer manager du consultantGET /profiles/{consultantId} champ managerId (ou équivalent)❓ À qualifierprofiles expose 34 champs — présence du champ hiérarchique à vérifier en séance 30 min avec Bahija et Progessi
Récupérer email du directeurGET /profiles/{managerId}✅ (si managerId existe)Même endpoint, deuxième appel
Fallback mapping consultant → directeur❌ (côté Progessi)Si managerId absent → CSV mensuel RH importé dans SQLite n8n (consultant_manager_csv)
Marquer “relance directeur envoyée”Write API absent — traçage côté n8n obligatoire
Notifier le directeur DANS Progessi (tâche BPM)bpmTasks❌ en écritureResource bpmTasks accessible en lecture seule — impossible de créer une tâche BPM assignée au DM
Détecter stagnation N joursRecalcul quotidien via POST /timesheets + comparaison avec traces n8n✅ (contournement)Le status DRAFT ne renseigne pas depuis combien de temps — on compare aux traces stockées
Structure hiérarchique complète (N+1)❌ (côté Progessi)Modèle Progessi ne semble pas exposer d’organigramme profond — table locale n8n obligatoire

Bloquants API :

  1. Champ managerId sur profiles non confirmé — à cadrer avant démarrage du dev.
  2. Aucune écriture Progessi → tout traçage (envois, stagnation, escalades) se fait dans SQLite n8n.
  3. Pas d’organigramme complet exposé → escalade N+1 dépend d’une table locale alimentée par RH.

Contournements retenus :

  • Table locale consultant_manager (consultant_id, manager_id, manager_email, escalation_n1_email) alimentée par CSV mensuel RH (le 1er du mois) tant que profiles.managerId n’est pas confirmé.
  • Table stagnation_log (consultant_id, first_pending_date, days_pending, last_reminder_sent_at) pour détecter les 3 jours consécutifs sans changement de statusCode.
  • Digest global à Bahija + Vanessa contient le taux de complétion par BU calculé depuis nbDays / potentialDays sur la période courante — pas besoin de données supplémentaires.
  • Un lien “deep” vers la fiche timesheet Progessi est construit à partir de l’id de la ressource timesheets (URL à confirmer avec Progessi mais convention https://proxiad.progessi.com/#/timesheets/{id} documentée dans la spec).
#ÉtapeFonction / endpointApplicationExiste ?Accès dispo ?Notes
1Lister CRA pendingGET /timesheets?status=pendingProgessiShortcut progessi_pending_timesheets
2Récupérer manager consultantChamp managerId sur profilesProgessiÀ qualifier✅ (si existe)Bloquant — session 30 min avec Bahija
3Fallback mappingTable consultant_manager localeBase n8nÀ créerImport CSV mensuel RH si champ Progessi inexistant
4Envoyer mailPOST /me/sendMail (× N directeurs)Microsoft Graph⚠️ Extension droitsDigest quotidien
5Journalisation stagnationTable stagnation_logBase n8nÀ créerDétecte 3j+ consécutifs pour escalade N+1
  • Idem ADV-01 (compte Progessi + M365 étendu)
  • Mapping consultant ↔ directeur disponible (Progessi natif OU CSV mensuel)
  • Structure hiérarchique directeur → N+1 pour escalade
  • Liste directeurs de marché avec adresses mail + périmètre consultants
  • Mapping consultant → directeur (source à qualifier : Progessi champ managerId ? CSV mensuel RH ?)
  • Structure hiérarchique : N+1 de chaque directeur
  • Heure envoi préférée (8h00 confirmé ? Avant réunion hebdo lundi ?)
  • Format préféré (HTML riche ? Texte simple ?)
  • Seuils calendaires (quand début période “alerte” ? quand “urgence” ?)
  • Seuil escalade N+1 (3 jours confirmé ?)
  • Templates 3 versions (info/alerte/urgence) validés DRH + directeurs

Effort dev : 2 jours-n8n (si mapping existe dans Progessi ; +1 j si CSV manuel).

Jalons :

  • S+0 : qualification mapping (30 min avec Bahija)
  • S+1 J1 : dev workflow + templates
  • S+1 J2 : tests + démo directeurs
  • S+2 : pilote 3 directeurs volontaires
  • S+3 : mise en production toutes équipes
  • Chaque directeur reçoit 1 mail à 8h00 avec UNIQUEMENT ses consultants
  • Un directeur sans CRA pending reçoit “aucune action requise” (confirme que le système marche)
  • Ton mail évolue selon période (info / alerte / urgence)
  • Digest global ADV avec % complétion par directeur
  • Consultant stagnant 3j+ → mail N+1 (1 fois seulement, pas spam)
RisqueImpactMitigation
Mapping consultant↔directeur inexistant ProgessiBlocage v1CSV mensuel RH accepté, engagement fiabiliser en v2
Directeurs perçoivent “flicage”Adoption faibleTon informatif, comm en amont
Escalade N+1 = conflit hiérarchiqueMalaise socialEscalade uniquement post-clôture, seuil validé DRH
  • Q1 : Le champ manager existe-t-il dans Progessi ? À investiguer AVANT dev
  • Q2 : Si CSV mensuel, qui l’envoie et quand (RH le 1er du mois ?)
  • Q3 : Heure d’envoi — 8h00 est-il avant la réunion hebdo lundi de la plupart des directeurs ?
  • Q4 : Périmètre — tous les directeurs de marché ou pilote sur quelques-uns d’abord ?
  • Q5 : Digest global ADV — envoyé à Bahija + Vanessa uniquement, ou aussi Sonia (DAF) ?