Workflow n8n

Automatisation n8n : vérification des mises à jour de workflows

  • Ce workflow n8n a pour objectif de vérifier et de mettre à jour les workflows existants dans votre environnement n8n. Il est particulièrement utile pour les équipes de développement et les responsables de projets qui souhaitent s'assurer que leurs automatisations sont à jour et fonctionnent correctement. En intégrant ce workflow, vous pouvez automatiser le processus de vérification et de mise à jour, ce qui vous permet de gagner du temps et d'éviter des erreurs humaines.
  • Le déroulé commence par le déclencheur 'Execute Workflow Trigger', qui initie le processus. Ensuite, plusieurs nœuds de type 'Sticky Note' sont utilisés pour ajouter des annotations et des informations pertinentes tout au long du flux. Le nœud 'Get Workflow' récupère les détails du workflow à vérifier, suivi par le nœud 'Update Workflow' qui applique les modifications nécessaires. Si des ajustements sont requis, le nœud 'Modify Workflow (if required)' exécute un code JavaScript pour personnaliser la mise à jour. Enfin, un résumé des actions effectuées est envoyé par email grâce au nœud 'Send Summary'.
  • Les bénéfices de ce workflow sont multiples : il réduit le risque d'erreurs, améliore l'efficacité opérationnelle et assure que vos automatisations n8n restent à jour, ce qui est essentiel pour maintenir la performance de vos processus métier.
Tags clés :automatisationn8nworkflowmise à jourefficacité opérationnelle
Catégorie: Manual · Tags: automatisation, n8n, workflow, mise à jour, efficacité opérationnelle0

