Workflow n8n

Automatisation n8n : notifications par email pour mises à jour

Ce workflow n8n a pour objectif d'automatiser l'envoi de notifications par email concernant les mises à jour des paquets sur un serveur. Il est particulièrement utile pour les équipes techniques et les administrateurs système qui souhaitent rester informés des mises à jour sans avoir à vérifier manuellement. Grâce à cette automatisation n8n, vous pouvez configurer un système qui vérifie quotidiennement les paquets à mettre à jour et envoie un email avec la liste des mises à jour disponibles. Le workflow débute par un déclencheur programmé qui s'exécute chaque jour. À chaque exécution, il utilise le nœud 'List upgradable packages' pour récupérer la liste des paquets pouvant être mis à jour via une connexion SSH. Ensuite, un nœud conditionnel 'Check if there are updates' vérifie s'il y a effectivement des mises à jour disponibles. Si des mises à jour sont détectées, le workflow formate ces informations en une liste HTML grâce au nœud 'Format as HTML list'. Enfin, le nœud 'Send Email through SMTP' envoie un email contenant cette liste à l'adresse spécifiée. Les bénéfices de ce workflow incluent une réduction significative du temps passé à surveiller les mises à jour, une meilleure réactivité face aux nouvelles versions et une automatisation des notifications, ce qui permet aux équipes de se concentrer sur des tâches plus stratégiques. Tags clés : automatisation, notifications, email.

Catégorie: Scheduled · Tags: automatisation, notifications, email, n8n, mises à jour0

Vue d'ensemble du workflow n8n

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

