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.
Workflow n8n Discord, notifications : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n Discord, notifications : détail des nœuds
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
}
]
]
}
}
}Workflow n8n Discord, notifications : 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.
Workflow n8n Discord, notifications : 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.
Workflow n8n Discord, notifications : étapes du workflow
Étape 1 : le workflow est déclenché par un cron qui s'exécute à des intervalles définis.
- Étape 1 : le noeud '@Get Issue' effectue une requête HTTP pour récupérer les informations sur les incidents.
- Étape 2 : une fonction traite ces données pour déterminer si une alerte est nécessaire.
- Étape 3 : le noeud 'IF' évalue les conditions pour décider de l'envoi d'une notification.
- Étape 4 : si une alerte est requise, le noeud 'Discord' envoie un message au canal approprié, informant l'équipe des incidents récents.
Workflow n8n Discord, notifications : guide de personnalisation
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'.