Automatiser la Génération de Factures PDF avec n8n et DocuGenerate

Image de l'article
Auteur Par DocuGenerate

24 Octobre 2025

Introduction

L’automatisation documentaire ne nécessite pas toujours des solutions basées sur le cloud, parfois les workflows les plus efficaces sont ceux qui s’exécutent localement sur votre machine. Dans ce tutoriel, nous allons explorer comment créer un système automatisé de génération de factures en utilisant n8n, un puissant outil d’automatisation de workflows, combiné à DocuGenerate pour créer des factures PDF professionnelles.

Le workflow que nous allons créer est simple mais puissant. Il surveille un dossier désigné sur votre machine locale pour détecter de nouveaux fichiers Excel contenant des données de facturation. Lorsqu’un fichier apparaît, le workflow lit automatiquement les données, génère une facture distincte pour chaque ligne, et enregistre les documents PDF complétés dans un dossier de sortie. Cette approche est particulièrement utile pour les entreprises qui doivent traiter leurs factures localement et garder un contrôle total sur leurs données.

Tout au long de ce guide, nous allons passer en revue chaque nœud du workflow n8n, en expliquant son objectif et sa configuration. À la fin de ce tutoriel, vous disposerez d’un système local de génération de factures entièrement fonctionnel que vous pourrez adapter à vos besoins spécifiques.

Configurer le Modèle

Avant de créer le workflow n8n, nous devons préparer notre modèle de facture. La Bibliothèque de Modèles de DocuGenerate inclut un modèle Repair Invoice prêt à l’emploi, parfait pour ce tutoriel. Vous pouvez en apprendre davantage sur l’utilisation des modèles de la bibliothèque dans notre précédent guide.

Le modèle contient des balises de fusion comme Invoice No, Customer Name, Product Name, et d’autres champs courants de facture. Ces balises de fusion seront automatiquement remplacées par les données réelles du fichier Excel lors de la génération du document. Le modèle inclut également un exemple de fichier Excel avec dix lignes de données de facturation, que nous utiliserons pour illustrer le workflow.

Le modèle Repair Invoice dans DocuGenerate

Une fois le modèle téléchargé depuis la bibliothèque, téléversez le fichier Repair Invoice.docx sur votre compte DocuGenerate. Le modèle étant prêt, nous pouvons maintenant nous concentrer sur la création du workflow n8n qui automatisera l’ensemble du processus de génération de factures.

Vue d’Ensemble du Workflow Complet

Le workflow que nous construisons est composé de plusieurs nœuds interconnectés qui travaillent ensemble pour surveiller les fichiers, traiter les données, générer les documents et enregistrer les résultats sur le disque. Voici à quoi ressemble le workflow complet dans n8n :

Le workflow n8n complet

Le workflow commence par un déclencheur qui surveille un dossier local pour détecter de nouveaux fichiers. Lorsqu’un fichier Excel est ajouté, le workflow valide l’extension du fichier, lit son contenu, extrait les données sous forme de lignes structurées, puis parcourt chaque ligne pour générer une facture individuelle. Chaque facture générée est téléchargée et enregistrée dans un dossier de sortie désigné sur votre machine locale. Tout ce processus s’exécute automatiquement, sans nécessiter d’intervention manuelle une fois configuré.

Si vous souhaitez importer ce workflow directement dans votre instance n8n, vous pouvez télécharger le fichier JSON du workflow et l’importer. Cela peut vous faire gagner du temps et garantir que tous les nœuds sont correctement configurés. Examinons maintenant chaque nœud en détail pour comprendre le fonctionnement du workflow.

Configurer le Déclencheur de Fichier Local

Le workflow démarre avec le nœud Local File Trigger, qui surveille un dossier spécifique sur votre ordinateur pour détecter de nouveaux fichiers. Ce déclencheur est le point d’entrée de tout le processus d’automatisation. Pour ce tutoriel, nous surveillons le dossier /Users/docugenerate/n8n/Data, mais vous pouvez configurer n’importe quel répertoire de votre système dans lequel vous prévoyez d’ajouter des fichiers Excel.

Configuration du Local File Trigger

Le déclencheur est configuré pour détecter l’événement File Added, ce qui signifie qu’il s’active chaque fois qu’un nouveau fichier apparaît dans le dossier surveillé. C’est idéal pour les scénarios de traitement par lot où vous pourriez déposer plusieurs fichiers Excel dans un dossier au cours de la journée et souhaitez qu’ils soient traités automatiquement. Le déclencheur capture le chemin du fichier et le transmet au nœud suivant du workflow.

