Skip to content

ADV-01 — Relances CRA J-3/J-2/J-1

FonctionNatureFrameworkScoreStatut
Administration des ventesAutomatisationn8n (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.


  • ~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.

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.

  1. 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é.
  2. 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.
  3. Récupérer le canal préféré de chaque consultant (issu du sondage Dina, stocké dans une base de config).
  4. Composer le message avec le template correspondant à la période (J-3 informatif → J-1 urgent) et injecter les variables (prénom, jours restants).
  5. 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é)
  6. Journaliser l’envoi (consultant, canal, timestamp, contenu).
  7. Le lendemain matin, vérifier si le CRA a été validé depuis. Si oui → clore. Si non → passer à la relance suivante.
  8. À J-1 midi : les CRA toujours pending sont transmis à l’automatisation ADV-02 (rapport quotidien directeurs).
  9. Post-clôture (J+1 à J+3 du mois suivant) : mail ultime “à valider avant coupure paie” + escalade directeur.
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]

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 fonctionnelEndpoint ProgessiDisponible ?Commentaire
Lister les CRA non validés du moisPOST /timesheets avec FilterModel { statusCode = "DRAFT" } + filtre periodStart39 champs sur timesheets dont statusCode, nbDays, potentialDays, ecart, nbLeaves, nbSickLeaves, intercontract
Récupérer email + code consultantGET /profiles/{id}34 champs dont email — remplace l’annuaire Excel de Bahija
Détecter arrêt maladie chevauchantPOST /sickLeaves avec FilterModel datesFiltre exclusion, évite les faux positifs
Détecter congés chevauchantsPOST /emplLeaves avec FilterModel datesIdem — attention au consultant en congés partiels
Récupérer nom de mission / clientGET /projects/{id} via lien depuis timesheetUtile pour personnaliser le mail
Valider un CRA à la place du consultantWrite 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 consultantIdem — 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é consultantConcept Mekorai — stocké dans SQLite n8n, alimenté par sondage Dina

Bloquants API :

  1. Aucun endpoint d’écriture Progessi → impossible d’automatiser la validation elle-même ni d’annoter la fiche timesheet.
  2. Mail mission absent du modèle profiles → collecte parallèle via formulaire de démarrage mission (livrable Proxiad).
  3. 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).
#ÉtapeFonction / endpointApplicationExiste ?Accès dispo ?Notes
1Lister CRA non validésGET /timesheets avec filtres status=pending, period=current_monthProgessi✅ Oui (documenté)✅ Compte service confirméUtiliser shortcut progessi_pending_timesheets de notre MCP
2Récupérer profil consultantGET /profiles/{id} (pour email + mission)Progessi✅ Oui✅ ConfirméNécessaire pour mail mission
3Détecter arrêt maladieGET /sickLeaves overlap périodeProgessi✅ Oui✅ ConfirméFiltre exclusion
4Détecter congésGET /emplLeaves overlap périodeProgessi✅ Oui✅ ConfirméFiltre exclusion
5Envoyer mailPOST /me/sendMailMicrosoft Graph (M365)✅ Oui (natif)⚠️ Extension droits demandée 27/08Nécessite profils MekorAI + boîte émettrice cra-relance@proxiad.com
6Créer événement TeamsPOST /me/events avec isOnlineMeeting=trueMicrosoft Graph✅ Oui⚠️ IdemÉvénement calendrier 15 min
7Envoyer SMSPOST /messagesProvider tiers (Twilio / OVH SMS / autre)✅ Oui🔴 Aucun contrat aujourd’huiÀ arbitrer avec Proxiad — coût + choix provider
8Stocker préférences canalTable consultant_channel_prefBase n8n interneÀ créerAlimentée post-sondage Dina
9JournalisationTable cra_relance_logBase n8n interneÀ créerAudit conformité
  • 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)
  • 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)

Effort dev : 5 jours-n8n (1 dev n8n).

ÉtapeDuréeBloquant
Réception livrables Proxiad (sondage, mapping, templates)S+0Sondage Dina
Config n8n : compte Progessi + Graph M365 + boîte émettrice0,5 jExtension droits M365
Workflow détection retardataires + filtres1 j
Workflow multi-canal (mail + Teams + SMS optionnel)1,5 jDécision SMS
Workflow escalade + journalisation1 j
Tests + pilote sur 20-30 consultants volontaires0,5 j
Ajustements templates/horaires selon retours0,5 j
Mise en productionfin septembre 2026Engagement pris en séance
  • 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)
RisqueImpactMitigation
Sous-traitants (40% CA) non joignablesROI ≤ 60%Couverture mail commercial société, sondage inclut sous-traitants
Refus utilisateur (spam perçu)Erosion adoptionTemplates DRH-validés, désabonnement individuel possible, comm interne
API Progessi indisponible cycleCycle ratén8n retry + backoff, alerte ADV si 2 cycles consécutifs KO
Horaires 8h30 trop intrusifsConfiance érodéeA/B test pilote, ajuster à 9h ou 10h selon retours
Faux positifs (relancer qqn ayant validé)Perte crédibilitéRecheck Progessi ~2s avant chaque envoi
  • 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 ?)