Détail des nœuds du workflow n8n

  • List upgradable packages

    Ce noeud liste les paquets pouvant être mis à jour via une connexion SSH.

  • Send Email through SMTP

    Ce noeud envoie un email en utilisant le protocole SMTP avec les paramètres spécifiés.

  • Run workflow every day

    Ce noeud déclenche l'exécution du workflow tous les jours selon la règle définie.

  • Format as HTML list

    Ce noeud formate les données en une liste HTML à l'aide de code JavaScript.

  • Check if there are updates

    Ce noeud vérifie si des mises à jour sont disponibles en fonction des conditions spécifiées.

  • Sticky Note

    Ce noeud crée une note autocollante avec le contenu et la largeur spécifiés.

  • Sticky Note1

    Ce noeud crée une seconde note autocollante avec des paramètres similaires à la première.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "nodes": [
    {
      "id": "4ca55c6e-cf2e-4239-82a9-88d0a201e761",
      "name": "List upgradable packages",
      "type": "n8n-nodes-base.ssh",
      "notes": "apt list --upgradable",
      "position": [
        -280,
        0
      ],
      "parameters": {
        "command": "apt list --upgradable"
      },
      "credentials": {
        "sshPassword": {
          "id": "Ps31IKTeseWFlA0g",
          "name": "SSH Password account"
        }
      },
      "notesInFlow": true,
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "ae1f0a55-31aa-494b-baa6-822dc606188e",
      "name": "Send Email through SMTP",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        380,
        0
      ],
      "webhookId": "8073c571-b36f-4330-a510-ca2ff2924fbf",
      "parameters": {
        "html": "=The following packages can be updated on your server:\n\n{{ $json.htmlList }}\n\nPlease login and perform upgrade.",
        "options": {},
        "subject": "Server needs updates",
        "toEmail": "change.me@example.com",
        "fromEmail": "change.me@example.com"
      },
      "credentials": {
        "smtp": {
          "id": "uiNePdJaDng5a43S",
          "name": "SMTP account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "e1d76671-d94c-40d5-9364-623db9319f11",
      "name": "Run workflow every day",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -540,
        0
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ec4d722a-b88c-42da-971c-28ad5774596d",
      "name": "Format as HTML list",
      "type": "n8n-nodes-base.code",
      "position": [
        -60,
        0
      ],
      "parameters": {
        "jsCode": "function formatStdoutAsHtmlList(stdoutData) {\n\n    // Split the stdout into lines and map to HTML list items\n    const htmlListItems = stdoutData.split('\\n').map((line) => {\n        if (line.trim() && line !== \"Listing...\") { // Optionally skip empty lines or headers\n            return `<li>${line.trim()}</li>`;\n        }\n    }).filter(item => item); // Remove any undefined items due to empty lines or skipped headers\n\n    // Wrap the list items in a <ul> tag\n    const htmlList = `<ul>${htmlListItems.join('')}</ul>`;\n\n    // Return the formatted HTML list as part of an object\n    return { \"htmlList\": htmlList };\n}\n\nreturn formatStdoutAsHtmlList($input.first().json.stdout);"
      },
      "typeVersion": 2
    },
    {
      "id": "6f14eb02-c505-4f83-a5bb-68094e763fd9",
      "name": "Check if there are updates",
      "type": "n8n-nodes-base.if",
      "position": [
        140,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "db66d892-26fb-406c-a0ac-2e4b8a60310a",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.htmlList }}",
              "rightValue": "<ul></ul>"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "3924c696-5b0e-4ae2-b2e2-435fed344028",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -740,
        -180
      ],
      "parameters": {
        "width": 300,
        "content": "## VPS upgrade notify \nThis workflow will everyday check if server has upgradable packages and inform you by email if there is."
      },
      "typeVersion": 1
    },
    {
      "id": "bb8ade2a-4ffe-4c79-91eb-55af568eb1b1",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        -180
      ],
      "parameters": {
        "width": 300,
        "content": "## Update email addresses\nUpdate From and To email addresses in this node to receive notifications"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Format as HTML list": {
      "main": [
        [
          {
            "node": "Check if there are updates",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run workflow every day": {
      "main": [
        [
          {
            "node": "List upgradable packages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Email through SMTP": {
      "main": [
        []
      ]
    },
    "List upgradable packages": {
      "main": [
        [
          {
            "node": "Format as HTML list",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if there are updates": {
      "main": [
        [
          {
            "node": "Send Email through SMTP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Pour qui est ce workflow ?

Ce workflow s'adresse principalement aux équipes techniques, aux administrateurs système et aux entreprises qui gèrent des serveurs et des applications nécessitant des mises à jour régulières. Il est idéal pour les organisations de taille moyenne à grande, avec un niveau technique intermédiaire à avancé.

Problème résolu

Ce workflow résout le problème de la surveillance manuelle des mises à jour de paquets, qui peut être chronophage et source d'erreurs. En automatisant ce processus, les utilisateurs peuvent éviter de manquer des mises à jour critiques, réduisant ainsi les risques de sécurité et améliorant la performance des systèmes. Après la mise en place de ce workflow, les utilisateurs reçoivent automatiquement des notifications par email, ce qui leur permet de rester informés sans effort supplémentaire.

Étapes du workflow

Étape 1 : Le workflow est déclenché quotidiennement par le nœud 'Run workflow every day'. Étape 2 : Il exécute la commande 'List upgradable packages' via SSH pour récupérer les paquets à mettre à jour. Étape 3 : Le nœud 'Check if there are updates' évalue si des mises à jour sont disponibles. Étape 4 : Si des mises à jour existent, le nœud 'Format as HTML list' formate les informations en une liste HTML. Étape 5 : Enfin, le nœud 'Send Email through SMTP' envoie cette liste par email aux destinataires spécifiés.

Guide de personnalisation du workflow n8n

Pour personnaliser ce workflow, vous pouvez modifier le nœud 'List upgradable packages' en ajustant la commande SSH selon vos besoins. Assurez-vous également de mettre à jour les paramètres du nœud 'Send Email through SMTP' pour inclure les adresses email appropriées et personnaliser le contenu de l'email. Si vous souhaitez changer la fréquence des vérifications, modifiez la règle dans le nœud 'Run workflow every day'. Vous pouvez également ajouter d'autres nœuds pour intégrer des outils supplémentaires ou des notifications via d'autres canaux.