Communauté française - n8n

Salut tout le monde,

n8n se développe et le nombre d’utilisateurs français augmente constamment.
Certains diront que la langue de Shakespeare est universelle et d’autres demanderont que tout soit traduit dans celle de Molière.
Je vous propose donc d’échanger ici en français pour faciliter les échanges et s’entraider pour sortir d’impasses techniques rencontrées sur n8n.

Pour ma part j’utilise n8n depuis quelques mois et j’en suis ravi. Son intuitivité n’est pas comparable aux pure players mais sa flexibilité sans limite en fait un atout majeur.

Partagez vos projets, réalisations et questions ici.

Augustin

PS : une première présentation de l’outil faite avec NoCode France (https://www.youtube.com/channel/UCDrK2g0vsXyyKhXQwQpUXfg) : No-code Session : Découvrez n8n avec Augustin et Romain - YouTube

Sujets abordés :

2 Likes

Merci Augustin pour ce post et ce live.

1 Like

Pour ma part j’utilise n8n dans 2 typologies de flow :

  • des flows opérationnels (upload de données, suppression de fichiers …) - via n8n local
  • des flows backend - via n8n cloud

Pour les flows opérationnels j’ai par exemple :

  • un flow simple me permettant, à partir d’une liste sur un GgSheet, de supprimer les files non utilisés de ma dB Bubble :

  • un flow plus élaboré pour reproduire le comportement d’un Webscraper

Pour les flows backend je joue avec le plugin API connector de Bubble pour envoyer des données à n8n via un webhook ainsi qu’avec les flow backend de Bubble sur lesquels j’envoie des données pour créer des instances de data :

1 Like

Au niveau des problématiques rencontrées sur n8n je me suis confronté à :

  • l’installation sur Docker pour avoir un accès fixe aux adresses de webhook. Je suis finalement passé par n8n cloud pour aller plus vite
  • l’utilisation des noeuds function et functionItem qui nécessite une compréhension plus poussée ainsi qu’une connaissance de Javascript. J’ai contourné cette problématique en me basant sur le forum qui a un délais de réponse très faible (les fondateurs sont hyper présents)
  • la logique d’ajout d’une data fixe (une seule ligne de data envoyée sur un webhook par exemple) à un ensemble de ligne. Je l’ai résolu via des noeuds Function

Merci pour ton post, @mumudu22! T’as raison: il n’est pas juste d’exiger que tout le monde s’exprime en anglais :crazy_face:

Et merci aussi pour ton feedback. Moi, je m’occupe du plan d’amélioration de n8n, et c’est très utile de savoir où t’as eu des problèmes.

Est-ce que tu peux m’en dire plus sur le troisième, et partager le code de ton noeud Function peut-être?

1 Like

n8n grandit, la communauté française va certainement faire de même :wink:

Pour le 3ème point je me rends compte qu’au final je n’ai même pas réussi à arriver à ce que je souhaitais.

Mon use case :

  • je reçois une ligne de données via un webhook (ex: customer id, price)
  • je souhaite le rajouter dans toutes les lignes de mon Google Sheet

N’ayant pas trouvé la solution, j’ai triché en ne rajoutant ma donnée que sur la première ligne du Google Sheet et en laissant dans le GGsheet une formule “= ligne du dessus”

Le nœud utilisé :

{
  "nodes": [
    {
      "parameters": {
        "functionCode": "item.user_id = $evaluateExpression($node[\"Webhook\"].json[\"body\"][\"user_id\"],1);\nitem.style = $evaluateExpression($node[\"Webhook\"].json[\"body\"][\"style\"],1);\nitem.genre_sex = $evaluateExpression($node[\"Webhook\"].json[\"body\"][\"genre\"],1);\nitem.price_min = $evaluateExpression($node[\"Webhook\"].json[\"body\"][\"price_min\"],1);\nitem.price_max = $evaluateExpression($node[\"Webhook\"].json[\"body\"][\"price_max\"],1);\nitem.id_user_watch = $evaluateExpression($node[\"Webhook\"].json[\"body\"][\"user_id\"],1) + \"_\" + $evaluateExpression($node[\"1 - Read Google Sheet\"].json[\"id_watch\"]);\nreturn item;\n"
      },
      "name": "FunctionItem",
      "type": "n8n-nodes-base.functionItem",
      "typeVersion": 1,
      "position": [
        -460,
        190
      ]
    }
  ],
  "connections": {}
}

PS : mes connaissances en Javascript sont à 0

Pas de pb — on t’aide à trouver la solution :slight_smile:

Est-ce que tu veux trouver les lignes dans le Google sheet ayant le même customer id que t’as reçu du webhook, puis ajouter le price?

Il serait utile de voir tout ton workflow, si tu peux le coller ici. (Tu peux juste sélectionner tous les nœuds et les copier)

Je crée un sujet parallèle pour avoir un thread dédié sur les problématiques rencontrées ça sera plus clair

Salut,
Bonne idée pour la communauté française. Je l’ai mis en place dans ma société dans un docker. Aujourd’hui je m’en sers pour répliquer des données de base postgresql. Mais j’aimerai utiliser plus de fonctionnalités, comme les webhooks.

Salut Olivier,

Bienvenue dans la communauté. On est entrain de créer un vrai espace dédié pour ne pas créer de confusion avec la communauté anglophone.

Peux-tu nous partager ton workflow visuellement et le code (sélectionne tous les noeuds avec la souris ou ctrl + A, puis ctrl + C et ctrl + V dans cette fenêtre) pour que l’on puisse s’en inspirer si besoin ?

Si tu as des questions sur les webhook n’hésite pas. Comme expliqué dans la vidéo de présentation du topic, il est possible d’utiliser un webhook en local en lançant n8n avec la commande suivante dans le terminal:

n8n start --tunnel -o

Cependant l’adresse de ton webhook changera à chaque fois que tu éteindras ton ordinateur ou fermeras ton terminal.

Cordialement

Bonjour à tous et merci pour cette section “Communauté française - n8n”.

J’utilise N8N dans un pod K8S, basé non pas sur l’image docker officielle n8n mais basée sur un node:alpine dans lequel j’installe n8n, les charts utilisés sont ceux officiels par contre (GitHub - 8gears/n8n-helm-chart: A Kubernetes Helm chart for n8n a Workflow Automation Tool. Easily automate tasks across different services.).
Il tourne avec une base PostgreSQL 14, et les ressources du pod N8N sont de 3Go de RAM et 2 cpu.

Voici mon souci, j’ai un workflow dont le but est de :

  • vérifier toutes les minutes si un fichier CSV avec un certain nom est présent sur un serveur SFTP
  • si c’est le cas le fichier est téléchargé, puis lu
  • puis pour chaque ligne de ce csv je fais juste :slight_smile:

    un ajustement de format de date (ex : DD/MM/YYYY vers YYYY-MM-DD)
    mettre des valeurs par défauts pour certains attributs pouvant être null dans le csv
    et enfin appeler un Webservice pour enregistrer ces données

Mon souci est que cela fonctionne bien avec des petits fichiers CSV (ex: inférieurs à 5000 lignes) mais sur des plus gros volumes les workflows finissent toujours en erreur avec “unknown reason” au bout de 20 000 lignes traitées environ …

Au départ je voyais cette erreur dans les logs n8n :
<— Last few GCs —>
*[9991:0x7ff0f843e340] 7496627 ms: Scavenge 1526.1 (1558.2) → 1524.3 (1558.7) MB, 5.1 / 0.0 ms (average mu = 0.151, current mu = 0.122) allocation failure *
*[9991:0x7ff0f843e340] 7496638 ms: Scavenge 1526.6 (1558.7) → 1525.2 (1560.2) MB, 6.6 / 0.0 ms (average mu = 0.151, current mu = 0.122) allocation failure *
*[9991:0x7ff0f843e340] 7496648 ms: Scavenge 1528.0 (1560.2) → 1526.3 (1569.2) MB, 6.1 / 0.0 ms (average mu = 0.151, current mu = 0.122) allocation failure *
<— JS stacktrace —>
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
Subprocess for execution ID 161141 finished with error code null. {“executionId”:“161141”,“file”:“WorkflowRunner.js”}

Donc un problême de mémoire qui ne déclenchait même pas le Error Workflow.
J’ai fait pleins d’essais différents que ce soit sur les variables d’environements N8N (voir ci-dessous) ou sur de l’optimisation de mon workflow (ex : utilisation de SplitInBatches avec execution d’un sous-workflow, limiter au maximum l’utilisation des noeuds Function/FunctionItems etc…) mais rien y fait mes workflows finissent toujours en erreurs, à ceci près que dorénavant je n’ai plus l’erreur “Javascript heap space out of memory” mais que j’ai uniquement le message d’erreur null :
Subprocess for execution ID 161673 finished with error code null.

Voici la configuration de mes variables d’environnements pour N8N :
N8N_LOG_LEVEL: debug
N8N_METRICS: false
N8N_DEFAULT_BINARY_DATA_MODE: filesystem
N8N_USE_DEPRECATED_REQUEST_LIB: true
N8N_PAYLOAD_SIZE_MAX: 128
EXECUTIONS_DATA_SAVE_ON_PROGRESS: false
EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS: true
EXECUTIONS_DATA_PRUNE: true
EXECUTIONS_DATA_MAX_AGE: 72
EXECUTIONS_TIMEOUT: -1
EXECUTIONS_TIMEOUT_MAX: 86400
GENERIC_TIMEZONE: Europe/Paris
TZ: Europe/Paris
EXECUTIONS_PROCESS: own
EXECUTIONS_MODE: regular

J’utilise N8N depuis plusieurs mois et je n’avais jamais rencontré de souci avant car les volumes de données étaient plus petits.

Je ne sais plus quoi faire pour que mes workflows ne finissent pas en erreur sur des gros volumes de données…

Merci d’avance à vous tous si vous voyez des incohérences dans les valeurs d’environnements de mon N8N ou d’autres choses à modifier.

Sorry but this forum is only for posts in English. If you want to ask questions in french please post them to the french forum:

There are however also much less people and an answer will likely take longer. An alternative would be to still post in this forum but translate your question into English first. Thanks!