• Synthèses PNCEE v2.061
  • Génération
  • Aide
  • Codes Prestation
  • Fiches CEE
  • Modèles
  • Compteurs
  • Taux régl.
  • Templates PDF
  • KPI
  • Mappings KPI
  • Tokens API
  • Utilisateurs
  • Paramètres
  • Déconnexion

Génération de synthèse

Historique des générations

Lot Fiche Type Lignes Demandeur Statut Durée Date Actions

Aucune génération.

Fiches CEE

Numéro Libellé Code prestation Modèle PP Modèle PM Auto Actions

Aucune fiche configurée.

← Retour aux fiches

Configuration analyse PDF

PDF modèle

Uploadez un PDF type pour cette fiche. Il servira de référence pour tester les patterns d'extraction.

Patterns d'extraction

Définissez les textes à rechercher dans le PDF et le label associé pour le mapping ($PDF.label).

Texte à chercher Label (mapping) Position valeur Actions

Aucun pattern configuré.

Résultats du test

Label Valeur extraite

Codes Prestation

Code Libellé Formulaires Kizeo Actions

Aucun code prestation.

Formulaires Kizeo

Type Form ID Date début Date fin Champ ref mission Champ ref lot Champ prise RDV Champ réalisable / concl. Champ relecture Actions

Paramétrage des valeurs de champs Kizeo Liste & Choix

Champ Kizeo Correspondances Actions

Aucune correspondance configurée.

Modèles

Nom Type Colonnes Fiches Actions

Aucun modèle.

▼ Format de sortie

Pos. Libellé Format Couleur

▼ Mapping

Pos. Libellé Source Valeur source Si # = Oui Valid. Résultat test

▼ Compteurs synthèse

Compteur Colonne Opérateur Valeur Conditions OR

Tokens API publique

Gérez les tokens d'accès à l'API publique. La documentation Swagger est disponible à /public-api/docs.

Nom Préfixe Créé par Créé le Expire le Dernière utilisation Statut Actions

Aucun token créé.

KPI

Lancer une analyse

Historique des analyses KPI

Nom Clients Fiches Période Missions Statut Date Actions

Aucune analyse KPI.

Mappings KPI

Nom Modèle Type Actions

Mapping KPI

Paramètres globaux

Guide de l'outil

Utilisation

Lancer une synthèse
Mode standard (par lot)
  1. Accéder à l'onglet Génération.
  2. Saisir la référence du lot dans le champ prévu (minimum 12 caractères, commençant par une date au format YYYYMMDD, ex : 20260303-07-DIVERS-INS-EDF).
  3. Cliquer sur Générer.

Le type PP/PM est déterminé automatiquement depuis les informations du lot sur SharePoint. La fiche CEE est également identifiée automatiquement (depuis SharePoint ou par parsing de la référence du lot).

Le traitement se lance en arrière-plan. Une barre de progression indique l'avancement en temps réel. La durée affichée correspond au temps de traitement effectif (hors éventuelle validation manuelle).

Mode 100% (par missions)
  1. Activer le toggle Mode 100%.
  2. Saisir la liste des références de mission (une par ligne).
  3. Sélectionner la fiche CEE concernée (seules les fiches éligibles 100% sont proposées).
  4. Choisir le type PP/PM (en mode 100%, ce choix est manuel).
  5. Optionnellement, renseigner un nom de fichier de sortie personnalisé.
  6. Cliquer sur Générer.

En mode 100%, les missions sont recherchées directement par leur référence dans Kizeo, avec fallback sur les formulaires archivés si nécessaire. Seules les missions relues, avec RDV validé, non bloquées et réalisables sont retenues.

Multi-formulaires Kizeo

Le toggle Multi-formulaires Kizeo permet de rechercher les missions dans tous les formulaires Kizeo configurés pour le code prestation, et pas uniquement dans le formulaire en vigueur selon la date d'intégration du lot. Cela inclut les formulaires d'inspection et CPC.

Cette option est utile dans de rares cas où des missions ont été saisies dans un ancien formulaire. Elle est désactivée par défaut car elle augmente le temps de traitement. Elle n'est pas disponible en mode 100% (qui recherche déjà dans tous les formulaires) ni via l'API publique (VBA).

Upload SharePoint automatique

Le toggle Upload SharePoint auto permet d'envoyer automatiquement les fichiers Excel et PDF générés sur SharePoint à la fin du traitement. Ce choix est mémorisé entre les sessions. Lorsque la synthèse est lancée via l'API (VBA), l'upload SharePoint est toujours activé.

Annulation

Un bouton d'annulation est disponible tant que le job est en cours (running) ou en attente de validation (pending_review, pending_pdf_review). Seul le créateur du job ou un administrateur peut annuler.

Étapes du pipeline
%Étape
2%Appel webhook Power Automate (mise à jour compteurs)
5%Lecture des infos du lot sur SharePoint + détermination PP/PM
10%Identification de la fiche CEE et résolution de version
20%Téléchargement du fichier commande (SharePoint)
30%Récupération données Kizeo (inspection + CPC en parallèle)
35%Validation des données (doublons, missions non relues, RdV KO)
40%Extraction des rapports PDF (si activée sur la fiche)
55%Application du mapping (valeurs brutes + formules itératives)
60%Validation des champs PDF → pause pending_pdf_review si erreurs
65%Calcul des compteurs statistiques
70%Génération du fichier Excel
80%Validation compteurs → pause pending_review si mode manuel
85%Génération du PDF de synthèse
95%Finalisation + upload SharePoint (si activé)
100%Terminé
Comprendre les statuts
StatutSignification
pendingEn file d'attente, pas encore démarré.
runningEn cours de traitement. La barre de progression se met à jour automatiquement.
pending_pdf_reviewEn attente de validation manuelle des données extraites du PDF. Un bouton Valider apparaît dans l'historique.
pending_reviewEn attente de validation manuelle des compteurs statistiques. Un bouton Valider apparaît dans l'historique.
completedTerminé avec succès. Les boutons de téléchargement (Excel, PDF) et d'upload SharePoint sont disponibles.
errorÉchec. Cliquer sur l'icône ❌ pour afficher le détail de l'erreur (texte sélectionnable).
cancelledAnnulé manuellement par l'utilisateur.

Les icônes ❌ (erreur) et ⚠️ (warning) sont cliquables : elles ouvrent une modale avec le message complet, dans laquelle le texte est sélectionnable pour faciliter le copier-coller.

La durée affichée correspond au temps de traitement réel. Si le job passe en validation manuelle, le chronomètre se fige et ne reprend pas après la validation.

Validation manuelle
Validation des compteurs (pending_review)

Ce cas survient lorsque la fiche est en mode manuel (champ "automatique" décoché sur la fiche CEE). L'outil calcule les compteurs mais attend votre confirmation avant de générer le PDF.

  1. Cliquer sur le bouton Valider dans l'historique.
  2. Une modale s'ouvre avec les compteurs pré-remplis. Vérifier et corriger si nécessaire.
  3. Les éventuels warnings (différence entre compteurs SharePoint et synthèse) sont affichés en haut de la modale.
  4. Cliquer sur Confirmer et générer le PDF.
Validation des données PDF (pending_pdf_review)

Ce cas survient lorsque l'extraction automatique des rapports PDF a détecté des anomalies. Voici les différents cas qui déclenchent une validation manuelle :

Cas déclencheurs

  1. PDF absent : le rapport PDF d'une mission terminée n'a pas été trouvé sur SharePoint. Tous les champs PDF de cette mission sont à renseigner manuellement.
  2. Valeur vide : un champ PDF est vide après extraction (pattern non trouvé dans le PDF, ou cellule vide). Si la colonne est conditionnelle (ex : "Si #A = Oui") et que la condition n'est pas remplie, le vide est considéré normal et ne déclenche pas d'erreur.
  3. Validation entier échouée : la valeur extraite n'est pas un entier valide. Si le texte contient exactement un nombre entier, il est extrait automatiquement. Sinon (0 ou 2+ nombres trouvés) → validation manuelle.
  4. Validation décimal échouée : même logique que pour les entiers, avec support des virgules et points décimaux.
  5. Liste de valeurs non respectée : la valeur extraite ne correspond à aucune des valeurs autorisées. Cela arrive notamment après un smart cleaning ambigu (2+ valeurs trouvées dans le texte extrait, voir section Validation de données).

Interface de correction

  1. Cliquer sur le bouton Valider dans l'historique.
  2. Une modale en vue partagée s'ouvre : formulaire à gauche, PDF à droite.
  3. Pour chaque erreur, la ligne concernée est identifiée (lettre A, B, C...), avec le nom de la colonne (coloré selon l'en-tête) et la valeur actuelle.
  4. Selon le type de validation :
    • Liste de valeurs : sélectionner la bonne valeur dans la liste déroulante.
    • Entier / Décimal : saisir la valeur correcte.
    • Sans validation (champ vide) : saisir librement la valeur.
  5. Utiliser les boutons Précédent / Suivant pour naviguer entre les erreurs.
  6. Le PDF est automatiquement positionné sur le terme de recherche correspondant pour faciliter la vérification.
  7. Une fois toutes les corrections effectuées, cliquer sur Valider les corrections.

Après validation, le mapping est recalculé avec les valeurs corrigées (les formules référençant $PDF. sont réévaluées), puis l'Excel et le PDF sont générés.

Forcer la saisie

Si la colonne du mapping a l'option Saisie libre auth. cochée (voir Éditeur de modèles), une coche Forcer la saisie apparaît sous le champ de correction. Quand elle est activée, un champ libre (bordure orange) remplace le champ normal et permet de saisir n'importe quelle valeur, même si elle ne respecte pas la contrainte configurée (hors liste déroulante, texte non numérique pour un entier/décimal...). La valeur forcée ne peut pas être vide. Cette valeur finit telle quelle dans la case correspondante du fichier Excel. À utiliser avec précaution car elle court-circuite la validation de données configurée sur le modèle.

Par défaut, aucun mapping n'a cette option activée : l'administrateur doit explicitement l'autoriser par colonne dans l'éditeur de modèles.

Téléchargement et SharePoint
Téléchargement

Une fois le job terminé (completed), deux boutons apparaissent dans l'historique :

  • Excel (icône verte) : télécharge le fichier de synthèse Excel.
  • PDF (icône rouge) : télécharge le PDF de synthèse.
Upload SharePoint
  • Automatique : si le toggle "Upload SharePoint auto" est activé (ou lancement via API), les fichiers sont envoyés automatiquement à la fin du traitement.
  • Manuel : un bouton SharePoint (icône bleue-verte) apparaît dans l'historique pour les jobs non encore uploadés. Cliquer dessus pour envoyer les fichiers.

Les fichiers sont déposés dans le dossier Synthèses/Synthèses du site SharePoint configuré.

Utilisation via VBA (Excel)
Configuration dans le fichier VBA

Cinq constantes à renseigner en haut du module SynthesesAPI :

  • BASE_URL : URL de l'outil (ex : https://syntheses.spekty.fr).
  • API_TOKEN : token API généré dans l'onglet Tokens API de l'outil.
  • API_USER : identifiant affiché dans l'historique (email de l'utilisateur).
  • TIMEOUT_MS : timeout en millisecondes (défaut 360000 = 6 min).
  • POLL_SEC : intervalle de polling en secondes (défaut 3).
Lancement (asynchrone, multi-jobs)
  1. Appeler la macro GenererEtSauver("20260303-07-DIVERS-INS-EDF") avec la référence du lot.
  2. La requête est envoyée à l'API en mode asynchrone. Plusieurs générations peuvent tourner en même temps.
  3. Un polling automatique (toutes les 3 secondes) vérifie l'état de chaque requête. La barre de statut Excel affiche le nombre de synthèses en cours.
  4. À la fin de chaque requête :
    • Succès (completed) : une MsgBox confirme la génération et l'enregistrement SharePoint. Les éventuels warnings sont affichés.
    • Autre statut (erreur, validation requise...) : une MsgBox affiche le message d'erreur et propose d'ouvrir l'outil dans le navigateur.

L'upload SharePoint est toujours activé lors d'un lancement via l'API (endpoint with-sharepoint).

Propriété du job

Le champ API_USER est envoyé comme créateur du job. L'utilisateur peut ensuite annuler ses propres jobs et accéder aux validations depuis l'interface web.

Règles de validation

Lors de chaque génération, les données Kizeo sont validées automatiquement. Tous les blocages sont détectés en une seule passe et listés dans le message d'erreur.

Missions annulées

Les missions dont le statut SharePoint est Annulé sont automatiquement exclues de la synthèse. Un warning non bloquant indique le nombre de missions exclues et leurs références.

Inspection (non-CPC)

Doublons Kizeo

  1. 1 seule avec mission_realisable = "O" → retenue
  2. 2+ avec mission_realisable = "O" → doublon bloquant
  3. 0 realisable mais au moins 1 avec prise_de_rdv = "RDV" → la plus récente avec RDV (create_time)
  4. Sinon → la plus récente (create_time)

Mission non relue

mission_realisable = "O" ET relecture = "Non" → bloquant

RdV KO

