Réponse directe
Il est possible d’automatiser la relance de factures impayées dans n8n en combinant des webhooks, des délais personnalisés et des intégrations CRM ou mail. Ce processus réduit les oublis manuels, améliore la régularité des relances et libère du temps aux équipes.
Points clés
- Webhook ou Cron pour enclencher le suivi
- Delais personnalisés par type de client ou montant
- Envoi automatique par mail, Slack ou CRM
- Gestion d’erreurs pour éviter les relances en double
- Suivi du statut via des workflows asynchrones
Contexte : pourquoi s’y intéresse
Les relances clients sont critiques pour la trésorerie, mais souvent négligées. Automatiser ce processus garantit cohérence et traçabilité, même en période de charge.
Définition (simple)
Une relance de facture automatisée est un système qui identifie les paiements non reçus à date et déclenche des rappels par email ou autres moyens, sans intervention manuelle.
Automatiser les relances dans n8n : guide pas à pas
1) Diagnostic (quoi automatiser en priorité)
Identifiez les étapes qui posent problème : oubli de relance, différences de délais, erreurs dans la détection de paiement. Priorisez :
- Clients B2B à cycle lent
- Factures supérieures à un certain montant
- Cas traités encore manuellement
2) Design du workflow (fiabilité, erreurs, relance)
Exemple basique :
- Cron déclenche tous les jours
- Node HTTP vers votre ERP/CRM pour lister les factures "unpaid"
- Node Set pour préparer les données clés (client_email, due_date)
- Node IF pour vérifier si la date d’échéance est dépassée > X jours
- Node Wait avec ID unique (clé idempotence = invoice_id)
- Send Email avec message personnalisé
- Node Error Trigger avec Slack alert si échec d'envoi
3) Intégrations (API, webhooks, outils)
Selon votre stack :
- ERP/API : Pennylane, Quickbooks, Odoo → HTTP Request GET vers /invoices
- CRM : HubSpot ou Pipedrive → Update deal avec tag "relancé"
- Canal de relance : SendGrid, Gmail, Slack, WhatsApp for Business
4) Sécurité & conformité (RGPD, accès, logs)
- Stocker uniquement l’ID et l'email du client (pas l'IBAN)
- Loguer chaque relance dans un Google Sheet ou base Notion
- Masquer les credentials API dans le n8n Credential Store
- Éviter l’envoi de données sensibles dans les URLs
5) Exploitation (monitoring, maintenance, évolutions)
- Ajouter un Set Status (custom field) pour chaque étape
- Activer le mode "Execute Node" pour rejouer un envoi échoué
- Sauvegarder les données du workflow dans une base basse-fréquence (ex: Airtable)
- Versionner les workflows selon le canal utilisé (email, WhatsApp, etc.)
Retour terrain (scénario réaliste)
Une PME B2B dans le service RH avait un délai de paiement moyen supérieur à 45 jours. L'équipe compta, trop petite, oubliait régulièrement les relances. En intégrant Quickbooks via API, puis déclenchant une relance automatique par SendGrid après 10, 20 puis 30 jours, ils ont pu sécuriser leur trésorerie sans surcharge humaine. Le principal défi : créer une logique de relance multi-étapes sans duplication (invoice_id comme idempotency key).
Bloc signature (unique du jour)
Spécifications de prod pour la relance automatique
| Élément | Spécification |
|---|---|
| Nom du workflow | facture-relance-auto-v1 |
| Clé d’idempotence | invoice_id + relance_level |
| Politique de retry | 2 tentatives sur l’envoi email, délai 1h entre chaque |
| Secrets | Stockés dans Credential Store n8n, jamais visibles en clair |
| Règles d’accès (RBAC) | Lecture seule pour équipe support, écriture uniquement pour ops |
| Limites de débit API | 1 req/sec vers Quickbooks, 5 req/sec vers SendGrid |
| Logs | Chaînés dans Notion via webhook + horodatage complet |
Exemples concrets (sans chiffres inventés)
- Cron quotidien à 07h00 + HTTP Request sur
/invoices?status=unpaid - IF Node :
{{$json["due_date"] < now -10j }}→ prépare envoi niveau 1 - Set Node : payload avec
relance_level = 2,template = email-retard-20j
Modèles rapides (copier-coller)
- Expression pour test de délai :
{{$json["due_date"] < Date.now() - (10 * 86400000)}} - Custom field traitement :
Set Node →relance_status = "en attente relance 2",origin = "auto"
Erreurs fréquentes (et comment les éviter)
- Boucle infinie de relance → Ajouter un champ
relance_sent_dates[]pour suivi - Envoi double en cas de redéploiement → Implémenter une clé d’idempotence liée à
invoice_id + date - Erreur API non traitée → Ajouter un Error Trigger et notifier via Slack en cas d’échec 500
Checklist actionnable
- Lister les statuts de factures à surveiller
- Identifier le canal de relance prioritaire (email, SMS…)
- Créer un champ custom
relance_statusdans votre base - Définir les délais entre chaque niveau de relance
- Documenter la logique dans Notion ou autre wiki interne
Besoin d'aide pour automatiser vos relances de factures ?
Réservez un appel gratuit avec notre équipe pour discuter de vos besoins en automatisation.
Réserver un appel gratuit
FAQ
Comment éviter une double relance si un client paie après la première ?
Ajoutez une vérification API ou webhook avant chaque relance pour contrôler le statut de la facture en temps réel.
Peut-on introduire des délais différents selon le type de client ?
Oui. Utilisez une condition IF sur le champ client_type avant de déclencher la Wait Node.
Comment journaliser automatiquement les relances dans un CRM ?
Utilisez un Node HTTP vers l’API du CRM ou un Node spécifique (HubSpot, Pipedrive) pour créer une note ou tâche liée au contact.
Faut-il utiliser des webhooks ou des Cron de déclenchement ?
Les Cron sont préférés pour les relances de facture (logique temporelle), mais un webhook peut être utile pour déclencher à l'émission d’une nouvelle facture.
Comment suivre les relances échouées ?
Ajoutez un Error Trigger en fin de chaîne. Logguez l’erreur dans un dashboard Notion ou via un envoi Slack vers responsable ops.