Pour cet exemple, nous utiliserons le fichier Repair Invoice.xlsx du modèle d’exemple, qui contient dix lignes de données de facturation. Chaque ligne représente une facture distincte avec des détails comme le numéro de facture, les informations client, les descriptions de service et les montants.

Valider l’Extension du Fichier

Une fois que le déclencheur détecte un nouveau fichier, nous devons vérifier qu’il s’agit bien d’un fichier Excel avant de tenter de le traiter. Le nœud If remplit cette fonction en vérifiant si le chemin du fichier se termine par l’extension .xlsx. Cette étape de validation évite les erreurs qui pourraient survenir si quelqu’un déposait accidentellement un type de fichier différent dans le dossier surveillé.

Vérification que le fichier est un fichier Excel

Si la condition est vraie, le workflow continue vers l’étape suivante. Si elle est fausse, le workflow s’arrête, évitant ainsi un traitement inutile de fichiers incompatibles. Cette simple vérification renforce la robustesse du workflow et garantit que seuls des fichiers Excel valides sont traités.

Lire le Fichier depuis le Disque

Une fois confirmé qu’il s’agit bien d’une feuille de calcul Excel, le nœud Read File from Disk récupère le contenu réel du fichier depuis votre machine locale. Ce nœud utilise le chemin de fichier fourni par le déclencheur pour localiser et lire les données binaires du fichier Excel.

Lecture du fichier depuis le disque

La configuration est simple. Le paramètre File(s) Selector est défini sur {{ $json.path }}, qui référence le chemin capturé par le déclencheur. Dans la section des options, nous spécifions data comme nom du champ binaire de sortie où le contenu du fichier sera stocké. Ce nom de champ sera utilisé dans les nœuds suivants pour accéder aux données du fichier.

Il est important de noter que ce nœud fonctionne avec des fichiers présents sur le même ordinateur qui exécute n8n. Si vous devez gérer des fichiers entre différents ordinateurs, vous devrez utiliser d’autres nœuds tels que FTP, HTTP Request, ou AWS S3. Pour des scénarios de traitement local comme le nôtre, ce nœud offre une solution simple et efficace.

Extraire les Données du Fichier Excel

Avec le contenu du fichier désormais disponible en données binaires, nous devons le convertir dans un format structuré qui pourra être traité par le workflow. Le nœud Extract from File gère cette transformation en analysant le fichier Excel et en convertissant chaque ligne en un élément de données distinct.

Extraction des données du fichier Excel

Le nœud est configuré avec l’opération Extract from XLSX, et le champ Input Binary Field est défini sur data, ce qui correspond au nom de champ spécifié dans le nœud précédent. Cette étape est essentielle car elle transforme les données binaires brutes du fichier en objets JSON structurés contenant les informations de facturation de chaque ligne. Ces éléments de données structurés peuvent maintenant être traités individuellement pour générer les factures.

Parcourir Chaque Ligne de Facturation

Maintenant que nous disposons des éléments de données structurés du fichier Excel, nous devons traiter chacun individuellement pour générer une facture distincte. Le nœud Loop Over Items permet cela en parcourant les éléments par lots. Pour ce workflow, nous utilisons une taille de lot de un, ce qui signifie que chaque facture est générée et enregistrée avant de passer à la suivante.

Parcourir les éléments avec une taille de lot de 1

Cette approche par lots est particulièrement utile pour la génération de documents car elle garantit que chaque facture est entièrement traitée avant de démarrer la suivante. Elle aide également à gérer les ressources système lors du traitement de jeux de données plus volumineux. La boucle se poursuit jusqu’à ce que tous les éléments aient été traités, le workflow exécutant la même séquence de nœuds pour chaque facture.

Générer le Document de Facture

Le nœud Generate Document prend les données de chaque ligne et les fusionne avec le modèle pour créer une facture PDF. Pour utiliser ce nœud, vous devrez installer le nœud DocuGenerate dans votre instance n8n.

Génération du document de facture

La configuration du nœud nécessite plusieurs paramètres :

  • Template Name or ID est défini sur Repair Invoice, ce qui correspond au modèle que nous avons téléversé précédemment.
  • Name utilise une expression Invoice no {{ $json['Invoice No'] }} pour nommer dynamiquement chaque document en fonction du numéro de facture issu des données.
  • Format est défini sur PDF (.pdf) pour générer des documents PDF.
  • Data est configuré avec {{ $json }}, ce qui transmet l’intégralité de l’élément de données actuel à l’API de génération de documents. Cela signifie que tous les champs de la ligne Excel sont disponibles pour les balises de fusion du modèle.

