Malmoosk

← Tous les projets

n8n / Talend

Contactez-moi

n8n et Talend couvrent tous deux l’automatisation et l’intégration de données entre systèmes, mais à des échelles différentes. n8n est un outil d’automatisation de workflows “low-code” par nœuds visuels, proche de Zapier/Make mais auto-hébergeable et extensible en code. Talend est une plateforme ETL (Extract-Transform-Load) plus orientée entreprise, pour synchroniser et transformer de gros volumes de données entre bases, entrepôts de données et applications métier.

Historique

Talend est fondé en 2006, avec Talend Open Studio comme outil ETL open source, avant de développer une offre cloud/entreprise complète. n8n est créé en 2019 par une ancienne équipe de n8n GmbH, avec une licence “fair-code” (code source ouvert, usage commercial encadré), en réaction directe aux limites des outils SaaS fermés comme Zapier.

Avantages des versions récentes

Talend : plus de 800 flux pendant 10 ans

Pendant dix ans, j’ai utilisé Talend pour intégrer les marchands dans les comparateurs de produits : plus de 800 flux Talend qui alimentaient les comparateurs en produits.

Je suis ensuite passé à une solution Python, décrite dans la page sur les comparateurs de prix. n8n complète aujourd’hui la boîte à outils pour des automatisations de ce type, comme l’exemple ci-dessous.

Exemple de flux n8n : les prix des carburants

Ce flux n8n récupère chaque heure le fichier JSON des prix des carburants publié sur data.gouv.fr et l’indexe dans Elasticsearch, avec des contrôles et des alertes à chaque étape.

Flux n8n des prix des carburants : déclenchement horaire, calcul de la date et du nom d'index, gestion de l'index du jour, téléchargement du flux JSON, indexation en masse dans Elasticsearch, vérifications et e-mails d'erreur

Le flux enchaîne ces étapes :

  1. Déclenchement toutes les heures, puis calcul de la date et du nom de l’index du jour.
  2. Gestion de l’index du jour : au premier passage de la journée, le flux vérifie si l’index existe. Il le crée au besoin, bascule l’alias de lecture sur l’index du jour, puis lance un forcemerge pour compacter l’index.
  3. Téléchargement du flux JSON des carburants, puis analyse du fichier et préparation de l’envoi en masse.
  4. Indexation en masse (_bulk) dans Elasticsearch.
  5. Contrôles : l’envoi s’est-il fait sans erreur ? Après un refresh, l’index contient-il bien des documents ?
  6. Alertes par e-mail à chaque point de défaillance : analyse du JSON en échec, erreur de l’envoi en masse, index vide.

Chaque contrôle débouche sur une branche d’erreur explicite : un flux de données public qui change de format ou une indexation qui échoue en silence ne passent pas inaperçus.

Exemple de flux n8n : synchroniser site web, Brevo, Salesforce et MySQL

Pour le site Novethic (WordPress), n8n sert d’orchestrateur entre quatre systèmes qui ne se parlent pas nativement : le site web, Brevo (envoi des e-mails et listes marketing), Salesforce (gestion des contrats et des accès produits) et la base MySQL de WordPress (utilisateurs et groupes). Les échanges sont directs : chaque système appelle n8n ou est appelé par lui, sans outil intermédiaire.

Schéma des quatre flux n8n : le site web WordPress, Salesforce, Brevo et la base MySQL WordPress échangent par n8n, avec des webhooks sécurisés par JWT, les listes Brevo, l'objet AccesProduit__c de Salesforce et le groupe d'utilisateurs WordPress

Chaque système joue un rôle précis :

Quatre flux, numérotés sur le schéma, couvrent les cas d’usage :

  1. Création ou modification d’un compte. Dans Salesforce, un Record-Triggered Flow appelle un webhook n8n (sécurisé par JWT) quand un accès produit est créé ou modifié. n8n ajoute ou retire le contact des bonnes listes Brevo, et met à jour le groupe de l’utilisateur dans MySQL WordPress.
  2. Fin d’abonnement. Même chemin depuis Salesforce : n8n retire le contact des listes Brevo et force le groupe de l’utilisateur dans WordPress à une valeur de non-client.
  3. Mise à jour des listes depuis le site. Quand l’abonné modifie ses newsletters sur le site, celui-ci appelle un webhook n8n (JWT) avec l’e-mail et les listes Brevo choisies. n8n lit le groupe de l’utilisateur dans MySQL, met à jour Brevo, puis répercute le changement dans Salesforce (AccesProduit__c).
  4. Désinscription depuis Brevo. Un lien de désinscription dans un e-mail déclenche l’événement unsubscribed de Brevo, reçu par le déclencheur natif Brevo de n8n. n8n met alors à jour Salesforce.

Éviter les boucles de synchronisation

Quand deux systèmes se mettent à jour l’un l’autre, chaque modification risque de déclencher la suivante, indéfiniment. Ici, un champ anti-boucle (Sync_Depuis_n8n__c) sur l’objet Salesforce l’empêche. Salesforce n’appelle n8n que si le champ vaut false, c’est-à-dire pour une modification faite par un utilisateur. Quand n8n met à jour Salesforce, il positionne le champ à true : le Flow voit alors que le changement vient de n8n et ne rappelle pas le webhook.

Mon expertise

J’ai utilisé Talend pendant dix ans, avec plus de 800 flux pour intégrer les marchands dans les comparateurs de produits, avant de basculer sur une solution Python.

J’utilise aujourd’hui n8n pour des automatisations comme :

Source A Source B Workflow transform Destination
Contactez-moi