| Pos. | Libellé | Format | Couleur |
|---|
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.
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
▼ Mapping
| Pos. | Libellé | Source | Valeur source | Si # = Oui | Valid. |
|---|
▼ 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)
- Accéder à l'onglet Génération.
- 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). - 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)
- Activer le toggle Mode 100%.
- Saisir la liste des références de mission (une par ligne).
- Sélectionner la fiche CEE concernée (seules les fiches éligibles 100% sont proposées).
- Choisir le type PP/PM (en mode 100%, ce choix est manuel).
- Optionnellement, renseigner un nom de fichier de sortie personnalisé.
- 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
| Statut | Signification |
|---|---|
pending | En file d'attente, pas encore démarré. |
running | En cours de traitement. La barre de progression se met à jour automatiquement. |
pending_pdf_review | En attente de validation manuelle des données extraites du PDF. Un bouton Valider apparaît dans l'historique. |
pending_review | En attente de validation manuelle des compteurs statistiques. Un bouton Valider apparaît dans l'historique. |
completed | Terminé 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). |
cancelled | Annulé 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.
- Cliquer sur le bouton Valider dans l'historique.
- Une modale s'ouvre avec les compteurs pré-remplis. Vérifier et corriger si nécessaire.
- Les éventuels warnings (différence entre compteurs SharePoint et synthèse) sont affichés en haut de la modale.
- 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
- 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.
- 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.
- 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.
- Validation décimal échouée : même logique que pour les entiers, avec support des virgules et points décimaux.
- 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
- Cliquer sur le bouton Valider dans l'historique.
- Une modale en vue partagée s'ouvre : formulaire à gauche, PDF à droite.
- 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.
- 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.
- Utiliser les boutons Précédent / Suivant pour naviguer entre les erreurs.
- Le PDF est automatiquement positionné sur le terme de recherche correspondant pour faciliter la vérification.
- 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)
- Appeler la macro
GenererEtSauver("20260303-07-DIVERS-INS-EDF")avec la référence du lot. - La requête est envoyée à l'API en mode asynchrone. Plusieurs générations peuvent tourner en même temps.
- 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.
- À 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.
- Succès (
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 seule avec
mission_realisable = "O"→ retenue - 2+ avec
mission_realisable = "O"→ doublon bloquant - 0 realisable mais au moins 1 avec
prise_de_rdv = "RDV"→ la plus récente avec RDV (create_time) - 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)
- Contient "refus" →
En cours/Echantillonné/Non prise en compte/ non trouvé dans SharePoint →PI(Planification impossible)- Autre statut → bloquant
CPC
Doublons Kizeo
- 1 seule avec
prise_de_rdv = "RDV"→ retenue - 2+ avec
prise_de_rdv = "RDV"et toutesconclusion = "Satisfaisant"→ 1ere retenue automatiquement - 2+ avec
prise_de_rdv = "RDV"sinon → doublon bloquant - 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
Nsé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_reviewpour 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 :
| Source | Description | Valeur source |
|---|---|---|
command_file | Fichier commande (Excel SharePoint) | Nom exact de la colonne |
kizeo | Formulaire Kizeo inspection | Nom du champ Kizeo |
kizeo_cpc | Formulaire Kizeo CPC | Nom du champ CPC |
sharepoint_list | Liste SharePoint du lot | Nom du champ SharePoint |
rapport_pdf | Données extraites du PDF | Clé normalisée du pattern ($PDF.cle) |
formula | Formule calculée | Expression (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érence | Source | Exemple |
|---|---|---|
$CMD.champ | Fichier commande | $CMD.Code postal |
$KIZ.champ | Kizeo inspection | $KIZ.mission_realisable |
$KIZ_CPC.champ ou $CPC.champ | Kizeo CPC | $KIZ_CPC.conclusion_generale |
$SP.champ | Liste SharePoint | $SP.Statut |
$PDF.champ | Rapport PDF extrait | $PDF.Zone_climatique |
$KIZL.champ | Kizeo (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
| Fonction | Description |
|---|---|
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 / TRIM | Manipulation 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 / ROUND | Fonctions 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 :
- Phase 1 : toutes les valeurs brutes (non-formules) sont renseignées.
- 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.cledans 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éthode | Endpoint | Description |
|---|---|---|
POST | /public-api/generation | Génération synchrone (sans upload SP) |
POST | /public-api/generation/with-sharepoint | Génération + upload SharePoint auto |
POST | /public-api/generation/100pct | Génération 100% par missions |
POST | /public-api/generation/100pct/with-sharepoint | Génération 100% + upload SP |
POST | /public-api/generation/{id}/save-sharepoint | Upload SP manuel d'un job existant |
GET | /public-api/generation/{id}/download/excel | Télécharger le fichier Excel |
GET | /public-api/generation/{id}/download/pdf | Té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
- Aller dans l'onglet KPI.
- Saisir un ou plusieurs clients (un par ligne, ou séparés par
,/;). Doit correspondre exactement au champClientde la liste SharePoint Liste des contrôles. - Sélectionner une ou plusieurs fiches CEE.
- Renseigner les dates de début et de fin. Les missions retenues seront celles dont la
DateSharePoint est dans cet intervalle. - 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 saisieFiche_CEE∈ fiches sélectionnéesDate∈ 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
| Col | Contenu |
|---|---|
| A | Fiche CEE |
| B | Catégorie |
| C | Libellé du point Non satisfaisant |
| D | Nombre 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
| Nom | Rôle | Accès KPI | Dernière connexion | Créé le | Actions |
|---|
Aucun utilisateur.