Automatiser l’import de fichiers CSV dans Mautic avec n8n

Dans ce tutoriel, on vous montre comment automatiser l’intégration de contacts dans Mautic à partir d’un fichier CSV stocké sur un serveur distant.

Objectif : Récupérer automatiquement un fichier via FTP, nettoyer et enrichir les données, puis les injecter dans Mautic (création ou mise à jour de contacts).

🛠 Prérequis : un accès FTP, une instance Mautic connectée via OAuth2, et un n8n fonctionnel.


Étape 1 : déclenchement automatique

Le workflow démarre avec un Schedule Trigger, ici configuré pour s’exécuter tous les jours à 5h du matin.
Un nœud JavaScript génère ensuite la date du jour précédent, utilisée pour composer dynamiquement le nom du fichier attendu.

const inputDate = new Date($input.first().json.timestamp);
inputDate.setDate(inputDate.getDate() - 1);
const formattedDate = inputDate.toISOString().split('T')[0];

return [{ formattedDate }];

Étape 2 : récupération du fichier CSV

Un nœud FTP est utilisé pour récupérer un fichier dont le nom est construit à partir de la date du jour précédent (par exemple leads_2025-04-07.csv).
On le lit ensuite via un nœud “Extract from File“, qui convertit le contenu en objets exploitables.


Étape 3 : nettoyage et structuration des données

Un nœud Code permet de :

  • Corriger les noms de colonnes (par exemple, “email” mal encodé)
  • Convertir les dates (notamment les formats Excel)
  • Grouper les lignes par contact
  • Compter les occurrences (ex : nombre de téléchargements, commandes, etc.)
  • Regrouper des références multiples en une seule valeur

On obtient ainsi un tableau propre, structuré et prêt à être injecté dans Mautic.


Étape 4 : vérification dans Mautic

Un nœud HTTP Request envoie une requête à l’API Mautic pour savoir si chaque contact (identifié par son email) existe déjà.
La réponse est ensuite analysée via un nœud IF :

  • Si le contact n’existe pas : on le crée avec un nœud Mautic → Create Contact
  • S’il existe déjà : on prépare les données à mettre à jour

Étape 5 : fusion des données existantes

Si le contact est déjà présent, on fusionne les données existantes (issues de Mautic) avec les nouvelles données du fichier.
Exemple typique : additionner un nombre de téléchargements cumulés sur plusieurs fichiers.

const totalDownloads = mauticDownloads + csvDownloads;

Ce traitement permet de conserver l’historique tout en gardant un contact à jour.


Étape 6 : création ou mise à jour dans Mautic

Deux actions possibles ici :

  • Création d’un nouveau contact avec tous les champs renseignés (standard + personnalisés)
  • Mise à jour du contact existant avec les nouvelles valeurs (nom, entreprise, adresse, champs spécifiques…)

Les champs personnalisés peuvent être adaptés à votre cas d’usage : provenance, nombre d’actions, secteur, date de dernière interaction, etc.


Étape 7 : gestion des erreurs

En cas d’erreur lors de la création ou mise à jour, une alerte automatique est envoyée par e-mail à l’équipe.

Cela permet de détecter rapidement les anomalies et d’assurer une fiabilité maximale de l’import.


Étape 8 : nettoyage des anciens fichiers (optionnel)

Un second Schedule Trigger (par exemple à 8h) permet de :

  • Lister les fichiers du serveur FTP
  • Supprimer ceux modifiés il y a plus de 7 jours

Cela permet de garder votre serveur propre, sans intervention manuelle.


Résultat

Avec ce workflow n8n, vous pouvez automatiser l’import de fichiers CSV provenant de n’importe quelle source : plateformes partenaires, exports CRM, campagnes événementielles, etc.

Fini les imports manuels dans Mautic : vous avez un flux fiable, automatisé, et prêt à scaler.


Besoin de créer votre propre connecteur ou de faire évoluer vos automatisations Mautic ?
Contactez notre équipe : https://www.webanyone.net/contact/

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *