Chaque mois, c’est le meme rituel : vous ouvrez votre outil de facturation, vous creez vos factures une par une, vous les exportez en PDF, vous les envoyez par email, vous notez dans un coin quelles factures ont ete payees, et vous relancez manuellement ceux qui trainent. Si vous gerez entre 10 et 100 clients, ce processus vous coute probablement entre 4 et 8 heures par mois. Des heures que vous ne facturez pas.
En tant que developpeur freelance base dans le Comminges, pres de Toulouse, j’accompagne depuis plus de 10 ans des TPE, PME et independants dans l’optimisation de leurs processus metier. La facturation est, de loin, le workflow que j’automatise le plus souvent. Et l’outil que je recommande systematiquement pour ca, c’est n8n.
Ce guide vous explique concretement comment automatiser votre facturation avec n8n, etape par etape.
Pourquoi automatiser sa facturation ?
Avant de parler technique, posons le probleme clairement. Voici ce que represente la facturation manuelle pour une petite structure :
Ce que vous faites manuellement chaque mois :
- Creer chaque facture dans votre logiciel comptable
- Verifier les informations client (adresse, SIRET, TVA)
- Generer et exporter les PDF
- Envoyer chaque facture par email avec le bon objet et le bon message
- Suivre les paiements recus sur votre compte bancaire
- Identifier les factures impayees
- Envoyer des relances (1ere, 2eme, mise en demeure)
- Mettre a jour votre tableau de suivi
- Transmettre les pieces a votre comptable
Le cout reel de ce processus :
Pour une TPE avec 30 clients factures mensuellement, on parle de 6 a 10 heures de travail administratif par mois. A un taux horaire moyen de 50 euros, ca represente 300 a 500 euros par mois de temps non productif. Sur un an, c’est entre 3 600 et 6 000 euros.
Et ca, c’est sans compter les erreurs : factures oubliees, relances jamais envoyees, paiements non rapproches. Ces erreurs ont un impact direct sur votre tresorerie.
Facturation manuelle vs automatisee : le comparatif
| Etape | Manuel | Automatise (n8n) |
|---|---|---|
| Creation factures | 2-3 min par facture | Automatique (declenchement sur evenement) |
| Envoi par email | 1-2 min par envoi | Instantane, personnalise |
| Suivi paiements | Verification bancaire quotidienne | Webhook Stripe/bancaire en temps reel |
| Relances impayees | Oubliees 1 fois sur 3 | Systematiques, a J+7, J+15, J+30 |
| Transmission comptable | Export manuel + email | Sync automatique |
| Temps mensuel (30 clients) | 6-10 heures | 15-30 minutes de supervision |
| Taux d’erreur | 5-15% | < 1% |
Le gain de temps est significatif, mais le vrai benefice est ailleurs : la regularite. Un workflow automatise ne rate jamais une relance, ne se trompe pas de montant, et ne reporte pas l’envoi d’une facture “a demain”.
Pourquoi n8n et pas Zapier ou Make ?
Vous vous demandez peut-etre pourquoi n8n plutot qu’un autre outil d’automatisation. La reponse tient en trois points :
n8n est open-source et auto-hebergeable
C’est le differenciateur fondamental. Vos donnees de facturation (montants, clients, coordonnees bancaires) sont des donnees sensibles. Avec n8n, vous pouvez heberger l’outil sur votre propre serveur ou VPS. Aucune donnee ne transite par un service tiers americain. C’est un argument de poids pour la conformite RGPD et la confiance de vos clients.
Avec Zapier ou Make, vos donnees de facturation passent necessairement par leurs serveurs aux Etats-Unis. Pour certains secteurs (sante, juridique, finance), c’est tout simplement eliminatoire.
Le cout est previsible et derisoire
Un VPS pour heberger n8n coute entre 5 et 20 euros par mois. En auto-heberge, il n’y a aucune limite sur le nombre de workflows, le nombre d’executions, ou le nombre de noeuds. A titre de comparaison, un plan Zapier equivalent (avec les fonctionnalites necessaires pour de la facturation avancee) coute entre 50 et 100 euros par mois. Make se situe entre 20 et 50 euros. Avec n8n, votre workflow de facturation tourne pour le prix d’un cafe par mois.
La flexibilite est totale
n8n permet d’ajouter du code JavaScript ou Python dans n’importe quel noeud. C’est crucial pour la facturation, ou les regles metier sont souvent specifiques : TVA a taux reduit pour certains produits, remises conditionnelles, numerotation personnalisee, formats PDF sur mesure. Avec Zapier, vous etes limite aux fonctionnalites natives. Avec n8n, il n’y a aucune limite.
Architecture d’un workflow de facturation automatise
Avant de plonger dans la mise en place, voici la vue d’ensemble de ce qu’on va construire. Le workflow complet se decompose en 4 flux distincts dans n8n :
Flux 1 — Generation des factures Declencheur (fin de mois ou evenement) —> Recuperation donnees client —> Calcul montants et TVA —> Generation PDF —> Stockage
Flux 2 — Envoi des factures Facture generee —> Personnalisation email —> Envoi avec piece jointe —> Marquage “envoyee”
Flux 3 — Suivi des paiements Webhook paiement recu —> Rapprochement facture —> Marquage “payee” —> Notification
Flux 4 — Relances automatiques Cron quotidien —> Verification factures impayees —> Calcul delai —> Envoi relance adaptee (J+7, J+15, J+30)
Chaque flux est un workflow n8n independant. Cette separation est deliberee : si un flux a un probleme, les autres continuent de fonctionner.
Mise en place etape par etape
Etape 1 : Installer n8n
Si vous n’avez pas encore n8n, l’installation est simple. La methode recommandee pour la production est Docker sur un VPS.
Option rapide (Docker) :
docker run -d --name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8nio/n8n
Option production (Docker Compose avec PostgreSQL) :
version: '3'
services:
n8n:
image: n8nio/n8n
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${N8N_DB_PASSWORD}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
postgres:
image: postgres:16
environment:
- POSTGRES_DB=n8n
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=${N8N_DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
n8n_data:
postgres_data:
Pour un VPS, un serveur a 5-10 euros par mois (Hetzner, OVH, Scaleway) suffit largement. n8n consomme tres peu de ressources pour des workflows de facturation.
Etape 2 : Connecter vos sources de donnees
Le workflow de facturation a besoin de communiquer avec plusieurs outils. Voici les connexions les plus courantes :
Logiciel comptable / facturation :
- Pennylane (API REST, tres bien documentee)
- Henrri (gratuit, API disponible)
- Axonaut (API complete, populaire en TPE)
- Ou simplement un Google Sheets / Airtable si vous debutez
Paiement :
- Stripe (webhooks natifs, noeud n8n dedie)
- GoCardless pour les prelevements SEPA
- Votre banque via une API Open Banking (Bridge, Plaid)
Email :
- SMTP de votre domaine
- Resend (API moderne, fiable)
- Brevo (ex-Sendinblue, noeud n8n natif)
Stockage documents :
- Google Drive
- Un bucket S3 / R2 (Cloudflare)
- Ou directement votre logiciel comptable
Dans n8n, configurez chaque connexion en creant un “credential” pour chaque service. Allez dans Settings > Credentials > Add Credential, selectionnez le service, et entrez vos cles API. Ces credentials sont chiffres et stockes localement sur votre instance.
Etape 3 : Construire le flux de generation de factures
C’est le coeur du systeme. Voici la decomposition noeud par noeud :
Noeud 1 — Declencheur (Cron ou Webhook)
Deux options selon votre modele :
- Facturation recurrente : un noeud Cron qui s’execute le 1er de chaque mois
- Facturation a l’evenement : un noeud Webhook declenche quand un projet est termine ou une prestation livree
Noeud 2 — Recuperer la liste des clients a facturer
Requete vers votre base de donnees ou votre logiciel comptable pour obtenir les clients avec des prestations non facturees. Si vous utilisez un Google Sheets comme base simple :
Google Sheets > Read Rows
Spreadsheet: "Suivi clients"
Sheet: "Prestations"
Filtre: colonne "Facturee" = "Non"
Noeud 3 — Calculer les montants
Un noeud “Code” (JavaScript) pour calculer le montant HT, la TVA, et le TTC pour chaque ligne :
const items = $input.all();
return items.map(item => {
const montantHT = item.json.quantite * item.json.prixUnitaire;
const tauxTVA = item.json.tauxTVA || 20;
const montantTVA = montantHT * (tauxTVA / 100);
const montantTTC = montantHT + montantTVA;
return {
json: {
...item.json,
montantHT: montantHT.toFixed(2),
montantTVA: montantTVA.toFixed(2),
montantTTC: montantTTC.toFixed(2),
numeroFacture: `FAC-${new Date().getFullYear()}-${String(item.json.index).padStart(4, '0')}`
}
};
});
Noeud 4 — Generer le PDF
Plusieurs approches possibles :
- API Gotenberg (auto-hebergee, gratuite) : envoyez un template HTML et recevez un PDF
- Noeud HTTP Request vers un service comme PDFShift ou DocRaptor
- Votre logiciel comptable : si Pennylane ou Axonaut, utilisez leur API pour creer la facture directement, ils generent le PDF
L’approche que je recommande pour garder le controle total : un template HTML/CSS stocke dans n8n, rempli dynamiquement avec les donnees du noeud precedent, puis converti en PDF via Gotenberg.
Noeud 5 — Stocker la facture
Envoyez le PDF vers votre stockage : Google Drive, S3, ou le systeme de fichiers de votre logiciel comptable. Conservez l’URL ou l’identifiant du fichier pour l’etape suivante.
Etape 4 : Construire le flux d’envoi
Ce deuxieme workflow est declenche automatiquement quand une facture est generee (via un webhook interne n8n ou un trigger sur votre base de donnees).
Noeud 1 — Recuperer la facture et les infos client
Noeud 2 — Personnaliser l’email
Un noeud “Code” qui compose l’objet et le corps de l’email :
const facture = $input.first().json;
return [{
json: {
to: facture.emailClient,
subject: `Facture ${facture.numeroFacture} - ${facture.nomEntreprise}`,
body: `Bonjour ${facture.prenomClient},
Veuillez trouver ci-joint la facture ${facture.numeroFacture} d'un montant de ${facture.montantTTC} EUR TTC.
Date d'echeance : ${facture.dateEcheance}.
En cas de question, n'hesitez pas a me contacter.
Cordialement,
Sebastien Palacin Noblet`,
attachmentUrl: facture.urlPDF
}
}];
Noeud 3 — Envoyer l’email
Utilisez le noeud SMTP, Resend, ou Brevo. Attachez le PDF telecharge depuis votre stockage.
Noeud 4 — Mettre a jour le statut
Marquez la facture comme “envoyee” dans votre base avec la date d’envoi. C’est cette information qui alimentera le flux de relances.
Etape 5 : Construire le flux de suivi des paiements
Ce workflow ecoute les paiements entrants et les rapproche automatiquement des factures.
Avec Stripe :
n8n dispose d’un noeud Stripe Trigger natif. Configurez-le pour ecouter l’evenement invoice.paid ou charge.succeeded. Quand un paiement est recu :
- Recuperez les metadonnees du paiement (reference facture, montant)
- Trouvez la facture correspondante dans votre base
- Marquez-la comme “payee” avec la date de paiement
- Envoyez un email de confirmation au client (optionnel mais apprecie)
- Notifiez-vous via Slack, email, ou SMS
Sans Stripe (virement bancaire) :
C’est plus complexe mais faisable. Utilisez une API Open Banking (Bridge, par exemple) pour recuperer vos mouvements bancaires quotidiennement. Puis un noeud Code fait le rapprochement par montant et reference :
const virements = $input.all();
const facturesImpayees = $('Get Unpaid Invoices').all();
const rapprochements = [];
for (const virement of virements) {
const montant = Math.abs(virement.json.amount);
const reference = virement.json.description || '';
const facture = facturesImpayees.find(f =>
Math.abs(parseFloat(f.json.montantTTC) - montant) < 0.01 ||
reference.includes(f.json.numeroFacture)
);
if (facture) {
rapprochements.push({
json: {
factureId: facture.json.id,
numeroFacture: facture.json.numeroFacture,
montantPaye: montant,
dateVirement: virement.json.date,
statut: 'payee'
}
});
}
}
return rapprochements;
Ce rapprochement automatique n’est pas parfait (certains virements n’ont pas de reference exploitable), mais il traite correctement 80 a 90% des cas. Les cas restants vous sont signales pour traitement manuel.
Etape 6 : Construire le flux de relances automatiques
C’est souvent la partie la plus rentable de l’automatisation. Parce que la relance, c’est ce qu’on repousse le plus. Un workflow de relance bien configure peut reduire de 40 a 60% le delai moyen de paiement.
Le noeud declencheur : un Cron qui s’execute chaque matin a 9h.
La logique de relance :
const facturesImpayees = $input.all();
const aujourd_hui = new Date();
return facturesImpayees.map(facture => {
const dateEcheance = new Date(facture.json.dateEcheance);
const joursRetard = Math.floor(
(aujourd_hui - dateEcheance) / (1000 * 60 * 60 * 24)
);
let typeRelance = null;
if (joursRetard >= 7 && joursRetard < 15 && !facture.json.relance1) {
typeRelance = 'relance_1';
} else if (joursRetard >= 15 && joursRetard < 30 && !facture.json.relance2) {
typeRelance = 'relance_2';
} else if (joursRetard >= 30 && !facture.json.relance3) {
typeRelance = 'relance_3';
}
if (!typeRelance) return null;
return {
json: {
...facture.json,
joursRetard,
typeRelance
}
};
}).filter(Boolean);
Les emails de relance :
Un noeud Switch aiguille vers le bon template selon le type de relance :
- J+7 (relance douce) : “Bonjour, sauf erreur de notre part, la facture X ne semble pas encore reglee…”
- J+15 (relance ferme) : “Nous nous permettons de vous rappeler que la facture X est en attente de reglement depuis 15 jours…”
- J+30 (mise en demeure) : ton plus formel, mention des penalites de retard legales
Apres l’envoi, le workflow met a jour la facture avec la date de la relance envoyee pour eviter les doublons.
Conseils pratiques d’implementation
Apres avoir deploye ce type de workflow chez une vingtaine de clients, voici les lecons apprises :
Commencez simple
Ne construisez pas les 4 flux d’un coup. Commencez par le flux d’envoi automatique (le plus simple et le plus rentable), puis ajoutez les relances, puis le suivi des paiements, et enfin la generation automatique.
Testez avec des donnees reelles mais en mode brouillon
n8n permet d’executer un workflow manuellement avec des donnees reelles sans envoyer les emails (desactivez le noeud d’envoi pendant les tests). Faites ca pendant au moins une semaine avant de passer en production.
Gardez un oeil humain sur les relances
Automatisez l’envoi, mais revoyez les relances de niveau 3 (mise en demeure) manuellement. Un email automatique de mise en demeure envoye a un client fidele en difficulte passagere peut deteriorer une relation commerciale.
Prevoyez les cas limites
- Client avec plusieurs factures impayees : envoyez un seul email recapitulatif, pas 5 emails distincts
- Avoir au credit : verifiez le solde global, pas juste la derniere facture
- Changement d’adresse email : prevoyez un mecanisme de mise a jour
- Client etranger : TVA intracommunautaire, devise differente
Sauvegardez votre instance n8n
Vos workflows sont votre capital d’automatisation. Exportez-les regulierement (n8n permet l’export JSON) et stockez-les dans un depot Git. En cas de probleme serveur, vous pouvez reconstruire l’ensemble en moins d’une heure.
Gains concrets : retour d’experience
Voici des chiffres reels issus de deployments chez des clients (anonymises) :
Client A — Agence web, 45 clients factures mensuellement :
- Avant : 12 heures/mois de gestion facturation
- Apres : 1 heure/mois de supervision
- Gain : 11 heures/mois, soit environ 6 600 euros/an
- Delai moyen de paiement : passe de 38 jours a 19 jours
Client B — Consultant independant, 15 clients :
- Avant : 4 heures/mois, relances oubliees regulierement
- Apres : 20 minutes/mois
- Gain : 3h40/mois + 3 factures impayees recuperees le premier mois (2 400 euros)
Client C — Association culturelle, facturation subventions et adhesions :
- Avant : processus papier, 2 benevoles mobilises
- Apres : tout automatise sauf la validation finale
- Gain : liberation complete des 2 benevoles pour d’autres missions
Le retour sur investissement est generalement atteint en 1 a 2 mois. Le cout de mise en place (si vous le faites vous-meme) est essentiellement du temps d’apprentissage. Si vous faites appel a un professionnel, comptez 2 a 5 jours de prestation selon la complexite de votre cas.
Les limites a connaitre
Soyons honnetes, l’automatisation de la facturation avec n8n n’est pas magique. Voici les limites :
Ce que n8n ne fait pas :
- Remplacer un logiciel comptable. n8n orchestre et automatise, il ne gere pas la comptabilite. Vous avez toujours besoin de Pennylane, Henrri, ou un equivalent.
- Gerer la conformite legale a votre place. Numerotation, mentions obligatoires, archivage legal : c’est votre responsabilite (ou celle de votre comptable).
- Fonctionner sans maintenance. Les API changent, les tokens expirent, les services ont des pannes. Prevoyez 30 minutes par mois de surveillance.
Ce qui necessite un developpeur :
- La mise en place initiale si vous n’etes pas technique
- Les templates PDF complexes (mise en page precise)
- L’integration avec des logiciels sans API (certains vieux ERP)
- Le rapprochement bancaire avance (cas complexes)
Pour aller plus loin
Si ce guide vous a convaincu du potentiel de l’automatisation de la facturation avec n8n, voici comment avancer :
Vous voulez le faire vous-meme :
- Installez n8n en local (Docker) pour experimenter
- Commencez par automatiser l’envoi de factures existantes par email
- Ajoutez les relances automatiques
- Iterez progressivement
Vous voulez que ce soit fait pour vous :
J’accompagne des TPE et PME dans la mise en place de workflows d’automatisation sur mesure avec n8n. De l’audit de vos processus actuels a la mise en production, en passant par la formation de votre equipe.
Si vous perdez des heures chaque mois sur votre facturation et que vous voulez que ca change, consultez mes services d’automatisation n8n ou contactez-moi directement pour en discuter. Pas de commercial, pas de formulaire a rallonge : on echange, on evalue si ca fait sens, et on avance.