L’API traite cette requête et renvoie une réponse incluant un champ document_uri pointant vers le document généré.

Télécharger le Document Généré

Une fois la facture créée par DocuGenerate, Get File from URL utilise le nœud HTTP Request intégré pour récupérer le PDF généré à partir de l’URL fournie dans la réponse de l’étape précédente.

Récupération du fichier depuis l'URL

Le paramètre URL est défini sur {{ $json.document_uri }}, qui référence l’URL du document renvoyée par le nœud Generate Document. Dans la section des options, le Response Format est configuré sur File pour garantir que les données sont traitées comme du contenu binaire plutôt que du texte. L’option Put Output in Field est définie sur data, stockant le contenu du PDF dans un champ accessible par le nœud suivant.

Pour cet exemple, le document généré porte le nom de fichier Invoice no 58-223-0655.pdf, créé dynamiquement à partir du numéro de facture de la première ligne de nos données d’exemple. Chaque facture suivante aura son propre nom de fichier unique suivant le même modèle.

Enregistrer la Facture sur le Disque

La dernière étape du workflow enregistre le PDF de la facture générée dans un dossier désigné sur votre machine locale. Le nœud Write File to Disk gère cette opération, en stockant chaque facture complétée à un endroit facilement accessible.

Écriture du fichier sur le disque

Le paramètre File Path and Name est configuré avec /Users/docugenerate/n8n/Invoices/{{ $data.filename }}, qui combine un chemin de répertoire de base avec le nom de fichier dynamique du document généré. Le champ Input Binary Field est défini sur data, qui contient le contenu PDF récupéré à l’étape précédente.

Cette configuration enregistre toutes les factures dans le même dossier, mais vous pourriez personnaliser cela davantage. Par exemple, vous pourriez organiser les factures par date, ou les regrouper par nom de client. La flexibilité des expressions n8n vous permet de créer toute structure de dossiers adaptée aux besoins de votre entreprise. Gardez simplement à l’esprit que ce nœud est conçu pour fonctionner avec des fichiers présents sur le même ordinateur qui exécute n8n.

Exécuter le Workflow

Une fois tous les nœuds configurés, le workflow est prêt à traiter les factures automatiquement. Pour le tester, ajoutez simplement le fichier Repair Invoice.xlsx dans le dossier Data surveillé par le déclencheur. Le workflow détectera immédiatement le nouveau fichier et commencera le traitement.

Exécution du workflow

L’animation ci-dessus montre la section Loop Over Items en action, parcourant les dix éléments de données du fichier Excel. Pour chaque élément, le workflow génère une facture à partir du modèle et des données, télécharge le PDF, et l’enregistre dans le dossier de destination. Vous pouvez suivre la progression en temps réel via l’interface visuelle de n8n, qui offre une excellente visibilité sur chaque étape du processus.

Factures générées dans le dossier de sortie

Une fois le workflow terminé, les dix factures ont été générées et enregistrées dans le dossier Invoices. Cette approche automatisée élimine le besoin de création manuelle de documents, économisant un temps précieux et réduisant les erreurs potentielles liées à la saisie manuelle des données.

Conclusion

Créer des workflows d’automatisation locaux avec n8n et DocuGenerate offre une solution puissante pour les entreprises qui doivent traiter leurs documents efficacement tout en gardant un contrôle total sur leurs données. Le workflow que nous avons créé démontre à quel point il est facile de surveiller des dossiers, valider des fichiers, extraire des données et générer des documents professionnels sans dépendre de services cloud ou d’intégrations complexes.

Cette approche est particulièrement précieuse dans les scénarios où la confidentialité des données est primordiale, où la connectivité internet est limitée, ou lorsque vous préférez simplement garder votre pipeline de traitement de documents en local. La flexibilité de n8n vous permet d’étendre ce workflow de nombreuses façons. Vous pourriez ajouter des notifications par e-mail lors de la génération des factures, créer des copies de sauvegarde, ou l’intégrer à vos systèmes d’entreprise existants avec d’autres solutions.

Le workflow que nous avons créé traite des factures de réparation, mais le même modèle peut être appliqué à tout type de document pris en charge par DocuGenerate. Que vous ayez besoin de générer des contrats, des lettres, des certificats ou des rapports, le workflow principal reste le même. Il vous suffit d’ajuster le modèle et de vous assurer que vos données Excel correspondent aux balises de fusion de votre modèle choisi.

Ressources

Partager Cet Article