Template n8n · Pack Conformité & Audit
Enregistrer chaque réponse d'audit dans Supabase avec n8n
Brique de fiabilité du pack : un endpoint d'écriture qui valide les champs requis, horodate côté serveur et insère chaque réponse dans la table audit_responses. Utilisez-le depuis le bot du pack, vos formulaires ou n'importe quel outil capable d'un POST.
- Réponse reçue (Webhook)triggerWebhook
- Champs requis ?IF (condition)
- Horodater et normaliserSet (champs)
- Insérer la réponseSupabase
- Accusé de réceptionRéponse webhook
- Erreur 400Réponse webhook
$ n8n import:workflow --input=enregistrement-audit-supabase.json ✔ Import réussi — 6 nodes, connexions valides
Le problème que ça règle
Une piste d'audit ne vaut que si l'écriture est systématique et normalisée : champs obligatoires présents, horodatage non falsifiable, format constant. Laisser chaque source écrire directement en base multiplie les variantes et les trous.
Centraliser l'écriture derrière un webhook unique règle le problème : une seule porte d'entrée, une seule validation, un seul format. Et le jour où vous changez de base, seul ce workflow bouge.
Comment le workflow fonctionne, node par node
- 01
Réponse reçue (Webhook)
WebhookPOST sur flowkit-audit-record avec un JSON contenant dossier_id, question et reponse. Toutes vos sources d'audit convergent ici.
- 02
Champs requis ?
IF (condition)Vérifie que dossier_id et question sont non vides (conditions combinées en ET) : pas d'écriture partielle silencieuse dans la piste d'audit.
- 03
Horodater et normaliser
Set (champs)Fige les champs définitifs et ajoute recorded_at avec l'horloge du serveur n8n ($now.toISO()) : l'horodatage ne dépend jamais du client.
- 04
Insérer la réponse
SupabaseInsère la ligne normalisée dans audit_responses. Le mapping automatique reprend exactement les champs préparés au node précédent.
- 05
Accusé de réception
Réponse webhookConfirme l'enregistrement à l'appelant — le bot ou le formulaire sait que la donnée est en sécurité avant de passer à la suite.
- 06
Erreur 400
Réponse webhookBranche d'échec de la validation : réponse d'erreur explicite, l'appelant peut corriger et rejouer sans assistance.
Ce qu'il faut pour le faire tourner
- n8n ≥ 1.60
- Un projet Supabase avec la table audit_responses (SQL fourni dans le guide du pack)
- Le credential Supabase API dans n8n (URL + clé service_role)
- Aucune clé LLM : ce workflow est purement déterministe
Pistes de personnalisation
- Ajouter des champs métier (auditeur, version du référentiel, criticité) dans le Set et la table
- Doubler l'insertion d'un envoi vers un second stockage (Google Sheets, S3) pour l'archivage
- Protéger le webhook par un en-tête d'authentification avant toute exposition externe
FAQ
Questions fréquentes
Comment importer ce template dans n8n ?
Importez enregistrement-audit-supabase.json via « Import from File », associez votre credential Supabase, créez la table avec le SQL du guide, activez, puis testez avec un curl -X POST contenant dossier_id, question et reponse.
Pourquoi ne pas laisser le bot écrire directement dans Supabase ?
Le bot du pack le fait via son outil, mais ce webhook ajoute une couche de validation et d'horodatage réutilisable par toutes vos autres sources (formulaires, scripts, imports). Les deux approches coexistent très bien.
Cette piste d'audit a-t-elle une valeur probante ?
Elle fournit l'essentiel : horodatage serveur, insertion append-only et historique requêtable. Pour aller plus loin (intégrité cryptographique), ajoutez un hash chaîné des lignes — la structure de la table s'y prête.