Workflow n8n

Automatisation Discord avec n8n : nettoyage quotidien des messages

  • Ce workflow n8n a pour objectif de maintenir la propreté des canaux Discord en supprimant automatiquement les messages plus anciens que sept jours. Dans un contexte où la gestion des communautés en ligne est cruciale, ce type d'automatisation est particulièrement utile pour les gestionnaires de serveurs Discord qui souhaitent offrir une expérience utilisateur optimale sans encombrement. En utilisant ce workflow, les utilisateurs peuvent s'assurer que leur serveur reste organisé et que les informations pertinentes sont mises en avant, tout en réduisant le risque de confusion causée par des messages obsolètes.
  • Le processus commence par un déclencheur programmé qui s'active tous les jours à 21 heures. Ensuite, le workflow utilise le nœud 'Get all Discord channels' pour récupérer tous les canaux de la guilde. Pour chaque canal, il récupère les messages via le nœud 'Get messages from Channel'. Les messages sont ensuite filtrés pour ne garder que ceux qui sont plus anciens que sept jours grâce au nœud 'Filter Messages older than 7 days'. Chaque message obsolète est supprimé par le nœud 'Delete Message', après un temps d'attente pour respecter les limites d'API de Discord. Ce workflow intègre également des nœuds de notes autocollantes pour documenter le processus et assurer une bonne visibilité des actions effectuées.
  • Les bénéfices de cette automatisation n8n sont multiples : elle permet de gagner du temps en évitant la suppression manuelle des messages, réduit le risque d'erreurs humaines et améliore l'engagement des membres en maintenant un environnement de discussion clair et pertinent. En fin de compte, ce workflow contribue à une gestion efficace des serveurs Discord, facilitant ainsi la modération et l'interaction au sein de la communauté.
Tags clés :automatisationDiscordworkflowgestion de communautén8n
Catégorie: Scheduled · Tags: automatisation, Discord, workflow, gestion de communauté, n8n0

Workflow n8n Discord, gestion de communauté : vue d'ensemble

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

