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é.
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
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.