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

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.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds30
Catégorie-
Types de nœuds16
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34