Workflow n8n mise à jour, efficacité opérationnelle : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n mise à jour, efficacité opérationnelle : détail des nœuds

  • Execute Workflow Trigger

    Ce noeud déclenche l'exécution d'un workflow.

  • Sticky Note4

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu.

  • Prepare Output

    Ce noeud prépare la sortie en définissant des options et des affectations.

  • Send Summary

    Ce noeud envoie un résumé par email via Gmail avec un message, un sujet et des options.

  • Get Workflow

    Ce noeud récupère un workflow spécifique en utilisant son ID et des options de requête.

  • Update Workflow

    Ce noeud met à jour un workflow existant avec un nouvel objet de workflow.

  • Modify Workflow (if required)

    Ce noeud modifie le workflow si nécessaire en exécutant du code JavaScript.

  • Start Reference

    Ce noeud sert de point de référence sans effectuer d'action.

  • Sticky Note

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu.

  • Sticky Note2

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu.

  • Sticky Note1

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu.

  • Sticky Note5

    Ce noeud crée une note autocollante avec des paramètres de largeur, hauteur et contenu.

  • Settings

    Ce noeud définit des options et des affectations pour les paramètres de configuration.

  • Sticky Note6

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu.

  • Sticky Note7

    Ce noeud crée une note autocollante avec des paramètres de largeur, hauteur et contenu.

  • Sticky Note8

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "xlMrGt0c1eFi4J1U",
  "meta": {
    "instanceId": "fb8bc2e315f7f03c97140b30aa454a27bc7883a19000fa1da6e6b571bf56ad6d",
    "templateCredsSetupCompleted": true
  },
  "name": "Addon for Workflow Nodes Update Check Template",
  "tags": [],
  "nodes": [
    {
      "id": "e8068a93-5474-474e-a48e-947269b7ca5f",
      "name": "Execute Workflow Trigger",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        860,
        1140
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "9b4524d8-6ded-489b-bf45-6810f5306652",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        120
      ],
      "parameters": {
        "color": 5,
        "width": 1316.8621045610755,
        "height": 887.980239951363,
        "content": "## Download the main workflow and connect it's output to this workflow\n- Download this workflow and follow the belonging instructions: [https://n8n.io/workflows/2301-check-if-workflows-contain-build-in-nodes-that-are-not-of-the-latest-version/](https://n8n.io/workflows/2301-check-if-workflows-contain-build-in-nodes-that-are-not-of-the-latest-version/)\n- Add an \"Execute Workflow\" node and configure it, so it calls this workflow.\n  \n![Image](https://i.imgur.com/y0vPhYz.png#full-width)"
      },
      "typeVersion": 1
    },
    {
      "id": "cb0cacc1-34d0-4e4d-a7db-e44ece1a155f",
      "name": "Prepare Output",
      "type": "n8n-nodes-base.set",
      "position": [
        2180,
        1140
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "26c2bf59-2051-47e3-a6bf-3896ad427404",
              "name": "name",
              "type": "string",
              "value": "=<a href={{ $('Settings').item.json.instanceBaseUrl }}/workflow/{{ $json.id }}>{{ $json.name }}</a>"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4b914937-1cff-4fc2-886b-64ec6818daf3",
      "name": "Send Summary",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2400,
        1140
      ],
      "webhookId": "1ad759b3-f1cd-49dd-b288-e3344fa94c8a",
      "parameters": {
        "message": "=These workflows contain outdated nodes:<br>\n<ul>\n{{ $('Prepare Output').all().pluck('json').pluck('name').map(item => \"<li>\"+item+\"</li>\").join('') }}\n</ul>",
        "options": {
          "appendAttribution": false
        },
        "subject": "Outdated n8n Workflow Nodes"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "TWM2BLjDHQtGAFQn",
          "name": "Gmail (octionicsolutions)"
        }
      },
      "executeOnce": true,
      "typeVersion": 2.1
    },
    {
      "id": "2f259d45-cb31-4007-beb0-93123cc619c3",
      "name": "Get Workflow",
      "type": "n8n-nodes-base.n8n",
      "position": [
        1520,
        1140
      ],
      "parameters": {
        "operation": "get",
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Start Reference').item.json.Id }}"
        },
        "requestOptions": {}
      },
      "credentials": {
        "n8nApi": {
          "id": "fRyEJuhN9Nf3aQap",
          "name": "n8n account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e2bbfc5b-1af6-43b1-9d03-f35b5837d3cc",
      "name": "Update Workflow",
      "type": "n8n-nodes-base.n8n",
      "position": [
        1960,
        1140
      ],
      "parameters": {
        "operation": "update",
        "workflowId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "requestOptions": {},
        "workflowObject": "={{ JSON.stringify($json) }}"
      },
      "credentials": {
        "n8nApi": {
          "id": "fRyEJuhN9Nf3aQap",
          "name": "n8n account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f2bb0529-6e38-46c6-93e8-de76e9ecc31e",
      "name": "Modify Workflow (if required)",
      "type": "n8n-nodes-base.code",
      "position": [
        1740,
        1140
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "let symbol = $('Settings').item.json.symbol;\nlet onlyMajorChanges = $('Settings').item.json.onlyMajorChanges;\nlet addNodesToCanvas = $('Settings').item.json.addNodesToCanvas;\n\n// create shallow copy including nested objects\nlet data = JSON.parse(JSON.stringify($json));\n\nchangeCount = 0;\n// Loop through nodes and update the names\nfor (let outdatedNode of $('Start Reference').item.json.outdated_nodes) {\n  // skip minor changes, if settings require it\n  if (onlyMajorChanges && outdatedNode.version.toString().substring(0, 1) == outdatedNode.latestVersion.toString().substring(0, 1)) {\n    continue;\n  }\n  // update nodes, it they are not already renamed with symbol\n  for (let existingNode of data.nodes) {\n    if (outdatedNode.name == existingNode.name && !existingNode.name.startsWith(symbol) && existingNode.id) {\n      // prepend new nodes, so they appear below outdated nodes on the canvas\n      if (addNodesToCanvas) {\n        let newNode = JSON.parse(JSON.stringify(existingNode));\n        delete newNode.id;\n        newNode.typeVersion = outdatedNode.latestVersion;\n        newNode.position = [newNode.position[0] + 40, newNode.position[1] - 40];\n        data.nodes.unshift(newNode);\n      }\n      // rename outdated nodes (prepend symbol)\n      existingNode.name = symbol + \" \" + existingNode.name;\n    \n      // update connections\n      for (let connectionKey in data.connections) {\n        let connection = data.connections[connectionKey];\n      \n        // rename keys\n        if (connectionKey == outdatedNode.name) {\n          let newKey = symbol + \" \" + connectionKey;\n          data.connections[newKey] = connection;\n          delete data.connections[connectionKey];\n        }\n      \n        // check the nested \"main\" array\n        if (connection.main) {\n          for (let mainArray of connection.main) {\n            for (let nodeObj of mainArray) {\n              if (nodeObj.node == outdatedNode.name) {\n                nodeObj.node = symbol + \" \" + nodeObj.node;\n              }\n            }\n          }\n        }\n      }\n      changeCount++;\n    }\n  }\n}\n\nif (changeCount == 0) {\n  return null;\n}\n\nreturn {\n  id: data.id,\n  name: data.name,\n  nodes: data.nodes,\n  connections: data.connections,\n  settings: data.settings\n}"
      },
      "typeVersion": 2
    },
    {
      "id": "b4b7d328-8128-4f07-841a-1efa26c3fdd5",
      "name": "Start Reference",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1080,
        1140
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "7d80b557-15ac-479e-a219-dd254580a063",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        1020
      ],
      "parameters": {
        "color": 7,
        "width": 216.6228464570463,
        "height": 282.1449413577448,
        "content": "This workflow is called by another workflow which provides a list of all workflows with major and minor node updates"
      },
      "typeVersion": 1
    },
    {
      "id": "1becaab6-fe2a-44e9-bc7e-ce87665f25bd",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2120,
        680
      ],
      "parameters": {
        "color": 7,
        "width": 435.46822963832705,
        "height": 327.68691689762716,
        "content": "## Example input data\n\n```\n[\n  {\n    \"workflow\": \"Workflow Nodes Update\",\n    \"Id\": \"dFJpQTFg3QPH6Ol9\",\n    \"outdated_nodes\": [\n      {\n        \"name\": \"If\",\n        \"type\": \"n8n-nodes-base.if\",\n        \"version\": 2,\n        \"latestVersion\": 2.2\n      }\n    ]\n  }\n]\n```"
      },
      "typeVersion": 1
    },
    {
      "id": "9ce81677-4dd4-4a9a-a7a3-66b113c69de6",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1020,
        1020
      ],
      "parameters": {
        "color": 7,
        "width": 216.6228464570463,
        "height": 282.1449413577448,
        "content": "The following nodes start referencing from here, so it is easily possible to change the logic prior to this node."
      },
      "typeVersion": 1
    },
    {
      "id": "f6e7e7ce-1282-4292-8675-ca8bbe215d5f",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1240,
        1020
      ],
      "parameters": {
        "width": 216.6228464570463,
        "height": 282.1449413577448,
        "content": "## Update settings\nMinimum requirement:\n- Set your instanceBaseUrl"
      },
      "typeVersion": 1
    },
    {
      "id": "46b168d5-c866-497b-8664-92722a356feb",
      "name": "Settings",
      "type": "n8n-nodes-base.set",
      "position": [
        1300,
        1140
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "99947a54-e9f9-4d04-b273-9d7eeed62775",
              "name": "instanceBaseUrl",
              "type": "string",
              "value": "http://localhost:5432"
            },
            {
              "id": "35a63bda-fcbb-4885-a8d6-4b52c6579206",
              "name": "symbol",
              "type": "string",
              "value": "⚠️"
            },
            {
              "id": "3481286b-359f-4e86-8f56-bdb267ebd6a2",
              "name": "onlyMajorChanges",
              "type": "boolean",
              "value": true
            },
            {
              "id": "2377c274-5501-494f-813e-0d3ebe47e375",
              "name": "addNodesToCanvas",
              "type": "boolean",
              "value": true
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d28ac933-7dbc-4039-821b-7cd4c4c5ec94",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2120,
        1020
      ],
      "parameters": {
        "color": 7,
        "width": 216.6228464570463,
        "height": 282.1449413577448,
        "content": "URL's are generated for each affected workflow"
      },
      "typeVersion": 1
    },
    {
      "id": "0fef2be5-92d5-4d4f-8afc-b958ee616787",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2340,
        1020
      ],
      "parameters": {
        "width": 216.6228464570463,
        "height": 282.1449413577448,
        "content": "## Setup Gmail\nMinimum requirement:\n- Update mail recipient"
      },
      "typeVersion": 1
    },
    {
      "id": "dc940f78-1eff-4393-9d9a-f4afefe24d45",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1460,
        1020
      ],
      "parameters": {
        "color": 7,
        "width": 657.2496253932529,
        "height": 282.1449413577448,
        "content": "Each workflow is being processed and modified if needed. Depending on the settings an icon is being prepended to the name of outdated nodes. In addition a newer version is being added close by, so it can be replaced quicker by the user."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "f4bb34b0-7561-4d77-beac-8f6988a0ed64",
  "connections": {
    "Settings": {
      "main": [
        [
          {
            "node": "Get Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Workflow": {
      "main": [
        [
          {
            "node": "Modify Workflow (if required)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Output": {
      "main": [
        [
          {
            "node": "Send Summary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Start Reference": {
      "main": [
        [
          {
            "node": "Settings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Workflow": {
      "main": [
        [
          {
            "node": "Prepare Output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execute Workflow Trigger": {
      "main": [
        [
          {
            "node": "Start Reference",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Modify Workflow (if required)": {
      "main": [
        [
          {
            "node": "Update Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n mise à jour, efficacité opérationnelle : pour qui est ce workflow ?

Ce workflow s'adresse principalement aux équipes techniques et aux responsables de projets dans les entreprises qui utilisent n8n pour automatiser leurs processus. Il est adapté aux utilisateurs ayant un niveau technique intermédiaire et aux organisations de taille petite à moyenne qui cherchent à optimiser leur gestion des workflows.

Workflow n8n mise à jour, efficacité opérationnelle : problème résolu

Ce workflow résout le problème de la gestion manuelle des mises à jour des workflows dans n8n, ce qui peut être source d'erreurs et de pertes de temps. En automatisant ce processus, les utilisateurs peuvent s'assurer que leurs automatisations sont toujours à jour, réduisant ainsi les risques d'échecs opérationnels. Le résultat est une gestion plus fluide et efficace des workflows, permettant aux équipes de se concentrer sur des tâches à plus forte valeur ajoutée.

Workflow n8n mise à jour, efficacité opérationnelle : étapes du workflow

Étape 1 : Le workflow est déclenché manuellement par l'utilisateur.

  • Étape 1 : Des notes autocollantes sont ajoutées pour documenter le processus.
  • Étape 2 : Le nœud 'Get Workflow' récupère les informations du workflow à vérifier.
  • Étape 3 : Les modifications nécessaires sont appliquées via le nœud 'Update Workflow'.
  • Étape 4 : Si des ajustements sont requis, le nœud 'Modify Workflow (if required)' exécute un code JavaScript.
  • Étape 5 : Un résumé des actions est envoyé par email grâce au nœud 'Send Summary'.

Workflow n8n mise à jour, efficacité opérationnelle : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier les paramètres des nœuds 'Get Workflow' et 'Update Workflow' pour cibler des workflows spécifiques. Il est également possible d'ajuster le contenu des notes autocollantes pour refléter des informations pertinentes pour votre équipe. Assurez-vous de tester le code JavaScript dans le nœud 'Modify Workflow (if required)' pour qu'il réponde à vos besoins spécifiques. Enfin, adaptez le nœud 'Send Summary' pour inclure les destinataires appropriés et le contenu du message souhaité.