Automatisation Discord avec n8n : notifications d'incidents
Ce workflow n8n a pour objectif d'automatiser l'envoi de notifications sur Discord en cas d'incidents détectés via une API. Dans un contexte où la réactivité est cruciale, notamment pour les équipes techniques et de support, ce type d'automatisation permet de gagner un temps précieux et d'améliorer la communication interne. Les cas d'usage incluent la surveillance de systèmes, l'alerte sur des erreurs critiques ou des mises à jour importantes à partager avec l'équipe. Étape 1 : le déclencheur est un cron qui exécute le workflow à intervalles réguliers. Étape 2 : le noeud '@Get Issue' interroge une API pour récupérer les informations sur les incidents récents. Étape 3 : une fonction permet de traiter ces données et de déterminer si une alerte doit être envoyée. Étape 4 : un noeud 'IF' vérifie les conditions pour décider de l'envoi d'une notification. Si une alerte est nécessaire, le noeud 'Discord' envoie un message sur le canal approprié. Ce workflow offre une valeur ajoutée significative en réduisant le temps de réponse aux incidents et en assurant une meilleure coordination au sein des équipes. Tags clés : automatisation, Discord, notifications.
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
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"nodes": [
{
"name": "@Get Issue",
"type": "n8n-nodes-base.httpRequest",
"maxTries": 3,
"position": [
1050,
590
],
"parameters": {
"url": "https://api.github.com/notifications",
"options": {},
"authentication": "basicAuth",
"queryParametersUi": {
"parameter": [
{
"name": "since",
"value": "={{$node[\"@Get Date 1 min ago\"].json[\"since\"]}}"
}
]
},
"headerParametersUi": {
"parameter": [
{
"name": "User-Agent",
"value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246"
}
]
}
},
"credentials": {
"httpBasicAuth": "Github Auth"
},
"retryOnFail": true,
"typeVersion": 1
},
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
710,
590
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyX",
"unit": "minutes",
"value": 1
}
]
}
},
"typeVersion": 1
},
{
"name": "Discord",
"type": "n8n-nodes-base.discord",
"position": [
1610,
580
],
"parameters": {
"text": "=Notifications In last minutes: <@userIdForTagging>\n{{$node[\"Function\"].json[\"reportMessage\"]}}"
},
"typeVersion": 1
},
{
"name": "Function",
"type": "n8n-nodes-base.function",
"position": [
1230,
590
],
"parameters": {
"functionCode": "const newItems = [];\n\nfor (const item of items[0].json) {\n newItems.push(`- [${item.reason}] => ${item.subject.title} @ ${item.subject.url.replace('api.','').replace('/repos','')}`);\n }\n\nreturn [{json: {reportMessage: `${newItems.join('\\r\\n')}`, hasNotifications: items[0].json.length > 0}}];\n"
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
1400,
590
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{$node[\"Function\"].json[\"hasNotifications\"]}}",
"value2": true
}
]
}
},
"typeVersion": 1
},
{
"name": "@Get Date 1 min ago",
"type": "n8n-nodes-base.function",
"position": [
860,
590
],
"parameters": {
"functionCode": "const date = new Date(new Date().setMinutes(new Date().getMinutes() - (1))).toISOString()\nreturn [{json: {since: date}}];"
},
"typeVersion": 1
}
],
"connections": {
"IF": {
"main": [
[
{
"node": "Discord",
"type": "main",
"index": 0
}
]
]
},
"Cron": {
"main": [
[
{
"node": "@Get Date 1 min ago",
"type": "main",
"index": 0
}
]
]
},
"Function": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"@Get Issue": {
"main": [
[
{
"node": "Function",
"type": "main",
"index": 0
}
]
]
},
"@Get Date 1 min ago": {
"main": [
[
{
"node": "@Get Issue",
"type": "main",
"index": 0
}
]
]
}
}
}Pour qui est ce workflow ?
Ce workflow s'adresse aux équipes techniques et de support au sein d'entreprises de taille moyenne à grande, qui souhaitent améliorer leur réactivité face aux incidents. Un niveau technique intermédiaire est recommandé pour la personnalisation de ce workflow.
Problème résolu
Ce workflow résout le problème de la lenteur dans la communication des incidents critiques au sein des équipes. En automatisant l'envoi de notifications sur Discord, il élimine les frustrations liées aux alertes manuelles et réduit le risque de délais dans la prise de décision. Les utilisateurs peuvent ainsi se concentrer sur la résolution des problèmes plutôt que sur la gestion des alertes.
Étapes du workflow
Étape 1 : le workflow est déclenché par un cron qui s'exécute à des intervalles définis. Étape 2 : le noeud '@Get Issue' effectue une requête HTTP pour récupérer les informations sur les incidents. Étape 3 : une fonction traite ces données pour déterminer si une alerte est nécessaire. Étape 4 : le noeud 'IF' évalue les conditions pour décider de l'envoi d'une notification. Étape 5 : si une alerte est requise, le noeud 'Discord' envoie un message au canal approprié, informant l'équipe des incidents récents.
Guide de personnalisation du workflow n8n
Pour personnaliser ce workflow, vous pouvez modifier l'URL de l'API dans le noeud '@Get Issue' pour qu'elle corresponde à votre système de gestion des incidents. Le texte du message envoyé sur Discord peut être ajusté dans le noeud 'Discord' pour refléter le ton et le style de votre équipe. Vous pouvez également adapter la fréquence d'exécution du cron en fonction de vos besoins. Pour une meilleure sécurité, envisagez d'ajouter des mécanismes d'authentification dans le noeud '@Get Issue'.