Faire une boucle avec n8n
Tuto Express :
- Créez un compte gratuit sur n8n
- Copiez/collez l’automatisation
- Personnalisez là
Soyons honnêtes, je n’aurais jamais cru écrire un jour un tuto sur comment faire une boucle, encore moi avec un outil de nocode ! Mais pour y avoir laisser quelques goutes de sueur, je me suis dis que j’allais vous épargner aussi de vous arracher les cheveux, on voit jusqu’où ça peut mener 🤣
Donc voici comment réaliser une simple boucle avec 3 bloc.
Les boucles dans n8n permettent de répéter une séquence d’opérations jusqu’à ce qu’une certaine condition soit remplie. Cela peut être utile pour automatiser des tâches itératives ou pour effectuer des opérations jusqu’à ce qu’un critère soit atteint.
Dans cet exemple, nous allons voir comment incrémenter une valeur (index) dans une boucle et arrêter la boucle une fois qu’une condition est remplie.
Table des Matières
Initialiser l’index
Ajoutez un nœud Set pour initialiser une variable index avec une valeur initiale.
Traitement
Ajoutez vos noeuds de traitement (par exemple en utilisant la variable de l’index {{$json.index}})
Incrémenter l’index
Ajoutez un autre nœud Set pour modifier la valeur de index en utilisant une expression. Cela incrémente index à chaque itération.
Tester l’index
Ajoutez un nœud If pour vérifier si la valeur de index dépasse un certain seuil (dans ce cas, 8).
Si la condition est remplie (index > 8), la boucle s’arrête.
Connectez le chemin “False” du nœud If au nœud Set d’incrémentation pour répéter la boucle.
n8n planté ?
Si vous vous êtes trompé dans votre conditions de sortie n8n part dans une boucle sans fin. Quand on clique sur arrêter le workflow, ça ne fonctionne pas.
Le seul moyen j’ai trouvé c’est de redémarrer mon container docker…
docker compose restart
Un peu violent ! On verra comment évoluer cette outil?
Template n8n gratuit
Copiez-Collez ce workflow dans votre n8n
{
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
-1380,
40
],
"id": "1f1a0b9f-f401-45b5-89b7-05ab61d42bc3",
"name": "When clicking ‘Test workflow’"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "8370fa54-821c-4766-abee-13e3aecf0250",
"name": "index",
"value": 2,
"type": "number"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-1060,
40
],
"id": "578d3fa9-708e-4d26-a99c-62432fe0ac67",
"name": "Initialiser index"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "8370fa54-821c-4766-abee-13e3aecf0250",
"name": "index",
"value": "={{ $json.index +1}}",
"type": "number"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-640,
40
],
"id": "1a35b38e-31df-47c5-a935-3bfe8971dd81",
"name": "Incrémenter Index"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "2309020c-b8aa-4fff-a713-ae123c202126",
"leftValue": "={{ $json.index }}",
"rightValue": 8,
"operator": {
"type": "number",
"operation": "gt"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
-40,
40
],
"id": "ff4caf16-ce75-496e-a9ef-b71afc153e7f",
"name": "Test Index"
},
{
"parameters": {},
"type": "n8n-nodes-base.noOp",
"typeVersion": 1,
"position": [
220,
0
],
"id": "dd188934-6ebb-4d45-bc76-5a6fa0edebcb",
"name": "Fin Boucle"
},
{
"parameters": {},
"type": "n8n-nodes-base.noOp",
"typeVersion": 1,
"position": [
-420,
40
],
"id": "f8703915-c6e0-4cd3-a583-eeb929d8cebe",
"name": "Remplacez-moi"
}
],
"connections": {
"When clicking ‘Test workflow’": {
"main": [
[
{
"node": "Initialiser index",
"type": "main",
"index": 0
}
]
]
},
"Initialiser index": {
"main": [
[
{
"node": "Incrémenter Index",
"type": "main",
"index": 0
}
]
]
},
"Incrémenter Index": {
"main": [
[
{
"node": "Remplacez-moi",
"type": "main",
"index": 0
}
]
]
},
"Test Index": {
"main": [
[
{
"node": "Fin Boucle",
"type": "main",
"index": 0
}
],
[
{
"node": "Incrémenter Index",
"type": "main",
"index": 0
}
]
]
},
"Remplacez-moi": {
"main": [
[
{
"node": "Test Index",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {}
}