ADV-01 — Relances CRA J-3/J-2/J-1
| Fonction | Nature | Framework | Score | Statut |
|---|---|---|---|---|
| Administration des ventes | Automatisation | n8n (appels API directs) | 22 (le plus haut) | 🟢 En développement — cible prod septembre 2026 |
Source : atelier ADV 29/07/2026 (Bahija Berradi, Vanessa Bessaguet, Dina Jak, Gabriel Ohana, Sonia Gantou) — synthèse + transcript verbatim.
Contexte métier (extrait transcript)
Section titled “Contexte métier (extrait transcript)”- ~300 relances CRA par mois — volumétrie confirmée en séance sur tout le périmètre
- Aujourd’hui 100% manuelles, canaux dispersés : mail Proxiad, mail mission, mail perso, Teams, SMS, WhatsApp
- Deux méthodes ADV coexistent :
- Vanessa : “Moi, je relance pas par consultant. Sur mes périmètres, je relance pas du tout les consultants. Je relance les directeurs de marché.” Elle attend le dernier jour du mois pour envoyer une capture d’écran filtrée au DM concerné.
- Bahija : “Alors moi, j’ai un annuaire, justement, où j’ai toutes les adresses mail de mes consultants avec leur code. […] je fais un tri et j’envoie uniquement aux collaborateurs qui n’ont pas réalisé le CRA.” → mail groupé dont la liste se réduit à mesure des validations.
- Diagnostic Dina (consultante Bordeaux, co-animatrice) : “Le souci côté collaborateur […] la journée on est en mission, on y pense, on met un rappel dans notre outlook […] mais comme tout le monde, on est pris par la mission et vu qu’il faut changer d’outil entre ce qu’on a en mission et l’outil Projet-C […] on le fait plus tard.”
- Dina complète : “Le souci du mail, c’est qu’on n’ouvre pas le mail Proxiad quand on est en mission. Donc, il faut choper tous les mails mission.”
- Chiffre de couverture cité par Gabriel : “Quand on envoie des mails […] sur les adresses Proxiad, on a 10% de clics.”
- Pratiques hétérogènes par région : “Sur Strasbourg, ils appellent les consultants. Sur Lyon, elle appelle aussi les consultants. Chacun fait vraiment selon comme il veut.” (Bahija/Vanessa)
- Cité par quasiment tous les répondants de l’audit — c’est l’irritant transversal n°1 (restitution DG vagues 1-2)
- ADV = point de centralisation ; toute la chaîne aval est bloquée tant que les CRA ne sont pas validés (paye, CDG facturation, sortie chiffre d’affaires)
- Sous-traitants : “Il y en a qui n’ont pas d’accès à Projet-CI, donc ils nous envoient leur CRA dans un papier” (Bahija). Sous-traitants = ~40% du CA — couverture spécifique à prévoir (adresses mail hétérogènes, pas de licences Teams)
Ambition affichée (Dina) : “Je pense qu’on va résoudre 60% de la problématique, il y aura les gens qui vont le faire, mais il y aura peut-être les derniers 10% qu’il faut quand même faire en follow-up humain” — donc ~30% de zone grise à explorer via sondage canaux.
Transcripts sources : ADV atelier 29/07/2026 (synthèse + verbatim), restitution consolidée DG vagues 1-2, cadrage ateliers Discover 28-29 juillet.
Objectif du cas d’usage
Section titled “Objectif du cas d’usage”Détecter chaque jour, à partir des données Progessi lues via l’API REST, les feuilles de temps non validées pour la période en cours, croiser avec congés et arrêts maladie pour éliminer les faux positifs, puis pousser une séquence J-3 / J-2 / J-1 sur le canal préféré du consultant (mail Proxiad, mail mission, événement Teams-Outlook, SMS optionnel). L’automatisation ne peut PAS valider un CRA à la place du consultant — le Write API Progessi n’est pas exposé aujourd’hui — mais elle supprime la charge de détection et d’expédition côté ADV. Ambition Dina : 60% de complétion sans main humaine, 30% de zone grise à qualifier via sondage, 10% de suivi humain irréductible.
Étapes fonctionnelles détaillées
Section titled “Étapes fonctionnelles détaillées”- Détecter les retardataires : chaque jour à 8h30 et 17h45, interroger Progessi pour obtenir la liste des consultants dont le CRA du mois courant n’est pas validé.
- Filtrer les exclusions : retirer les consultants en arrêt maladie, en congés > 5 jours du mois, ou déjà relancés sur ce canal ce jour.
- Récupérer le canal préféré de chaque consultant (issu du sondage Dina, stocké dans une base de config).
- Composer le message avec le template correspondant à la période (J-3 informatif → J-1 urgent) et injecter les variables (prénom, jours restants).
- Envoyer sur le canal :
- Mail Proxiad ou mail mission → via Outlook API
- Teams → événement calendrier “Valider ton CRA — 5 min”
- SMS → via provider externe (si retenu — pas encore validé)
- Journaliser l’envoi (consultant, canal, timestamp, contenu).
- Le lendemain matin, vérifier si le CRA a été validé depuis. Si oui → clore. Si non → passer à la relance suivante.
- À J-1 midi : les CRA toujours pending sont transmis à l’automatisation ADV-02 (rapport quotidien directeurs).
- Post-clôture (J+1 à J+3 du mois suivant) : mail ultime “à valider avant coupure paie” + escalade directeur.
Flot d’appels API
Section titled “Flot d’appels API”flowchart TD
Cron[Cron n8n J-3, J-2, J-1<br/>8h30 et 17h45] --> Pending[Progessi<br/>POST /timesheets<br/>FilterModel statusCode=DRAFT<br/>+ periodStart=currentMonth]
Pending --> Loop[Pour chaque timesheet]
Loop --> Sick[Progessi<br/>POST /sickLeaves<br/>overlap periode + consultantId]
Loop --> Leaves[Progessi<br/>POST /emplLeaves<br/>overlap periode + consultantId]
Sick --> Filter{Exclusion ?}
Leaves --> Filter
Filter -->|Arret ou conge long| Skip[Skip et trace]
Filter -->|OK| Profile[Progessi<br/>GET /profiles/consultantId<br/>recup email + code]
Profile --> Pref[SQLite n8n<br/>consultant_channel_pref]
Pref --> Compose[Template J-3 info,<br/>J-2 alerte, J-1 urgent]
Compose --> Route{Canal prefere ?}
Route -->|Mail Proxiad| Mail[Graph<br/>POST /me/sendMail<br/>+ ICS event 15 min]
Route -->|Mail mission| Mail
Route -->|Teams event| Event[Graph<br/>POST /me/events<br/>isOnlineMeeting=true]
Route -->|SMS| Sms[Provider SMS<br/>POST /messages]
Route -->|Sous-traitant| Mail
Mail --> Trace[(SQLite n8n<br/>cra_relance_log)]
Event --> Trace
Sms --> Trace
Trace --> Next[Attente cycle suivant]
Next -.J-1 midi.-> Escalade[Declenche ADV-02<br/>digest directeurs]
Next -.-> Recheck[Progessi<br/>POST /timesheets<br/>recheck statusCode 2s avant envoi]
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, base https://proxiad.progessi.com/api/control/rest, BasicAuth, read-only).
| Besoin fonctionnel | Endpoint Progessi | Disponible ? | Commentaire |
|---|---|---|---|
| Lister les CRA non validés du mois | POST /timesheets avec FilterModel { statusCode = "DRAFT" } + filtre periodStart | ✅ | 39 champs sur timesheets dont statusCode, nbDays, potentialDays, ecart, nbLeaves, nbSickLeaves, intercontract |
| Récupérer email + code consultant | GET /profiles/{id} | ✅ | 34 champs dont email — remplace l’annuaire Excel de Bahija |
| Détecter arrêt maladie chevauchant | POST /sickLeaves avec FilterModel dates | ✅ | Filtre exclusion, évite les faux positifs |
| Détecter congés chevauchants | POST /emplLeaves avec FilterModel dates | ✅ | Idem — attention au consultant en congés partiels |
| Récupérer nom de mission / client | GET /projects/{id} via lien depuis timesheet | ✅ | Utile pour personnaliser le mail |
| Valider un CRA à la place du consultant | — | ❌ | Write API absent de la spec progessi-read-api.json — demande envoyée à clalanne@progessi.com, non répondue à date |
| Marquer un CRA comme “relance envoyée” | — | ❌ | Aucun champ writable — traçage obligatoire côté n8n (SQLite cra_relance_log) |
| Poser un congé pour un consultant | — | ❌ | Idem — dépose reste manuelle dans Progessi |
| Récupérer mail mission (client) | — | ❌ | Champ non exposé — dépend du formulaire ADV à mettre en place (proposition Dina) |
| Récupérer canal préféré consultant | — | ❌ | Concept Mekorai — stocké dans SQLite n8n, alimenté par sondage Dina |
Bloquants API :
- Aucun endpoint d’écriture Progessi → impossible d’automatiser la validation elle-même ni d’annoter la fiche timesheet.
- Mail mission absent du modèle
profiles→ collecte parallèle via formulaire de démarrage mission (livrable Proxiad). - Canal préféré non natif → base locale n8n alimentée par sondage Google Forms Dina.
Contournements retenus :
- Traçage complet des envois dans SQLite local à n8n (
cra_relance_log: consultant_id, canal, timestamp, template, statut retour). - Re-check
POST /timesheets~2s avant chaque envoi pour éviter de relancer un consultant qui vient de valider. - Sondage Dina alimente une table
consultant_channel_pref(consultant_id, canal, mail_mission, phone_pro). - Sous-traitants sans compte Progessi → import CSV mensuel ADV en fallback (ils envoient CRA papier aujourd’hui).
API map — fonctions requises
Section titled “API map — fonctions requises”| # | Étape | Fonction / endpoint | Application | Existe ? | Accès dispo ? | Notes |
|---|---|---|---|---|---|---|
| 1 | Lister CRA non validés | GET /timesheets avec filtres status=pending, period=current_month | Progessi | ✅ Oui (documenté) | ✅ Compte service confirmé | Utiliser shortcut progessi_pending_timesheets de notre MCP |
| 2 | Récupérer profil consultant | GET /profiles/{id} (pour email + mission) | Progessi | ✅ Oui | ✅ Confirmé | Nécessaire pour mail mission |
| 3 | Détecter arrêt maladie | GET /sickLeaves overlap période | Progessi | ✅ Oui | ✅ Confirmé | Filtre exclusion |
| 4 | Détecter congés | GET /emplLeaves overlap période | Progessi | ✅ Oui | ✅ Confirmé | Filtre exclusion |
| 5 | Envoyer mail | POST /me/sendMail | Microsoft Graph (M365) | ✅ Oui (natif) | ⚠️ Extension droits demandée 27/08 | Nécessite profils MekorAI + boîte émettrice cra-relance@proxiad.com |
| 6 | Créer événement Teams | POST /me/events avec isOnlineMeeting=true | Microsoft Graph | ✅ Oui | ⚠️ Idem | Événement calendrier 15 min |
| 7 | Envoyer SMS | POST /messages | Provider tiers (Twilio / OVH SMS / autre) | ✅ Oui | 🔴 Aucun contrat aujourd’hui | À arbitrer avec Proxiad — coût + choix provider |
| 8 | Stocker préférences canal | Table consultant_channel_pref | Base n8n interne | À créer | — | Alimentée post-sondage Dina |
| 9 | Journalisation | Table cra_relance_log | Base n8n interne | À créer | — | Audit conformité |
Prérequis techniques
Section titled “Prérequis techniques”- Habilitation prestataire MekorAI (NDA + PSSI signés) — cf.
00_SCOPE_TRANSVERSE.md - Compte service Progessi ✅ confirmé
- Profils utilisateurs Microsoft étendus (demande 27/08 en cours)
- Boîte mail dédiée
cra-relance@proxiad.comà créer (traçabilité + possibilité désabonnement) - Instance n8n déployée on-prem Proxiad (à confirmer emplacement — même serveur que plateforme Abra ?)
- Provider SMS choisi + contrat + budget (si canal SMS retenu par sondage)
Livrables Proxiad attendus
Section titled “Livrables Proxiad attendus”- Résultat sondage canaux Dina — Google Forms envoyé à consultants clés (Bordeaux, Lyon, Lille, Paris), validé par Sonia et directeurs de marché
- Consultants relais dans chaque ville identifiés pour diffuser sondage + remonter terrain
- Liste des directeurs de marché avec leurs consultants (mapping) — pour escalade ADV-02
- Templates de mail validés par DRH (3 versions : info J-3, alerte J-2, urgence J-1)
- Règles cas particuliers :
- Arrêt maladie → pas de relance ? ou “à valider à ton retour” ?
- Congés partiels du mois → décaler à quand ?
- Nouveau entrant du mois → règle spécifique ?
- Périmètre entités couvertes en v1
- Mécanisme sous-traitants : quelle adresse mail utiliser ? Alias commercial société ? Mail perso ?
- Décision canal SMS : garde-t-on WhatsApp exclu ? Contrat provider SMS ?
- Formulaire mission — processus de collecte du mail mission au démarrage de chaque mission (proposition Dina)
Timeline estimative
Section titled “Timeline estimative”Effort dev : 5 jours-n8n (1 dev n8n).
| Étape | Durée | Bloquant |
|---|---|---|
| Réception livrables Proxiad (sondage, mapping, templates) | S+0 | Sondage Dina |
| Config n8n : compte Progessi + Graph M365 + boîte émettrice | 0,5 j | Extension droits M365 |
| Workflow détection retardataires + filtres | 1 j | — |
| Workflow multi-canal (mail + Teams + SMS optionnel) | 1,5 j | Décision SMS |
| Workflow escalade + journalisation | 1 j | — |
| Tests + pilote sur 20-30 consultants volontaires | 0,5 j | — |
| Ajustements templates/horaires selon retours | 0,5 j | — |
| Mise en production | fin septembre 2026 | Engagement pris en séance |
Critères de recette
Section titled “Critères de recette”- 30 consultants test avec 15 CRA volontairement non validés : les 15 sont détectés au cron J-3 et relancés dans les 5 min
- Consultant en arrêt maladie n’est pas relancé
- Consultant en congés > 5j voit sa relance décalée à son retour
- Événements Teams créés apparaissent dans le calendrier avec durée 15 min
- Chaque envoi tracé (consultant, canal, timestamp, template)
- À J-1 midi, liste des pending disponible pour ADV-02
- Zéro erreur d’envoi sur cycle test 1 mois complet
- Cible ROI 3 mois post-prod : ≥ 60% CRA validés sans intervention humaine (mesure Progessi)
Risques identifiés
Section titled “Risques identifiés”| Risque | Impact | Mitigation |
|---|---|---|
| Sous-traitants (40% CA) non joignables | ROI ≤ 60% | Couverture mail commercial société, sondage inclut sous-traitants |
| Refus utilisateur (spam perçu) | Erosion adoption | Templates DRH-validés, désabonnement individuel possible, comm interne |
| API Progessi indisponible cycle | Cycle raté | n8n retry + backoff, alerte ADV si 2 cycles consécutifs KO |
| Horaires 8h30 trop intrusifs | Confiance érodée | A/B test pilote, ajuster à 9h ou 10h selon retours |
| Faux positifs (relancer qqn ayant validé) | Perte crédibilité | Recheck Progessi ~2s avant chaque envoi |
Questions ouvertes
Section titled “Questions ouvertes”- Q1 : Canal SMS — retenu par Proxiad ? Si oui, provider (Twilio, OVH, autre) ? Budget mensuel accepté (~300 relances × ~0.05€ = ~15€/mois) ?
- Q2 : WhatsApp explicitement exclu ? (mentionné comme canal actuel mais problématique RGPD/gouvernance)
- Q3 : Mail mission — comment garantir sa collecte au démarrage de chaque mission ? Formulaire ADV ? Champ obligatoire dans Progessi ?
- Q4 : Consultants relais par ville — leur donner un accès admin léger pour voir le statut de leur zone ? Ou juste destinataires du digest ?
- Q5 : Boîte émettrice
cra-relance@proxiad.com— nom exact validé ? Alias différent (ma-paye@,cra@) ? - Q6 : Nouveau entrant du mois — règle exacte ? (pas de relance le 1er mois ? relance décalée à J+15 ?)
- Q7 : Régle “post-clôture J+3 mail ultime” — validée par direction paye (Sujita) pour timing de la coupure ?
- Q8 : Sondage — quel taux de retour attendu ? Que fait-on des consultants qui ne répondent pas au sondage (canal par défaut = mail Proxiad ?)