Automatisation Telegram avec n8n : notifications RSS en temps réel
Ce workflow n8n a pour objectif d'automatiser l'envoi de notifications sur Telegram à partir d'un flux RSS. Il est particulièrement utile pour les entreprises qui souhaitent rester informées des dernières actualités ou mises à jour de contenu sans avoir à vérifier manuellement les sources. En utilisant ce workflow, les équipes peuvent recevoir des alertes instantanées sur des sujets d'intérêt, ce qui leur permet de réagir rapidement aux nouvelles informations. Le processus commence par un déclencheur Cron qui active le workflow à intervalles réguliers. Ensuite, le noeud 'RSS Feed Read' lit le flux RSS spécifié pour extraire les nouvelles entrées. Pour éviter les doublons, un noeud de fonction 'only get new RSS' est utilisé pour filtrer les articles déjà traités. Les nouvelles entrées sont ensuite divisées en lots à l'aide du noeud 'SplitInBatches'. Chaque lot est envoyé à différents canaux Telegram, comme 'Telegram_IT', 'Telegram_Security', et 'Telegram_M365', en fonction des conditions définies dans les noeuds 'IF-1' et 'IF-2'. Grâce à cette automatisation n8n, les entreprises peuvent améliorer leur réactivité et leur efficacité en matière de communication interne et de veille informationnelle.
Workflow n8n Telegram, RSS, notifications : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n Telegram, RSS, notifications : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"nodes": [
{
"name": "RSS Feed Read",
"type": "n8n-nodes-base.rssFeedRead",
"position": [
420,
-20
],
"parameters": {
"url": "={{$node[\"SplitInBatches\"].json[\"url\"]}}"
},
"typeVersion": 1
},
{
"name": "SplitInBatches",
"type": "n8n-nodes-base.splitInBatches",
"position": [
200,
-20
],
"parameters": {
"options": {},
"batchSize": 1
},
"typeVersion": 1
},
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
-240,
-20
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyX",
"unit": "minutes",
"value": 10
}
]
}
},
"typeVersion": 1
},
{
"name": "only get new RSS",
"type": "n8n-nodes-base.function",
"position": [
640,
-20
],
"parameters": {
"functionCode": "const staticData = getWorkflowStaticData('global');\nconst newRSSIds = items.map(item => item.json[\"isoDate\"]);\nconst oldRSSIds = staticData.oldRSSIds; \n\nif (!oldRSSIds) {\n staticData.oldRSSIds = newRSSIds;\n return items;\n}\n\n\nconst actualNewRSSIds = newRSSIds.filter((id) => !oldRSSIds.includes(id));\nconst actualNewRSS = items.filter((data) => actualNewRSSIds.includes(data.json['isoDate']));\nstaticData.oldRSSIds = [...actualNewRSSIds, ...oldRSSIds];\n\nreturn actualNewRSS;\n"
},
"typeVersion": 1
},
{
"name": "Telegram_IT",
"type": "n8n-nodes-base.telegram",
"position": [
1220,
460
],
"parameters": {
"text": "={{$json[\"title\"]}}\n{{$json[\"link\"]}}",
"chatId": "TelegramID",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "2",
"name": "IT_RSS"
}
},
"typeVersion": 1
},
{
"name": "Telegram_Security",
"type": "n8n-nodes-base.telegram",
"position": [
1220,
220
],
"parameters": {
"text": "={{$json[\"title\"]}}\n{{$json[\"link\"]}}",
"chatId": "TelegramID",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "4",
"name": "Security_RSS"
}
},
"typeVersion": 1
},
{
"name": "RSS Source",
"type": "n8n-nodes-base.function",
"position": [
-20,
-20
],
"parameters": {
"functionCode": "return [\n {\n json: {\n url: 'https://feeds.feedburner.com/UnikosHardware',\n }\n },\n {\n json: {\n url: 'http://www.ithome.com.tw/rss.php',\n }\n },\n {\n json: {\n url: 'http://feeds.feedburner.com/playpc',\n }\n },\n {\n json: {\n url: 'https://lab.ocf.tw/feed/',\n }\n },\n {\n json: {\n url: 'https://techcommunity.microsoft.com/plugins/custom/microsoft/o365/custom-blog-rss?tid=3754543230341459569&board=microsoft_365blog',\n }\n }\n];"
},
"typeVersion": 1
},
{
"name": "Telegram_M365",
"type": "n8n-nodes-base.telegram",
"position": [
1220,
-40
],
"parameters": {
"text": "={{$json[\"title\"]}}\n{{$json[\"link\"]}}",
"chatId": "TelegramID",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "5",
"name": "M365_RSS"
}
},
"typeVersion": 1
},
{
"name": "IF-2",
"type": "n8n-nodes-base.if",
"position": [
880,
240
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json[\"title\"]}}",
"value2": "資安|資訊安全|安全|外洩|監控|威脅|漏洞|封鎖|修補|攻擊|入侵|個資|隱私|私密|騙|社交工程|釣魚|駭|Security|security|Secure|secure",
"operation": "regex"
}
]
},
"combineOperation": "any"
},
"typeVersion": 1
},
{
"name": "IF-1",
"type": "n8n-nodes-base.if",
"position": [
880,
-20
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json[\"link\"]}}",
"value2": "techcommunity.microsoft.com",
"operation": "contains"
}
]
}
},
"typeVersion": 1
},
{
"name": "Clear Function",
"type": "n8n-nodes-base.function",
"position": [
-20,
-180
],
"parameters": {
"functionCode": "// Get the global workflow static data\nconst staticData = getWorkflowStaticData('global');\n// Update its data\nstaticData.oldRSSIds = new Date().getTime();\n// Delete data\ndelete staticData.oldRSSIds;\n\nreturn [\n {\n json: {}\n }\n]"
},
"typeVersion": 1
}
],
"connections": {
"Cron": {
"main": [
[
{
"node": "RSS Source",
"type": "main",
"index": 0
}
]
]
},
"IF-1": {
"main": [
[
{
"node": "Telegram_M365",
"type": "main",
"index": 0
}
],
[
{
"node": "IF-2",
"type": "main",
"index": 0
}
]
]
},
"IF-2": {
"main": [
[
{
"node": "Telegram_Security",
"type": "main",
"index": 0
}
],
[
{
"node": "Telegram_IT",
"type": "main",
"index": 0
}
]
]
},
"RSS Source": {
"main": [
[
{
"node": "SplitInBatches",
"type": "main",
"index": 0
}
]
]
},
"RSS Feed Read": {
"main": [
[
{
"node": "SplitInBatches",
"type": "main",
"index": 0
},
{
"node": "only get new RSS",
"type": "main",
"index": 0
}
]
]
},
"SplitInBatches": {
"main": [
[
{
"node": "RSS Feed Read",
"type": "main",
"index": 0
}
]
]
},
"only get new RSS": {
"main": [
[
{
"node": "IF-1",
"type": "main",
"index": 0
}
]
]
}
}
}Workflow n8n Telegram, RSS, notifications : pour qui est ce workflow ?
Ce workflow est destiné aux entreprises et équipes qui utilisent Telegram pour la communication interne et qui souhaitent automatiser la réception d'informations critiques à partir de flux RSS. Il est idéal pour les équipes de communication, de marketing et de veille stratégique, quel que soit leur niveau technique.
Workflow n8n Telegram, RSS, notifications : problème résolu
Ce workflow résout le problème de la surcharge d'informations et du manque de réactivité face aux nouvelles. En automatisant la lecture des flux RSS et l'envoi de notifications sur Telegram, il élimine le besoin de vérifications manuelles fréquentes, réduisant ainsi le risque de manquer des informations importantes. Les utilisateurs bénéficient d'une communication fluide et d'une meilleure gestion de l'information.
Workflow n8n Telegram, RSS, notifications : étapes du workflow
Étape 1 : Le workflow est déclenché par un Cron, qui le lance à des intervalles réguliers.
- Étape 1 : Le noeud 'RSS Feed Read' récupère les nouvelles entrées du flux RSS spécifié.
- Étape 2 : La fonction 'only get new RSS' filtre les articles déjà traités pour éviter les doublons.
- Étape 3 : Les nouvelles entrées sont divisées en lots grâce au noeud 'SplitInBatches'.
- Étape 4 : Chaque lot est envoyé aux différents canaux Telegram selon les conditions définies dans les noeuds 'IF-1' et 'IF-2'.
- Étape 5 : Les notifications sont envoyées via les noeuds 'Telegram_IT', 'Telegram_Security', et 'Telegram_M365'.
Workflow n8n Telegram, RSS, notifications : guide de personnalisation
Pour personnaliser ce workflow, vous pouvez modifier l'URL du flux RSS dans le noeud 'RSS Feed Read'. Si vous souhaitez changer les canaux Telegram, il suffit de mettre à jour les IDs de chat dans les noeuds 'Telegram_IT', 'Telegram_Security', et 'Telegram_M365'. Vous pouvez également ajuster la fréquence d'exécution du Cron selon vos besoins. Pour une meilleure gestion, pensez à sécuriser les informations sensibles et à monitorer les performances du flux en ajoutant des noeuds de log ou de notification en cas d'erreur.