Workflow n8n Discord, gestion de communauté : détail des nœuds

  • Loop Over Channels

    Ce noeud divise les canaux en plusieurs lots pour un traitement ultérieur.

  • Loop Over Messages

    Ce noeud divise les messages en plusieurs lots pour un traitement ultérieur.

  • Every day at 9pm

    Ce noeud déclenche le workflow tous les jours à 21h.

  • Sticky Note2

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

  • Sticky Note

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

  • Cool down Discord API rate limits

    Ce noeud met en pause le workflow pour respecter les limites de taux de l'API Discord.

  • Get all Discord channels

    Ce noeud récupère tous les canaux d'un serveur Discord spécifié.

  • Cool down Message deletion API rate limits

    Ce noeud met en pause le workflow pour respecter les limites de taux de suppression de messages de l'API.

  • Cool down Get messages API rate limits

    Ce noeud met en pause le workflow pour respecter les limites de taux de récupération de messages de l'API.

  • Get messages from Channel

    Ce noeud récupère les messages d'un canal Discord spécifié.

  • Delete Message

    Ce noeud supprime un message spécifique d'un canal Discord.

  • Filter Messages older than 7 days

    Ce noeud filtre les messages pour ne garder que ceux datant de plus de 7 jours.

  • Sticky Note3

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

  • Sticky Note1

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

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "QCbb7Bm12gDIH0mI",
  "meta": {
    "instanceId": "d189560122cb823898b8eca8996614abf14798d923f2ff7c4d7220fb10f8e6f7",
    "templateCredsSetupCompleted": true
  },
  "name": "Keep discord clean",
  "tags": [
    {
      "id": "CgBu2Sxr4mqipxlK",
      "name": "template",
      "createdAt": "2025-01-08T19:56:24.079Z",
      "updatedAt": "2025-01-08T19:56:24.079Z"
    }
  ],
  "nodes": [
    {
      "id": "dde530b8-edd5-4f1d-a3c8-326925c97269",
      "name": "Loop Over Channels",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        560,
        400
      ],
      "parameters": {
        "options": {}
      },
      "retryOnFail": false,
      "typeVersion": 3
    },
    {
      "id": "3e2684b1-08ad-41bd-930f-cbb229e16617",
      "name": "Loop Over Messages",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1260,
        320
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "430d13be-670f-4e5d-acdf-ffe1a65a49e3",
      "name": "Every day at 9pm",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -160,
        400
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 21
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "6d40f036-c87a-4b68-9ec6-523a3372447c",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        40,
        600
      ],
      "parameters": {
        "color": 6,
        "width": 294,
        "height": 80,
        "content": "**Note ☝️**\nDon’t forget to setup an error workflow to get notified if something goes wrong"
      },
      "typeVersion": 1
    },
    {
      "id": "93290300-084b-4f91-95bc-f34c1aef93cd",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        -60
      ],
      "parameters": {
        "color": 5,
        "width": 327,
        "height": 152,
        "content": "### 👨‍🎤 Setup\n1. Add your **Discord** credentials\n2. Change the server in each **Discord** node to the correct one\n3. Click the Test Workflow button\n3. Activate the workflow to run on a schedule"
      },
      "typeVersion": 1
    },
    {
      "id": "5fead80a-de3a-4f45-a524-5228def7b4ad",
      "name": "Cool down Discord API rate limits",
      "type": "n8n-nodes-base.wait",
      "position": [
        280,
        400
      ],
      "webhookId": "cea120e2-5bb9-45cf-83e6-55fd458d6cf4",
      "parameters": {
        "amount": 2
      },
      "typeVersion": 1.1
    },
    {
      "id": "5a8d6402-458c-4c24-b379-6a41908a5af3",
      "name": "Get all Discord channels",
      "type": "n8n-nodes-base.discord",
      "position": [
        40,
        400
      ],
      "webhookId": "a77d1495-df40-4afd-ad0a-8f5b851b16da",
      "parameters": {
        "guildId": {
          "__rl": true,
          "mode": "id",
          "value": ""
        },
        "options": {
          "filter": [
            0,
            2
          ]
        },
        "operation": "getAll",
        "returnAll": true
      },
      "typeVersion": 2
    },
    {
      "id": "a2b1d905-849d-4392-95db-e545f542ba78",
      "name": "Cool down Message deletion API rate limits",
      "type": "n8n-nodes-base.wait",
      "position": [
        1680,
        340
      ],
      "webhookId": "fcd9f62a-f08b-44bc-afa3-87d960fdc380",
      "parameters": {
        "amount": 1
      },
      "typeVersion": 1.1
    },
    {
      "id": "8c134cfe-dcb1-400d-a518-17ed3f1cbf62",
      "name": "Cool down Get messages API rate limits",
      "type": "n8n-nodes-base.wait",
      "position": [
        1000,
        480
      ],
      "webhookId": "5d8de5eb-8445-4a64-8b8b-8577ffa52ef0",
      "parameters": {
        "amount": 2
      },
      "typeVersion": 1.1
    },
    {
      "id": "18ba10df-dcec-4d27-8ecf-06171939b7eb",
      "name": "Get messages from Channel",
      "type": "n8n-nodes-base.discord",
      "onError": "continueRegularOutput",
      "position": [
        800,
        480
      ],
      "webhookId": "b36f85bb-1237-415d-81bb-598703d3d4cd",
      "parameters": {
        "guildId": {
          "__rl": true,
          "mode": "id",
          "value": ""
        },
        "options": {},
        "resource": "message",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "operation": "getAll",
        "returnAll": true
      },
      "retryOnFail": false,
      "typeVersion": 2,
      "alwaysOutputData": true,
      "waitBetweenTries": 5000
    },
    {
      "id": "57f2395a-b624-41d3-aada-4107b21a3359",
      "name": "Delete Message",
      "type": "n8n-nodes-base.discord",
      "onError": "continueRegularOutput",
      "position": [
        1500,
        340
      ],
      "webhookId": "4b43cc2e-59db-46c9-ae4c-9716146c25bf",
      "parameters": {
        "guildId": {
          "__rl": true,
          "mode": "id",
          "value": ""
        },
        "resource": "message",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.channel_id }}"
        },
        "messageId": "={{ $json.id }}",
        "operation": "deleteMessage"
      },
      "retryOnFail": false,
      "typeVersion": 2,
      "alwaysOutputData": true,
      "waitBetweenTries": 5000
    },
    {
      "id": "c224ef25-57d8-4fe6-b14a-b09131ce8c1c",
      "name": "Filter Messages older than 7 days",
      "type": "n8n-nodes-base.filter",
      "position": [
        1000,
        320
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "2864fc65-1d9d-433f-bd61-766278a7e54c",
              "operator": {
                "type": "dateTime",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.timestamp }}",
              "rightValue": ""
            },
            {
              "id": "a05636ea-8663-4398-8a55-a03ab34f83a5",
              "operator": {
                "type": "dateTime",
                "operation": "before"
              },
              "leftValue": "={{ $json.timestamp }}",
              "rightValue": "={{ $today.minus({days: 7}) }}"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "c3654c25-6318-4652-9f76-82770cc28324",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        40,
        300
      ],
      "parameters": {
        "color": 6,
        "width": 194,
        "height": 80,
        "content": "**Tip 👇**\nOAuth2 Authentication is very easy to setup"
      },
      "typeVersion": 1
    },
    {
      "id": "f3d8b35e-6b13-4df9-bd33-2d44381e6fc5",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -200,
        -60
      ],
      "parameters": {
        "color": 4,
        "width": 600,
        "height": 280,
        "content": "# Nightly Discord Channel Cleanup\n### This workflow runs every day at 9:00 p.m. and:\n- Retrieves all Discord channels using your provided credentials.\n- Pauses briefly to respect Discord API rate limits.\n- Loops through each channel and fetches messages.\n- Filters out messages older than seven days.\n- Deletes those older messages, again pausing to stay within deletion rate limits.\n\nBy setting up this workflow on a schedule, you can automatically keep Discord channels tidy and compliant with retention policies."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "errorWorkflow": "C3NlThVZU7vFr4Um",
    "executionOrder": "v1",
    "saveManualExecutions": true
  },
  "versionId": "a4b9f5d2-d905-4c86-9fa6-2a274909ecce",
  "connections": {
    "Delete Message": {
      "main": [
        [
          {
            "node": "Cool down Message deletion API rate limits",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Every day at 9pm": {
      "main": [
        [
          {
            "node": "Get all Discord channels",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Channels": {
      "main": [
        [
          {
            "node": "Filter Messages older than 7 days",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get messages from Channel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Messages": {
      "main": [
        [],
        [
          {
            "node": "Delete Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get all Discord channels": {
      "main": [
        [
          {
            "node": "Cool down Discord API rate limits",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get messages from Channel": {
      "main": [
        [
          {
            "node": "Cool down Get messages API rate limits",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Cool down Discord API rate limits": {
      "main": [
        [
          {
            "node": "Loop Over Channels",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Messages older than 7 days": {
      "main": [
        [
          {
            "node": "Loop Over Messages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Cool down Get messages API rate limits": {
      "main": [
        [
          {
            "node": "Loop Over Channels",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Cool down Message deletion API rate limits": {
      "main": [
        [
          {
            "node": "Loop Over Messages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n Discord, gestion de communauté : pour qui est ce workflow ?

Ce workflow s'adresse principalement aux gestionnaires de serveurs Discord, aux community managers et aux équipes de modération qui cherchent à automatiser la gestion des messages. Il est adapté aux entreprises de toutes tailles, des petites communautés aux grandes organisations, et ne nécessite pas de compétences techniques avancées pour être mis en place.

Workflow n8n Discord, gestion de communauté : problème résolu

Ce workflow résout le problème de l'encombrement des canaux Discord en supprimant automatiquement les messages plus anciens que sept jours. Cela élimine les frustrations liées à la gestion manuelle des messages et réduit le risque de confusion parmi les membres de la communauté. En automatisant ce processus, les utilisateurs peuvent se concentrer sur des tâches plus importantes tout en maintenant un environnement de discussion propre et organisé.

Workflow n8n Discord, gestion de communauté : étapes du workflow

Étape 1 : Le workflow est déclenché tous les jours à 21 heures grâce au nœud 'Every day at 9pm'.

  • Étape 1 : Il récupère tous les canaux de la guilde avec le nœud 'Get all Discord channels'.
  • Étape 2 : Pour chaque canal, il utilise le nœud 'Get messages from Channel' pour obtenir les messages.
  • Étape 3 : Les messages sont filtrés avec le nœud 'Filter Messages older than 7 days' pour ne garder que ceux à supprimer.
  • Étape 4 : Chaque message obsolète est supprimé via le nœud 'Delete Message', après avoir respecté les limites d'API avec des nœuds d'attente.
  • Étape 5 : Des notes autocollantes sont ajoutées pour documenter le processus.

Workflow n8n Discord, gestion de communauté : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier le déclencheur pour l'exécuter à une autre heure ou fréquence selon vos besoins. Il est également possible d'ajuster les paramètres du nœud 'Filter Messages older than 7 days' pour changer la durée de conservation des messages. Si vous souhaitez intégrer d'autres canaux ou fonctionnalités, vous pouvez ajouter des nœuds supplémentaires pour interagir avec d'autres API ou services. Enfin, assurez-vous de surveiller les limites d'API de Discord pour éviter des interruptions dans le fonctionnement du workflow.