prise_de_rdv = "RDV" ET mission_realisable vide → vérification statut SharePoint :

  • RdV KO → code déduit automatiquement :
    • Contient "refus" → RI (Refus d'intervention)
    • Contient "non disponible" → BND (Bénéficiaire non disponible)
    • Contient "faux num" → FN (Faux numéro)
    • Autre → BI (Bénéficiaire injoignable)
  • En cours / Echantillonné / Non prise en compte / non trouvé dans SharePoint → PI (Planification impossible)
  • Autre statut → bloquant
CPC

Doublons Kizeo

  1. 1 seule avec prise_de_rdv = "RDV" → retenue
  2. 2+ avec prise_de_rdv = "RDV" et toutes conclusion = "Satisfaisant" → 1ere retenue automatiquement
  3. 2+ avec prise_de_rdv = "RDV" sinon → doublon bloquant
  4. Sinon → 1ere entree

Mission non relue

prise_de_rdv = "RDV" ET conclusion = "Non satisfaisant" ET relecture = "Non" → bloquant

Compteurs et Power Automate

Avant la génération, un webhook Power Automate est appelé pour mettre à jour les compteurs du lot sur SharePoint. Si le nombre de contrôles sur la synthèse diffère du compteur SharePoint, un warning est affiché. Exception : si la différence s'explique par des missions modifiées sur Kizeo dans les 2 dernières minutes (données récentes pas encore prises en compte par Power Automate), le warning est supprimé.

Cas particulier : RES-EC-104

La fiche RES-EC-104 (Rénovation d'éclairage) bénéficie d'un traitement spécifique lors de la génération Excel.

Éclatement multi-cadres A

Lorsque la cellule Ref Emmy (position 3) contient N séparateurs | , la ligne est automatiquement éclatée en N+1 lignes (une par cadre A).

  • Les cellules contenant exactement N séparateurs | sont découpées : chaque partie va dans sa ligne.
  • Les autres cellules (aucun séparateur, ou nombre différent) sont dupliquées telles quelles sur chaque ligne.
Cas particulier "Nombre de luminaires"

Si le modèle contient une ou plusieurs colonnes dont l'en-tête commence par Nombre de luminaires :

  • Les valeurs numériques sans séparateur sont préfixées "Total sur l'opération : X" sur chaque ligne éclatée.
  • Les lignes éclatées sont colorées en alternance (jaune, violet, vert) pour distinguer visuellement les opérations multi-cadres.
  • Les cellules "Nombre de luminaires" sur les lignes éclatées sont mises en surbrillance pour signaler qu'elles doivent être complétées.
  • Warning : "Certaines opérations ont été éclatées en plusieurs cadres A. Veuillez vérifier et compléter manuellement le nombre de luminaires installés."
Modèle sans colonne "Nombre de luminaires"

Si aucune colonne d'en-tête ne commence par Nombre de luminaires :

  • Pas de coloration des lignes éclatées.
  • Pas de préfixe "Total sur l'opération : X".
  • Warning simplifié : "Certaines opérations ont été éclatées en plusieurs cadres A".
Configuration

La colonne déclencheuse est la position 3 (Ref Emmy). Aucune autre configuration : les colonnes à éclater et les colonnes "Nombre de luminaires" sont auto-détectées.

Règles spécifiques par client
Client EDF (Marché des Particuliers)

Lorsque le client du lot dans SharePoint est EDF (Marché des Particuliers), deux adaptations sont appliquées automatiquement au fichier Excel :

  • Ligne de tirets : une ligne contenant un tiret (-) dans chaque colonne ayant un en-tête est ajoutée avant la ligne d'en-tête.
  • Pourcentages en décimal : les colonnes au format "Pourcentage" sortent en nombre décimal (ex : 0.75) au lieu du format pourcentage classique (75%).

Ces règles s'appliquent à toutes les fiches, y compris après une étape de validation manuelle (PDF ou compteurs). Elles n'impactent pas le calcul des compteurs statistiques.

Administration

Fiches CEE

Les fiches CEE sont gérées dans l'onglet Fiches. Chaque fiche représente un type d'opération CEE (ex : BAR-TH-171, RES-EC-104).

Champs principaux
  • Numéro : identifiant unique de la fiche (ex : BAR-TH-171).
  • Libellé : description lisible.
  • Code prestation : associe la fiche à un code prestation pour la résolution automatique depuis la référence de lot.
  • Modèle PP / PM : modèle de synthèse à utiliser pour chaque type (particuliers / professionnels).
  • Modèle PP 100% / PM 100% : modèles dédiés aux synthèses 100% (si éligible).
  • Automatique : si coché, les compteurs sont validés automatiquement sans intervention. Si décoché, le job passe en pending_review pour validation manuelle.
  • Analyse PDF : si coché, les rapports PDF des missions sont téléchargés depuis SharePoint et analysés pour en extraire des données (voir section Extraction PDF).
  • Éligible 100% : si coché, la fiche est disponible pour les synthèses en mode 100%.
Versions de fiches

Chaque fiche peut avoir plusieurs versions avec des dates de début et fin. Le système sélectionne automatiquement la bonne version en fonction de la date d'engagement ou d'intégration du lot. Chaque version peut pointer vers un modèle de synthèse différent.

Résolution automatique

Lors de la génération, la fiche est identifiée automatiquement depuis les informations SharePoint du lot (champ fiche_cee), ou à défaut par parsing du code prestation dans la référence de lot.

Modèles de synthèse

Les modèles définissent la structure du fichier Excel de synthèse. Ils sont gérés dans l'onglet Modèles.

Colonnes de sortie

Chaque modèle contient une liste ordonnée de colonnes. Pour chaque colonne :

  • Position : numéro de la colonne dans l'Excel (A=0, B=1...). Laisser vide pour une colonne intermédiaire (calcul interne, non affichée).
  • Label : en-tête de la colonne dans l'Excel.
  • Format : texte (défaut), nombre, entier, etc. Détermine le formatage dans l'Excel.
  • Couleur en-tête : couleur de fond de l'en-tête (format #RRGGBB).
Colonnes intermédiaires

Les colonnes intermédiaires n'ont pas de position Excel : elles servent uniquement aux calculs internes. Elles sont référencées dans les formules via @{Label}. Utile pour stocker des résultats intermédiaires réutilisés par d'autres formules.

Source de données (mapping)

Chaque colonne est associée à une source de données qui détermine d'où vient la valeur :

SourceDescriptionValeur source
command_fileFichier commande (Excel SharePoint)Nom exact de la colonne
kizeoFormulaire Kizeo inspectionNom du champ Kizeo
kizeo_cpcFormulaire Kizeo CPCNom du champ CPC
sharepoint_listListe SharePoint du lotNom du champ SharePoint
rapport_pdfDonnées extraites du PDFClé normalisée du pattern ($PDF.cle)
formulaFormule calculéeExpression (voir section Formules)
Colonne conditionnelle

Une colonne peut être conditionnelle : sa valeur n'est affichée que si la colonne référencée dans condition_col_label vaut "Oui". Sinon, la cellule reste vide.

Bouton Tester

Le bouton Tester le mapping dans l'éditeur de modèle permet de tester une référence de mission. Il applique le même pipeline de mapping et de validation que la génération réelle, et affiche le résultat colonne par colonne avec un code couleur (valeur trouvée, vide, erreur).

Formules

Les formules permettent de calculer des valeurs à partir des données sources et d'autres colonnes. Elles sont saisies dans le champ "Valeur source" lorsque le type de source est formula.

Références aux données sources
RéférenceSourceExemple
$CMD.champFichier commande$CMD.Code postal
$KIZ.champKizeo inspection$KIZ.mission_realisable
$KIZ_CPC.champ ou $CPC.champKizeo CPC$KIZ_CPC.conclusion_generale
$SP.champListe SharePoint$SP.Statut
$PDF.champRapport PDF extrait$PDF.Zone_climatique
$KIZL.champKizeo (label du champ)$KIZL.type_isolant
#A, #B, #C...Colonne de sortie par lettre#A = 1re colonne non-intermédiaire
@{Label}Colonne intermédiaire par label@{Surface totale}
Fonctions disponibles
FonctionDescription
IF(cond; vrai; faux)Condition simple
IFS(c1; v1; c2; v2; ...)Conditions multiples (1re vraie retenue)
AND(a; b) / OR(a; b) / NOT(a)Opérateurs logiques
UPPER / LOWER / TRIMManipulation de texte
LEFT(t; n) / RIGHT(t; n) / MID(t; d; l)Extraction de sous-chaîne
LEN(texte)Longueur du texte
SEARCH(texte; recherche)Position de la recherche dans le texte
REPLACE(t; ancien; nouveau)Remplace dans le texte
CONCAT(a; b; ...)Concaténation
COALESCE(a; b; ...)1re valeur non-vide
ABS / INT / MOD / ROUNDFonctions numériques
MIN(a; b) / MAX(a; b)Minimum / maximum
TEXT(nombre; format)Formatage numérique
ISNUMBER(val) / ISBLANK(val)Tests de type
ZONE_CLIMATIQUE(cp)Déduit H1/H2/H3 depuis un code postal
CHAR(code)Caractère ASCII
Opérateurs de comparaison

=, != (ou <>), <, >, <=, >=

Le séparateur d'arguments peut être le point-virgule ; ou la virgule ,.

Évaluation itérative

Les formules sont évaluées en 2 phases :

  1. Phase 1 : toutes les valeurs brutes (non-formules) sont renseignées.
  2. Phase 2 : les formules sont évaluées en boucle (jusqu'à 10 itérations) jusqu'à stabilisation. Cela permet à une formule de référencer le résultat d'une autre formule, même si celle-ci est définie plus bas dans le modèle.
Validation de données et extraction PDF
Types de validation

Chaque colonne du modèle peut avoir un type de validation optionnel :

  • Entier : la valeur doit être un nombre entier.
  • Décimal : la valeur doit être un nombre décimal.
  • Liste de valeurs : la valeur doit faire partie d'une liste prédéfinie (saisie ligne par ligne dans le paramètre de validation).

Saisie libre auth. — sous le sélecteur de type de validation, un toggle permet d'autoriser l'utilisateur à forcer une valeur hors contrainte lors de la validation PDF manuelle (coche Forcer la saisie dans la modale). Désactivé par défaut sur tous les mappings existants. À activer uniquement sur les colonnes où l'utilisateur doit pouvoir écrire une valeur libre (ex : mention spéciale, cas non prévu).

Source « Saisie manuelle »

Dans le mapping, la source Saisie manuelle signifie que la colonne n'a aucune source automatique : elle est toujours demandée à l'utilisateur lors de l'étape de validation manuelle (comme un champ PDF non trouvé).

  • Pas de valeur source à renseigner dans le mapping.
  • Validation de données (Entier / Décimal / Liste de valeurs) paramétrable normalement, ainsi que Saisie libre auth..
  • Condition Si # = Oui respectée : si la condition n'est pas remplie, la valeur reste vide et aucune saisie n'est demandée.
  • Déclenche l'étape de validation manuelle même sur une fiche sans Analyse PDF. Dans ce cas, la modale ne montre pas le panneau PDF à droite.
  • Sur une fiche avec Analyse PDF, le rapport PDF reste affiché à côté (sans surlignage pour les colonnes Saisie manuelle).
Extraction PDF

Lorsque Analyse PDF est activée sur la fiche, les rapports PDF de chaque mission sont téléchargés depuis SharePoint et analysés automatiquement.

La configuration des patterns d'extraction se fait dans l'onglet PDF Templates. Pour chaque pattern :

  • Texte du pattern : le texte à rechercher dans le PDF (en-tête de colonne, label...).
  • Label : clé de stockage pour la valeur extraite. Utilisée pour la référence $PDF.cle dans les formules (normalisée automatiquement : espaces → _, caractères spéciaux supprimés).
  • Position :
    • right : 1re cellule non-vide à droite du pattern.
    • below : cellule en dessous du pattern.
    • checkboxes : collecte les cases cochées à droite du pattern (gère les cellules fusionnées et les lignes de continuation multi-lignes). Symboles reconnus : ☑ ☒ ✓ ✗ [x].
Smart cleaning (nettoyage intelligent)

Lorsqu'une colonne a une validation liste de valeurs, le système cherche automatiquement les valeurs autorisées dans le texte extrait du PDF :

  • Si 1 seule valeur trouvée → retenue automatiquement.
  • Si 2+ valeurs trouvées (ambiguïté) → la valeur brute est conservée et une validation manuelle est demandée.
  • Les sous-chaînes sont éliminées intelligemment : si "Non vérifiable" est trouvé, "Non" seul n'est pas compté comme une correspondance indépendante.
Endpoint de debug PDF

L'endpoint GET /api/generation/debug-pdf/{ref_mission} permet de visualiser les tables brutes et le texte extrait par pdfplumber pour une mission donnée. Utile pour diagnostiquer les problèmes d'extraction (structure des tables, caractères spéciaux, colonnes vides).

Compteurs statistiques
Définition globale

Les compteurs sont définis globalement dans l'onglet Compteurs. Chaque compteur a :

  • Clé : identifiant unique utilisé comme balise dans le PDF (ex : nb_total, nb_cpc).
  • Label : libellé affiché dans la modale de validation et dans le PDF.
  • Ordre : position d'affichage.
Association aux modèles

Dans l'éditeur de modèle, chaque compteur peut être associé à une condition de comptage :

  • Référence colonne : colonne de sortie à évaluer (ex : #A).
  • Opérateur : eq (égal), ne (différent), gt (supérieur), lt (inférieur)...
  • Valeur : valeur de comparaison.
  • Conditions alternatives (OU) : liste JSON de conditions supplémentaires. Une ligne est comptée si au moins une condition est remplie.

Un compteur sans condition compte toutes les lignes (utilisé pour nb_total).

API publique
Authentification

Toutes les requêtes API nécessitent un token Bearer dans le header Authorization :

Authorization: Bearer votre-token-api

Les tokens sont créés et gérés dans l'onglet Tokens API. Chaque token a un nom, une date d'expiration optionnelle, et peut être révoqué à tout moment.

Endpoints disponibles
MéthodeEndpointDescription
POST/public-api/generationGénération synchrone (sans upload SP)
POST/public-api/generation/with-sharepointGénération + upload SharePoint auto
POST/public-api/generation/100pctGénération 100% par missions
POST/public-api/generation/100pct/with-sharepointGénération 100% + upload SP
POST/public-api/generation/{id}/save-sharepointUpload SP manuel d'un job existant
GET/public-api/generation/{id}/download/excelTélécharger le fichier Excel
GET/public-api/generation/{id}/download/pdfTélécharger le fichier PDF
Corps de requête (génération standard)
{
  "lot_reference": "20260303-07-DIVERS-INS-EDF",
  "user": "prenom.nom@spekty.fr",
  "output_filename": "REF-CLIENT-1234"
}

output_filename (optionnel) : si renseigné, les fichiers produits sont nommés Synthèse-<output_filename>.pdf et Synthèse-<output_filename>.xlsx au lieu du format par défaut Synthèse-<lot_reference> <fiche_numero>.<ext>. Le nom uploadé sur SharePoint suit le nom local. Sans effet sur le contenu des fichiers. S'applique aux endpoints /generation et /generation/with-sharepoint. Cette option n'est pas disponible via l'interface web. Les caractères interdits dans les noms de fichiers Windows/SharePoint (\ / : * ? " < > |) sont automatiquement remplacés par _.

Corps de requête (génération 100%)
{
  "mission_references": ["REF-001", "REF-002"],
  "fiche_numero": "BAR-TH-171",
  "type_pp_pm": "PP",
  "output_filename": "Ma synthese",
  "user": "prenom.nom@spekty.fr"
}
Réponse type
{
  "status": "completed",
  "job_id": 123,
  "warnings": [],
  "excel_download_url": "/public-api/generation/123/download/excel",
  "pdf_download_url": "/public-api/generation/123/download/pdf",
  "sharepoint_excel_url": "https://...",
  "sharepoint_pdf_url": "https://..."
}
Timeout et erreurs

Le timeout des requêtes API est de 5 minutes (300 secondes). En cas de timeout serveur Kizeo (erreur 504), le message d'erreur indique s'il s'agit du formulaire d'inspection ou CPC, et recommande de réessayer dans quelques minutes.

KPI (admin)

L'outil KPI est une fonctionnalité annexe à la génération de synthèses. Il permet d'extraire un fichier Excel décomptant les opérations Non satisfaisantes par point KPI configuré, sur un périmètre filtré (clients, fiches CEE, période).

Pré-requis
  • Un Mapping KPI doit être configuré sur le modèle de synthèse de chaque fiche concernée (page Mappings KPI).
  • Les configurations existantes (clients, fiches, modèles, formulaires Kizeo, mappings de synthèse) sont réutilisées telles quelles. Aucune modification n'est nécessaire dans les paramétrages existants.
Lancer une analyse
  1. Aller dans l'onglet KPI.
  2. Saisir un ou plusieurs clients (un par ligne, ou séparés par ,/;). Doit correspondre exactement au champ Client de la liste SharePoint Liste des contrôles.
  3. Sélectionner une ou plusieurs fiches CEE.
  4. Renseigner les dates de début et de fin. Les missions retenues seront celles dont la Date SharePoint est dans cet intervalle.
  5. Cliquer sur Lancer l'analyse KPI. Le job s'exécute en arrière-plan, l'historique se met à jour automatiquement.
Filtrage des missions

Les missions sont identifiées sur la liste SharePoint Liste des contrôles selon les critères :

  • Statut = Terminé
  • Client ∈ liste saisie
  • Fiche_CEE ∈ fiches sélectionnées
  • Date ∈ intervalle [date_debut, date_fin]
Choix du modèle par fiche

Pour chaque fiche, l'outil utilise le modèle PP en priorité, sinon le modèle PM. Si la fiche a plusieurs versions (FicheVersion), c'est la version la plus récente (date_debut la plus grande, ≤ date_fin) qui est utilisée. Les modèles 100% sont exclus.

Récupération des données
  • Seules les données Kizeo inspection sont récupérées (pas de CPC, pas de fichier commande, pas de PDF).
  • Multi-formulaires implicite : tous les formulaires Kizeo inspection du code prestation sont interrogés (sans filtre date), comme en mode "Multi-formulaires Kizeo".
  • En cas de doublons Kizeo : même logique que pour la synthèse, mais lorsqu'un blocage serait déclenché, on prend la donnée la plus récente (create_time).
  • Les colonnes du modèle dont la source est Fichier commande, Liste SharePoint, Rapport PDF, Saisie manuelle ou Kizeo CPC sont évaluées comme vides (non utilisées par l'outil KPI).
Mappings KPI

Onglet Mappings KPI. Un mapping est rattaché à un seul modèle (relation 1-1).

Chaque mapping contient une liste ordonnée de points Non satisfaisant. Pour chaque point :

  • Libellé : nom du point (ex: "RDV non honoré").
  • Catégorie : à choisir parmi Documentaire, Eligibilité, Paramètre de la prime, Non qualité manifeste.
  • Condition principale : colonne du modèle + opérateur + valeur.
  • Conditions OU : 0 à N conditions supplémentaires. Si la principale OU une condition OU matche, l'opération est comptée.

Opérateurs disponibles : égal, différent, contient, commence par, vide, non vide.

Format du fichier Excel de sortie
ColContenu
AFiche CEE
BCatégorie
CLibellé du point Non satisfaisant
DNombre d'opérations Non satisfaisantes

Une ligne par couple (fiche CEE × point KPI), y compris les compteurs à 0. À droite des données, un tableau cumul par catégorie + un camembert de répartition.

Non interférence avec la synthèse

Cette fonctionnalité n'a aucun impact sur la génération de synthèses : pas de modification du pipeline existant, pas de modification des mappings de colonnes, des modèles, des fiches ou des formulaires Kizeo.

Paramètres globaux

Les paramètres globaux sont configurés en haut de cette page :

  • Token API Kizeo : token d'authentification pour l'API Kizeo Forms. Utilisé pour récupérer les données des formulaires d'inspection et CPC.
  • URL site SharePoint : URL du site SharePoint contenant les fichiers de commande, les rapports PDF et les listes de contrôles.
  • Chemin fichier commande : chemin relatif dans SharePoint vers le dossier contenant les fichiers de commande (ex : Documents partagés/Commandes).
  • ID liste des contrôles : identifiant de la liste SharePoint utilisée pour lire les infos du lot et des missions.
  • Client ID SharePoint (Azure) : identifiant de l'application Azure AD utilisée pour l'authentification SharePoint.
  • Client Secret SharePoint : secret de l'application Azure AD.

Le webhook Power Automate est configuré via une variable d'environnement serveur (POWER_AUTOMATE_WEBHOOK_URL), non modifiable depuis l'interface.

Nettoyage automatique

Les jobs de plus de 7 jours sont automatiquement supprimés (fichiers Excel/PDF et entrées en base), ainsi que les tokens API révoqués.

Aide

Compteurs de synthèse

Ces compteurs servent de balises dans la synthèse PDF. Ils sont partagés par tous les modèles.

# Cle (balise) Label Actions

Aucun compteur configuré.

Taux réglementaires

Taux de contrôle réglementaires par fiche CEE et période. Le Type de lot d'un lot SharePoint est comparé au Libellé pour déterminer les taux cibles.

Fiche Date début Date fin Libellé Taux site Taux CPC Actions

Aucun taux configuré. Importez un fichier Excel ou ajoutez-les manuellement.

Templates PDF

Configurez les templates Excel utilisés pour générer les PDF de synthèse. Placez des balises {{tag}} dans les cellules Excel. Les pourcentages peuvent être des formules Excel natives (ex: =IFERROR(E26/E21,0)).

Templates disponibles

Template Description Règles de sélection Fichier Actions

Balises disponibles

Cliquez sur une balise pour la copier. Collez-la dans les cellules de vos fichiers Excel.

Balise Description Source

Gestion des utilisateurs

Email Nom Rôle Accès KPI Dernière connexion Créé le Actions

Aucun utilisateur.

Chargement...