Sauvegarde des workflows N8N sur Github
Avancé
Ceci est uncontenant 30 nœuds.Utilise principalement des nœuds comme If, N8n, Set, Code, Wait. Sauvegarde des workflows N8N vers Github
Prérequis
- •Personal Access Token GitHub
- •Token Bot Discord ou Webhook
Nœuds utilisés (30)
Catégorie
-
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
"meta": {
"instanceId": "7a94cd64cdcb53cb721e010cea9e90907c1dc5fd6766b2d732b573c42bb273f8",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "696255b0-7786-410c-927f-ffb4fa7784b9",
"name": "Au clic sur 'exécuter'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
400,
-400
],
"parameters": {},
"typeVersion": 1
},
{
"id": "5ffbd7ff-596c-4d69-a327-95ab9e31c144",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
140
],
"parameters": {
"color": 6,
"width": 2111,
"height": 752,
"content": "## Subworkflow"
},
"typeVersion": 1
},
{
"id": "d552bfbd-24cc-43ab-b008-ba837525e234",
"name": "Déclencheur d'exécution de flux de travail",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
180,
540
],
"parameters": {},
"typeVersion": 1
},
{
"id": "4cf656ea-b62c-4c9a-9a2c-f3cd4736af6f",
"name": "n8n",
"type": "n8n-nodes-base.n8n",
"position": [
800,
-300
],
"parameters": {
"filters": {},
"requestOptions": {}
},
"credentials": {
"n8nApi": {
"id": "n99peePbw8bFtE9X",
"name": "N8N Key (Github Backup)"
}
},
"typeVersion": 1
},
{
"id": "bc776b1e-de7a-4c5c-ab3e-fc6ede7f6d93",
"name": "Retour",
"type": "n8n-nodes-base.set",
"position": [
2140,
340
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "8d513345-6484-431f-afb7-7cf045c90f4f",
"name": "Done",
"type": "boolean",
"value": true
}
]
}
},
"typeVersion": 3.3
},
{
"id": "cc1748c6-972e-4909-a0d9-2aada40e49b6",
"name": "Si fichier trop volumineux",
"type": "n8n-nodes-base.if",
"position": [
820,
260
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "45ce825e-9fa6-430c-8931-9aaf22c42585",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.content }}",
"rightValue": ""
},
{
"id": "3ce332ca-3827-4c2d-becd-837da737d285",
"operator": {
"type": "string",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{ $json.error }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2
},
{
"id": "68c529b3-8530-42c9-8efa-7c35ea6c24f0",
"name": "Fusionner les éléments",
"type": "n8n-nodes-base.merge",
"position": [
820,
520
],
"parameters": {},
"typeVersion": 2
},
{
"id": "627cc21c-1f7f-4266-a558-357289bb2746",
"name": "Même fichier - Ne rien faire",
"type": "n8n-nodes-base.noOp",
"position": [
1680,
340
],
"parameters": {},
"typeVersion": 1
},
{
"id": "6e77f25e-b58c-4e23-a5c7-1951c36e59b6",
"name": "Le fichier est différent",
"type": "n8n-nodes-base.noOp",
"position": [
1680,
500
],
"parameters": {},
"typeVersion": 1
},
{
"id": "37d72317-7140-45eb-ac62-e88ec7b9fc97",
"name": "Le fichier est nouveau",
"type": "n8n-nodes-base.noOp",
"position": [
1680,
700
],
"parameters": {},
"typeVersion": 1
},
{
"id": "770c9612-e6fb-4d6c-9a89-459e7d5acc31",
"name": "Créer un nouveau fichier",
"type": "n8n-nodes-base.github",
"position": [
1900,
700
],
"webhookId": "fc6b1cf0-6440-4fb0-94bf-fadabb6ea1fd",
"parameters": {
"owner": {
"__rl": true,
"mode": "name",
"value": "={{ $('Config').first().json.repo_owner }}"
},
"filePath": "={{ $('Create sub path').item.json.subPath }}/{{ $('Execute Workflow Trigger').first().json.id }}.json",
"resource": "file",
"repository": {
"__rl": true,
"mode": "name",
"value": "={{ $('Config').first().json.repo_name }}"
},
"fileContent": "={{ JSON.stringify($('Config').first().json.data) }}",
"commitMessage": "={{$('Execute Workflow Trigger').first().json.name}} ({{$json.githubStatus}})"
},
"credentials": {
"githubApi": {
"id": "nEsQmNXwV6LPvaNE",
"name": "GitHub account"
}
},
"typeVersion": 1
},
{
"id": "121272d6-0535-494e-b14a-3cc00f87cb8d",
"name": "Modifier le fichier existant",
"type": "n8n-nodes-base.github",
"position": [
1900,
500
],
"webhookId": "81fc5f33-06e3-4368-ba2e-0ef46dd8b021",
"parameters": {
"owner": {
"__rl": true,
"mode": "name",
"value": "={{ $('Config').first().json.repo_owner }}"
},
"filePath": "={{ $('Create sub path').item.json.subPath }}/{{ $('Execute Workflow Trigger').first().json.id }}.json",
"resource": "file",
"operation": "edit",
"repository": {
"__rl": true,
"mode": "name",
"value": "={{ $('Config').first().json.repo_name }}"
},
"fileContent": "={{ JSON.stringify($('Config').first().json.data) }}",
"commitMessage": "={{$('Execute Workflow Trigger').first().json.name}} ({{ $json.githubStatus }})"
},
"credentials": {
"githubApi": {
"id": "nEsQmNXwV6LPvaNE",
"name": "GitHub account"
}
},
"typeVersion": 1
},
{
"id": "2847116a-c862-4803-8079-a40e4edd22f7",
"name": "Boucle sur les éléments",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1000,
-300
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "ec0c92a3-73fa-480b-bdd3-e51648e8b0a0",
"name": "Déclencheur planifié",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
400,
-200
],
"parameters": {
"rule": {
"interval": [
{
"field": "weeks",
"triggerAtDay": [
6
],
"triggerAtHour": 1
}
]
}
},
"typeVersion": 1.2
},
{
"id": "289ec775-7191-4710-85e8-ae33542f9fbd",
"name": "Créer un sous-chemin",
"type": "n8n-nodes-base.set",
"position": [
1260,
520
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "dae43d3b-56e5-4098-b602-862ebf5cd073",
"name": "subPath",
"type": "string",
"value": "={{ $now.setZone('UTC').toFormat('yyyy') }}/{{ $now.setZone('UTC').toFormat('MM') }}/{{ $now.setZone('UTC').toFormat('dd') }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.3
},
{
"id": "b9bf504a-3acf-4706-992d-a522e9693df8",
"name": "Note adhésive 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
-500
],
"parameters": {
"color": 7,
"width": 2113,
"height": 616,
"content": "## Main workflow loop"
},
"typeVersion": 1
},
{
"id": "2470503e-cb6a-44a5-a4aa-b431874e2e09",
"name": "Configuration",
"type": "n8n-nodes-base.set",
"position": [
440,
540
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "8f6d1741-772f-462a-811f-4c334185e4f0",
"name": "repo_owner",
"type": "string",
"value": "=datproto"
},
{
"id": "8cac215c-4fd7-422f-9fd2-6b2d1e5e0383",
"name": "repo_name",
"type": "string",
"value": "=datproto-backup-n8n"
},
{
"id": "2b38f96a-a970-4d13-900e-f15e4cd65c51",
"name": "data",
"type": "object",
"value": "={{\n {\n \"nodes\": $('Execute Workflow Trigger').item.json.nodes,\n \"connections\": $('Execute Workflow Trigger').item.json.connections,\n \"pinData\": $('Execute Workflow Trigger').item.json.pinData,\n \"meta\": $('Execute Workflow Trigger').item.json.meta\n }\n}}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "a7d835f2-de5e-4121-acad-9041c126401c",
"name": "Message de départ",
"type": "n8n-nodes-base.discord",
"position": [
600,
-300
],
"webhookId": "53d9dd11-ca31-4eea-8dc8-bac95c8bcc04",
"parameters": {
"content": "=The Git backup here. Below is my latest activity:\n```\n👉 Starting Workflow Backup [{{ $execution.id }}]\n```",
"guildId": {
"__rl": true,
"mode": "list",
"value": "1344944764851851344",
"cachedResultUrl": "https://discord.com/channels/1344944764851851344",
"cachedResultName": "Dat Proto's server"
},
"options": {},
"resource": "message",
"channelId": {
"__rl": true,
"mode": "list",
"value": "1344944973958873212",
"cachedResultUrl": "https://discord.com/channels/1344944764851851344/1344944973958873212",
"cachedResultName": "n8n"
}
},
"credentials": {
"discordBotApi": {
"id": "i8z7R64uXW2cjYik",
"name": "N8N Bot"
}
},
"typeVersion": 2
},
{
"id": "c71ddc51-cbf9-4437-b2b4-9d60f2e1a039",
"name": "Notification d'achèvement",
"type": "n8n-nodes-base.discord",
"position": [
1640,
-440
],
"webhookId": "53d9dd11-ca31-4eea-8dc8-bac95c8bcc04",
"parameters": {
"content": "=The Git backup here. Below is my latest activity:\n```\n✅ Backup has completed - {{ $('n8n').all().length }} workflows have been processed.\n```",
"guildId": {
"__rl": true,
"mode": "list",
"value": "1344944764851851344",
"cachedResultUrl": "https://discord.com/channels/1344944764851851344",
"cachedResultName": "Dat Proto's server"
},
"options": {},
"resource": "message",
"channelId": {
"__rl": true,
"mode": "list",
"value": "1344944973958873212",
"cachedResultUrl": "https://discord.com/channels/1344944764851851344/1344944973958873212",
"cachedResultName": "n8n"
}
},
"credentials": {
"discordBotApi": {
"id": "i8z7R64uXW2cjYik",
"name": "N8N Bot"
}
},
"executeOnce": true,
"typeVersion": 2
},
{
"id": "110ba2cd-6a39-4663-81d5-6b2893d42e18",
"name": "Obtenir les données du fichier",
"type": "n8n-nodes-base.github",
"position": [
620,
260
],
"webhookId": "883c4829-4a9d-4320-ab49-226a5bc15863",
"parameters": {
"owner": {
"__rl": true,
"mode": "name",
"value": "={{ $json.repo_owner }}"
},
"filePath": "={{ $now.setZone('UTC').toFormat('yyyy') }}/{{ $now.setZone('UTC').toFormat('MM') }}/{{ $now.setZone('UTC').toFormat('dd') }}/{{ $('Execute Workflow Trigger').item.json.id }}.json",
"resource": "file",
"operation": "get",
"repository": {
"__rl": true,
"mode": "name",
"value": "={{ $json.repo_name }}"
},
"asBinaryProperty": false,
"additionalParameters": {}
},
"credentials": {
"githubApi": {
"id": "nEsQmNXwV6LPvaNE",
"name": "GitHub account"
}
},
"typeVersion": 1,
"continueOnFail": true,
"alwaysOutputData": true
},
{
"id": "2bdbcb80-2c2b-4fb8-bddb-eb9e6c6db0e0",
"name": "Exécuter le flux de travail",
"type": "n8n-nodes-base.executeWorkflow",
"onError": "continueErrorOutput",
"position": [
1420,
-200
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "id",
"value": "={{ $workflow.id }}"
},
"workflowInputs": {
"value": {},
"schema": [],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.2
},
{
"id": "2366b904-8f2f-42ce-aa2f-fc941cb73ad4",
"name": "Attendre",
"type": "n8n-nodes-base.wait",
"position": [
1640,
-100
],
"webhookId": "577d599b-e2eb-4e7c-92aa-b9ca787cc40a",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "e9ad632a-0506-4709-a485-67c45bf388f6",
"name": "Obtenir le fichier",
"type": "n8n-nodes-base.github",
"position": [
1040,
240
],
"webhookId": "81fc5f33-06e3-4368-ba2e-0ef46dd8b021",
"parameters": {
"owner": {
"__rl": true,
"mode": "name",
"value": "={{ $('Config').item.json.repo_owner }}"
},
"filePath": "={{ $now.setZone('UTC').toFormat('yyyy') }}/{{ $now.setZone('UTC').toFormat('MM') }}/{{ $now.setZone('UTC').toFormat('dd') }}/{{ $('Execute Workflow Trigger').item.json.id }}.json",
"resource": "file",
"operation": "get",
"repository": {
"__rl": true,
"mode": "name",
"value": "={{ $('Config').item.json.repo_name }}"
},
"additionalParameters": {}
},
"credentials": {
"githubApi": {
"id": "nEsQmNXwV6LPvaNE",
"name": "GitHub account"
}
},
"typeVersion": 1
},
{
"id": "656913c3-cb57-4129-ae12-42f70800a9ef",
"name": "Attendre 1",
"type": "n8n-nodes-base.wait",
"position": [
1420,
-440
],
"webhookId": "4a7448b4-930e-4110-b205-95c55cac5bba",
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "09738ea8-1a61-4967-ac3d-2a9f64b39329",
"name": "Vérifier la différence",
"type": "n8n-nodes-base.code",
"position": [
1040,
520
],
"parameters": {
"jsCode": "const _ = require(\"underscore\")\n\nlet fileInput = null\n\nif (Object.keys($input.first().json).includes(\"content\")) {\n fileInput = JSON.parse(Buffer.from($input.all()[0].json.content, 'base64').toString())\n}\n\nconst n8nInput = $input.last().json.data\n\nif (!fileInput) {\n return {\n \"githubStatus\": \"new\"\n }\n}\n\nif (_.isMatch(fileInput, n8nInput)) {\n return {\n \"githubStatus\": \"same\"\n }\n} else {\n return {\n \"githubStatus\": \"different\"\n }\n}"
},
"typeVersion": 2
},
{
"id": "7cb7b34c-8742-44c3-9792-1084abf2783a",
"name": "Commutateur",
"type": "n8n-nodes-base.switch",
"position": [
1460,
520
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "same",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "1e6de6b4-3074-41bc-8a9d-465c0eb9a773",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('verifyTheDifference').first().json.githubStatus }}",
"rightValue": "same"
}
]
},
"renameOutput": true
},
{
"outputKey": "different",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "cf6e130e-c85d-4a24-b11a-abfd0ecfcb19",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('verifyTheDifference').first().json.githubStatus }}",
"rightValue": "different"
}
]
},
"renameOutput": true
},
{
"outputKey": "=new",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f2fc6dda-85f5-4b81-b016-3e033b1dbcab",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('verifyTheDifference').first().json.githubStatus }}",
"rightValue": "new"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "c6410f39-34d8-448f-9efd-d66da067637b",
"name": "Attendre 2",
"type": "n8n-nodes-base.wait",
"position": [
1640,
-280
],
"webhookId": "4a7448b4-930e-4110-b205-95c55cac5bba",
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "a3c4ff40-9887-4e38-985a-f32536d9306f",
"name": "Note adhésive 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-540,
-500
],
"parameters": {
"color": 4,
"width": 680,
"height": 1400,
"content": "# Workflows backup to Github\n======================================================================\n\n## Introduction\nThis workflow will backup all of your existed workflows to a single Github repository.\n\nThe Backup folders' name are based on the current backup date and have default format: \"yyyy/MM/dd\" (setup at \"Create sub path\" node).\n\nThroughout the backup process, the N8N will inform user via discord with clear message about Start, Success and Failure backups.\n\n## Tech Stack\nThe following nodes / services / libraries are used in this workflow:\n\n### Nodes:\n1. **Discord:** To send message to configured setup channel.\n2. **N8N:** To get all workflows' information.\n3. **Github:** To store backup data.\n4. **Code:** To run data comparison (Existed vs Latest workflow data).\n5. **Wait:** To avoid discord message rate limit.\n\n### External libraries:\n1. **Underscore.js:** JavaScript library that provides lots of common Javascript functions, to help user save time when using code node.\n\n## Guideline\n1. Open \"Config\" node and setup the following information:\n - **repo_owner:** Your Github username.\n - **repo_name:** The repository that you want to store workflows backup data.\n2. Open \"Create sub path\" node and change the naming and path format of backup folder(s).\n3. Setup custom messages in 3 discord nodes:\n - **Starting Message:** N8N inform user at the time workflow start.\n - **Inform Success Flows:** After each success backup, N8N will notify user.\n - **Inform Failed Flows:** After each failure backup, N8N will notify user to have appropriate action.\n - **Completed Notifications:** Then at the final, the workflow will give user a summary."
},
"typeVersion": 1
},
{
"id": "d511ce8a-1617-4a2a-96d8-6e71ddc372b7",
"name": "Informer les flux réussis",
"type": "n8n-nodes-base.discord",
"onError": "continueRegularOutput",
"position": [
1840,
-280
],
"webhookId": "53d9dd11-ca31-4eea-8dc8-bac95c8bcc04",
"parameters": {
"content": "=The Git backup here. Below is my latest activity:\n```\n✅ Success to backup {{ $('Loop Over Items').item.json.id }}\n```",
"guildId": {
"__rl": true,
"mode": "list",
"value": "1344944764851851344",
"cachedResultUrl": "https://discord.com/channels/1344944764851851344",
"cachedResultName": "Dat Proto's server"
},
"options": {},
"resource": "message",
"channelId": {
"__rl": true,
"mode": "list",
"value": "1344944973958873212",
"cachedResultUrl": "https://discord.com/channels/1344944764851851344/1344944973958873212",
"cachedResultName": "n8n"
}
},
"credentials": {
"discordBotApi": {
"id": "i8z7R64uXW2cjYik",
"name": "N8N Bot"
}
},
"typeVersion": 2
},
{
"id": "21052f64-d4b6-4b67-8cb4-dd022a0dab71",
"name": "Informer les flux échoués",
"type": "n8n-nodes-base.discord",
"position": [
1840,
-100
],
"webhookId": "53d9dd11-ca31-4eea-8dc8-bac95c8bcc04",
"parameters": {
"content": "=The Git backup here. Below is my latest activity:\n```\n👉 Failed to backup {{ $('Loop Over Items').item.json.id }}\n```",
"guildId": {
"__rl": true,
"mode": "list",
"value": "1344944764851851344",
"cachedResultUrl": "https://discord.com/channels/1344944764851851344",
"cachedResultName": "Dat Proto's server"
},
"options": {},
"resource": "message",
"channelId": {
"__rl": true,
"mode": "list",
"value": "1344944973958873212",
"cachedResultUrl": "https://discord.com/channels/1344944764851851344/1344944973958873212",
"cachedResultName": "n8n"
}
},
"credentials": {
"discordBotApi": {
"id": "i8z7R64uXW2cjYik",
"name": "N8N Bot"
}
},
"typeVersion": 2
}
],
"pinData": {},
"connections": {
"4cf656ea-b62c-4c9a-9a2c-f3cd4736af6f": {
"main": [
[
{
"node": "2847116a-c862-4803-8079-a40e4edd22f7",
"type": "main",
"index": 0
}
]
]
},
"2366b904-8f2f-42ce-aa2f-fc941cb73ad4": {
"main": [
[
{
"node": "21052f64-d4b6-4b67-8cb4-dd022a0dab71",
"type": "main",
"index": 0
}
]
]
},
"656913c3-cb57-4129-ae12-42f70800a9ef": {
"main": [
[
{
"node": "c71ddc51-cbf9-4437-b2b4-9d60f2e1a039",
"type": "main",
"index": 0
}
]
]
},
"c6410f39-34d8-448f-9efd-d66da067637b": {
"main": [
[
{
"node": "d511ce8a-1617-4a2a-96d8-6e71ddc372b7",
"type": "main",
"index": 0
}
]
]
},
"2470503e-cb6a-44a5-a4aa-b431874e2e09": {
"main": [
[
{
"node": "68c529b3-8530-42c9-8efa-7c35ea6c24f0",
"type": "main",
"index": 1
},
{
"node": "110ba2cd-6a39-4663-81d5-6b2893d42e18",
"type": "main",
"index": 0
}
]
]
},
"7cb7b34c-8742-44c3-9792-1084abf2783a": {
"main": [
[
{
"node": "627cc21c-1f7f-4266-a558-357289bb2746",
"type": "main",
"index": 0
}
],
[
{
"node": "6e77f25e-b58c-4e23-a5c7-1951c36e59b6",
"type": "main",
"index": 0
}
],
[
{
"node": "37d72317-7140-45eb-ac62-e88ec7b9fc97",
"type": "main",
"index": 0
}
]
]
},
"e9ad632a-0506-4709-a485-67c45bf388f6": {
"main": [
[
{
"node": "68c529b3-8530-42c9-8efa-7c35ea6c24f0",
"type": "main",
"index": 0
}
]
]
},
"37d72317-7140-45eb-ac62-e88ec7b9fc97": {
"main": [
[
{
"node": "770c9612-e6fb-4d6c-9a89-459e7d5acc31",
"type": "main",
"index": 0
}
]
]
},
"68c529b3-8530-42c9-8efa-7c35ea6c24f0": {
"main": [
[
{
"node": "09738ea8-1a61-4967-ac3d-2a9f64b39329",
"type": "main",
"index": 0
}
]
]
},
"110ba2cd-6a39-4663-81d5-6b2893d42e18": {
"main": [
[
{
"node": "cc1748c6-972e-4909-a0d9-2aada40e49b6",
"type": "main",
"index": 0
}
]
]
},
"770c9612-e6fb-4d6c-9a89-459e7d5acc31": {
"main": [
[
{
"node": "bc776b1e-de7a-4c5c-ab3e-fc6ede7f6d93",
"type": "main",
"index": 0
}
]
]
},
"289ec775-7191-4710-85e8-ae33542f9fbd": {
"main": [
[
{
"node": "7cb7b34c-8742-44c3-9792-1084abf2783a",
"type": "main",
"index": 0
}
]
]
},
"2847116a-c862-4803-8079-a40e4edd22f7": {
"main": [
[
{
"node": "656913c3-cb57-4129-ae12-42f70800a9ef",
"type": "main",
"index": 0
}
],
[
{
"node": "2bdbcb80-2c2b-4fb8-bddb-eb9e6c6db0e0",
"type": "main",
"index": 0
}
]
]
},
"2bdbcb80-2c2b-4fb8-bddb-eb9e6c6db0e0": {
"main": [
[
{
"node": "c6410f39-34d8-448f-9efd-d66da067637b",
"type": "main",
"index": 0
}
],
[
{
"node": "2366b904-8f2f-42ce-aa2f-fc941cb73ad4",
"type": "main",
"index": 0
}
]
]
},
"ec0c92a3-73fa-480b-bdd3-e51648e8b0a0": {
"main": [
[
{
"node": "a7d835f2-de5e-4121-acad-9041c126401c",
"type": "main",
"index": 0
}
]
]
},
"a7d835f2-de5e-4121-acad-9041c126401c": {
"main": [
[
{
"node": "4cf656ea-b62c-4c9a-9a2c-f3cd4736af6f",
"type": "main",
"index": 0
}
]
]
},
"6e77f25e-b58c-4e23-a5c7-1951c36e59b6": {
"main": [
[
{
"node": "121272d6-0535-494e-b14a-3cc00f87cb8d",
"type": "main",
"index": 0
}
]
]
},
"cc1748c6-972e-4909-a0d9-2aada40e49b6": {
"main": [
[
{
"node": "e9ad632a-0506-4709-a485-67c45bf388f6",
"type": "main",
"index": 0
}
],
[
{
"node": "68c529b3-8530-42c9-8efa-7c35ea6c24f0",
"type": "main",
"index": 0
}
]
]
},
"121272d6-0535-494e-b14a-3cc00f87cb8d": {
"main": [
[
{
"node": "bc776b1e-de7a-4c5c-ab3e-fc6ede7f6d93",
"type": "main",
"index": 0
}
]
]
},
"21052f64-d4b6-4b67-8cb4-dd022a0dab71": {
"main": [
[
{
"node": "2847116a-c862-4803-8079-a40e4edd22f7",
"type": "main",
"index": 0
}
]
]
},
"09738ea8-1a61-4967-ac3d-2a9f64b39329": {
"main": [
[
{
"node": "289ec775-7191-4710-85e8-ae33542f9fbd",
"type": "main",
"index": 0
}
]
]
},
"d511ce8a-1617-4a2a-96d8-6e71ddc372b7": {
"main": [
[
{
"node": "2847116a-c862-4803-8079-a40e4edd22f7",
"type": "main",
"index": 0
}
]
]
},
"696255b0-7786-410c-927f-ffb4fa7784b9": {
"main": [
[
{
"node": "a7d835f2-de5e-4121-acad-9041c126401c",
"type": "main",
"index": 0
}
]
]
},
"627cc21c-1f7f-4266-a558-357289bb2746": {
"main": [
[
{
"node": "bc776b1e-de7a-4c5c-ab3e-fc6ede7f6d93",
"type": "main",
"index": 0
}
]
]
},
"d552bfbd-24cc-43ab-b008-ba837525e234": {
"main": [
[
{
"node": "2470503e-cb6a-44a5-a4aa-b431874e2e09",
"type": "main",
"index": 0
}
]
]
}
}
}Foire aux questions
Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Sauvegarde automatisée des workflows n8n vers GitHub avec suivi des suppressions
Sauvegarde automatisée des workflows n8n vers GitHub et suivi des suppressions
If
N8n
Set
+
If
N8n
Set
31 NœudsMarcial Ambriz
DevOps
Sauvegarde des workflows sur GitHub (sous-dossier)
Sauvegarde des workflows dans GitHub (sous-dossier)
If
N8n
Set
+
If
N8n
Set
25 NœudsNazmy
Autres
Sauvegarde des workflows sur GitHub
Sauvegarde des workflows dans GitHub
If
N8n
Set
+
If
N8n
Set
23 NœudsSolomon
Autres
Synchronisation bidirectionnelle des processus Typebot et GitHub, avec l'API Typebot
Synchronisation bidirectionnelle entre les processus Typebot et GitHub, via l'API Typebot
If
Set
Code
+
If
Set
Code
31 NœudsMarcial Ambriz
DevOps
Tableau de bord de synchronisation GitHub - V2
Tableau de versionning des workflows GitHub avec historique de commits et fonction de rollback
If
N8n
Set
+
If
N8n
Set
94 NœudsEduard
DevOps
Modération automatisée des spams Discord
Modération automatisée du spam sur Discord avec une combinaison d'IA et de collaboration humaine
If
Set
Code
+
If
Set
Code
30 NœudsJimleuk
Intelligence Artificielle
Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds30
Catégorie-
Types de nœuds16
Description de la difficulté
Auteur
Dat Proto
@datprotoLiens externes
Voir sur n8n.io →
Partager ce workflow