Introduction a l’open source n8n

By 4 juillet 2022avril 9th, 2024Technique

n8n Introduction:

n8n est un outil « low-code » assez évolué qui va vous permettre d’automatiser certaines tâches à partir d’une suite d’actions basées sur des nœuds. Il s’agit d’une application qui intègre des applications entre elles au travers de leur API (Application Programming Interface) afin d’automatiser des « workflows ».

Attention n8n est un peu plus compliqué que Zapier. N8n est plutôt réservé à des gens qui ont un peu de connaissance en développement. Il peut être utilisé directement en mode cloud depuis le site https://n8n.io.

Téléchargement :

n8n est une application qui est très facile à installée. En allant sur le projet du site, elle peut être téléchargée pour Windows ou Apple.

n8n est un outil d’automatisation auto-hébergé donc il est également possible de télécharger n8n manuellement. Il faut d’abord télécharger et installer Docker Desktop. Ensuite, ouvrir le terminal et lancer la commande :

docker pull n8nio/n8n

Si vous consultez les images dans Docker Desktop, vous pourrez voir que n8n est créé. Cliquez sur le bouton run et entrez 5678 pour l’hôte local. Les autres champs peuvent être remplis comme l’utilisateur le souhaite. Après avoir cliqué sur le bouton run, il est possible d’ouvrir n8n dans votre navigateur.

Il est aussi possible de l’utiliser n8n sur le cloud mais il existe un forfait de 20 euros pour 5000 exécutions par mois

Eléments Importants de n8n :

Les nœuds sont les points de connexion de vos blocs d’automatisations n8n. Ils sont les éléments constitutifs de l’automatisation: les données entrent par les nœuds, sont traitées par les nœuds et sortent finalement par les nœuds.

  • Les nœuds de base sont des fonctions ou des services qui peuvent être utilisés pour contrôler le mode d’exécution des workflows ou pour fournir un support API générique.
  • Les nœuds de déclenchement (trigger) sont les points de départ de l’automatisation. Ils sont toujours le premier nœud du flux de travail et agissent comme un feu  vert pour les nœuds suivants.  Dans n8n, il peut y avoir plusieurs nœuds de déclenchement en plus du nœud de départ.
  • Les nœuds réguliers exécutent une certaine action, par exemple récupérer des données ou créer une entrée dans un calendrier. Leurs noms sont cohérents avec les  applications qu’ils exécutent.

Les éléments (Items) sont les stockages pour les données exécutées. Un élément est une collection de données qui a été envoyée d’un nœud à l’autre comme un tableau d’objets JSON  (JavaScript Object Notation) . Les nœuds peuvent traiter plusieurs éléments en même temps.

La connexion est un lien qui relie plusieurs nœuds. Il s’agit d’un itinéraire permettant de faire passer les données de la sortie d’un nœud à l’entrée d’un autre nœud. Un nœud peut avoir une ou plusieurs connexions.

Le workflow est un système dont la structure est constituée de nœuds, en connectant les nœuds, vous pouvez créer un flux de travail. Au départ, il s’agit toujours d’une ardoise vierge dans laquelle vous pouvez ajouter des nœuds comme vous le souhaitez. En utilisant différents flux de travail, il est également possible de séparer les automatisations les unes des autres.

Démarrage :

Pour commencer à travailler, vous devez créer un nouveau flux de travail en utilisant l’icône de flux de travail dans le menu de gauche. Le nœud de départ dans le nouveau workflow est le nœud de déclenchement par défaut et peut être utilisé pour exécuter l’automatisation. En cliquant sur le signe orange + sur le côté droit de la page, il est possible d’ouvrir le panneau des nœuds et d’ajouter n’importe quelle application comme nœud au flux de travail.

L’exécution du programme :

Un flux de travail commence lorsqu’un nœud est connecté à un nœud déclencheur. Il peut s’agir d’un nœud qui peut créer des données par lui-même, recevoir les données du disque, recevoir les données d’une autre application qui a une API.

Après avoir obtenu les données du nœud, il est possible de définir l’opération qui doit être exécutée.  Il est ensuite possible de configurer l’apparence et l’exécution du nœud avec les paramètres (Settings) du nœud.

