ADV-02 — Rapport quotidien directeurs marché
| Fonction | Nature | Framework | Score | Statut |
|---|---|---|---|---|
| ADV | Automatisation | n8n | 21 | 🟢 En développement |
Source : atelier ADV 29/07/2026 — escalade humaine du cas ADV-01.
Contexte métier (extrait transcript)
Section titled “Contexte métier (extrait transcript)”- 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) surprofilesn’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.
Objectif du cas d’usage
Section titled “Objectif du cas d’usage”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.
Étapes fonctionnelles détaillées
Section titled “Étapes fonctionnelles détaillées”- Chaque matin à 8h00 : interroger Progessi pour lister tous les CRA non validés du mois courant.
- Joindre avec la table de mapping consultant → directeur de marché.
- Grouper par directeur — chaque directeur = 1 sous-liste.
- 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
- Composer un mail HTML avec tableau (nom, dernière saisie, jours à valider, lien direct Progessi).
- Envoyer un mail à chaque directeur (uniquement ses consultants) + un digest global à Bahija/Vanessa (ADV).
- Détecter les cas stagnants : consultant non-validé depuis 3+ jours consécutifs → mail à son propre N+1 (DAF/direction).
Flot d’appels API
Section titled “Flot d’appels API”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
Confrontation à l’API Progessi réelle
Section titled “Confrontation à l’API Progessi réelle”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 fonctionnel | Endpoint Progessi | Disponible ? | Commentaire |
|---|---|---|---|
| Lister CRA pending du mois | POST /timesheets FilterModel statusCode=DRAFT + periode | ✅ | Champs riches : nbDays, potentialDays, ecart, nbLeaves, nbSickLeaves, intercontract — permet un tableau HTML dense sans requête supplémentaire |
| Récupérer email consultant | GET /profiles/{consultantId} | ✅ | Nécessaire pour tri, personnalisation, lien deep |
| Récupérer manager du consultant | GET /profiles/{consultantId} champ managerId (ou équivalent) | ❓ À qualifier | profiles 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 directeur | GET /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 écriture | Resource bpmTasks accessible en lecture seule — impossible de créer une tâche BPM assignée au DM |
| Détecter stagnation N jours | Recalcul 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 :
- Champ
managerIdsurprofilesnon confirmé — à cadrer avant démarrage du dev. - Aucune écriture Progessi → tout traçage (envois, stagnation, escalades) se fait dans SQLite n8n.
- 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 queprofiles.managerIdn’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 destatusCode. - Digest global à Bahija + Vanessa contient le taux de complétion par BU calculé depuis
nbDays / potentialDayssur la période courante — pas besoin de données supplémentaires. - Un lien “deep” vers la fiche timesheet Progessi est construit à partir de l’
idde la ressourcetimesheets(URL à confirmer avec Progessi mais conventionhttps://proxiad.progessi.com/#/timesheets/{id}documentée dans la spec).
API map — fonctions requises
Section titled “API map — fonctions requises”| # | Étape | Fonction / endpoint | Application | Existe ? | Accès dispo ? | Notes |
|---|---|---|---|---|---|---|
| 1 | Lister CRA pending | GET /timesheets?status=pending | Progessi | ✅ | ✅ | Shortcut progessi_pending_timesheets |
| 2 | Récupérer manager consultant | Champ managerId sur profiles | Progessi | ❓ À qualifier | ✅ (si existe) | Bloquant — session 30 min avec Bahija |
| 3 | Fallback mapping | Table consultant_manager locale | Base n8n | À créer | — | Import CSV mensuel RH si champ Progessi inexistant |
| 4 | Envoyer mail | POST /me/sendMail (× N directeurs) | Microsoft Graph | ✅ | ⚠️ Extension droits | Digest quotidien |
| 5 | Journalisation stagnation | Table stagnation_log | Base n8n | À créer | — | Détecte 3j+ consécutifs pour escalade N+1 |
Prérequis techniques
Section titled “Prérequis techniques”- Idem ADV-01 (compte Progessi + M365 étendu)
- Mapping consultant ↔ directeur disponible (Progessi natif OU CSV mensuel)
- Structure hiérarchique directeur → N+1 pour escalade
Livrables Proxiad attendus
Section titled “Livrables Proxiad attendus”- 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
Timeline estimative
Section titled “Timeline estimative”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
Critères de recette
Section titled “Critères de recette”- 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)
Risques identifiés
Section titled “Risques identifiés”| Risque | Impact | Mitigation |
|---|---|---|
| Mapping consultant↔directeur inexistant Progessi | Blocage v1 | CSV mensuel RH accepté, engagement fiabiliser en v2 |
| Directeurs perçoivent “flicage” | Adoption faible | Ton informatif, comm en amont |
| Escalade N+1 = conflit hiérarchique | Malaise social | Escalade uniquement post-clôture, seuil validé DRH |
Questions ouvertes
Section titled “Questions ouvertes”- 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) ?