Lorsque tous les paramètres nécessaires sont remplis, le programme peut être exécuté avec le nœud de démarrage ou le nœud lui-même peut être exécuté avec l’option de nœud d’exécution. Si le workflow s’exécute avec succès, un tic vert apparaîtra sur les icônes des nœuds et il sera possible de voir la sortie. Si ce n’est pas le cas, le programme affichera le message « Problème d’exécution du flux de travail » avec le détail de l’erreur.

Création d’un Nœud :

Les nœuds utilisés dans n8n sont composés de plusieurs fichiers.  La fonction du nœud est définie par un fichier JavaScript (.js) et ses propriétés sont définies par un fichier html. Un fichier package.json est utilisé pour empaqueter le tout comme un module npm.

Il est possible de créer un nœud personnalisé dans n8n. Pour créer un nœud personnalisé, il est nécessaire d’avoir des connaissances de base en JavaScript/TypeScript. De plus, il est utile de connaître le fonctionnement de l’API et des expressions dans n8n pour une meilleure compréhension.

Tout d’abord, installez et ouvrez Git sur votre ordinateur. Ensuite, vous pouvez installer lerna globalement avec la commande suivante :

npm install --global lerna  //installation de lerna

Si vous n’avez pas de compte existant, ouvrez un compte GitHub, puis créez une branche (fork) du dépôt n8n. Vous pouvez le cloner avec la commande suivante :

git clone https://github.com/ VotreNomdUtilisateurGitHub /n8n.git && cd n8n

Dans Github, il est possible de trouver un exemple pour le code du nœud souhaité qui veut être créé. Ils peuvent être trouvés dans le dossier packages/nodes-base/nodes. (Ce fichier contient tous les nœuds de n8n.)

Lorsque vous commencez à créer un nœud, créez un nouveau dossier avec le nom des nœuds personnalisés dans votre dossier packages/nodes-base/nodes. Dans ce dossier les dossiers NomdeNoeud.node.ts et NomdeNoeud.svg doivent être recréés. NomdeNoeud.node.ts étant le code des nœuds et NomdeNoeud.svg étant l’icône des nœuds (votre icône doit être un SVG ou un PNG de 60×60 pixels). Après il faut coller (dans l’ordre alphabétique) dist/nodes/NomdeNoeud/NomdeNoeud.node.js dans le fichier packages/nodes-base/package.json. Cette action devrait enregistrer le nœud dans le tableau des nœuds.

Pour visualiser votre nœud, allez dans le dossier principal du projet (n8n) dans le terminal et exécutez les commandes suivantes.

lerna bootstrap -–hoist  //installe toutes les dépendances de tous les modules, les relie entre eux

npm run build            //construit tout le code

npm run dev             //démarre n8n en mode développement

Ouvrez votre navigateur et allez à localhost:8080 et vous devriez être en mesure de voir l’interface utilisateur de l’éditeur. Maintenant, lorsque vous tapez le nom de votre nœud, vous devriez être en mesure de le trouver dans le menu Créer un nœud, cliquez dessus pour l’ajouter à l’interface utilisateur de l’éditeur.

Un nœud doit également être composé de certains paramètres tels que l’opération et la ressource. Ces paramètres peuvent être ajoutés sous description.properties dans packages/nodes-base/nodes/NomdeNoeud/NomdeNoeud.node.ts.

Pour plus de détails, les instructions peuvent être trouvées sur le site web.

Exemple de Video

Maintenir le Fonctionnement de n8n Après la Fermeture du Terminal

Lorsque nous utilisons n8n, nous voulons qu’il continue à fonctionner en arrière-plan. Pour cette fonction, nous utilisons la version que nous avons téléchargée manuellement sur notre ordinateur en utilisant Docker Desktop.

Nous allons dans la section containers de Docker Desktop et ouvrons le terminal de notre n8n. Maintenant, nous devons configurer le n8n pour qu’il fonctionne via PM2. Pour ce faire, nous écrivons dans le terminal :

npm install pm2 -g    // installation du pm2

Ensuite vous pouvez démarrer le n8n avec pm2 en écrivant :

pm2 start n8n