Automatisation Telegram avec n8n : envoi d'alertes RSS
Ce workflow n8n a pour objectif d'automatiser l'envoi d'alertes sur Telegram à partir de flux RSS, permettant ainsi aux utilisateurs de rester informés des dernières mises à jour de leurs sources préférées. Que ce soit pour des actualités, des blogs ou des réseaux sociaux, ce système d'automatisation n8n facilite la diffusion d'informations en temps réel. Le workflow commence par un déclencheur basé sur un cron, qui active le processus à intervalles réguliers. Ensuite, il utilise des nœuds pour lire des flux RSS, notamment Instagram et Weibo, et vérifie si de nouveaux contenus sont disponibles. Les données sont ensuite traitées par des fonctions qui déterminent la quantité d'images à envoyer et vérifient si le contenu a déjà été partagé, évitant ainsi les doublons. Si des nouvelles sont détectées, elles sont envoyées directement sur Telegram via des nœuds dédiés, garantissant que les utilisateurs reçoivent des mises à jour pertinentes sans délai. Grâce à cette automatisation, les entreprises et les équipes peuvent améliorer leur communication et leur réactivité, tout en réduisant le temps passé à surveiller manuellement les flux d'informations.
Workflow n8n Telegram, RSS, flux d'informations : 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, flux d'informations : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"id": "3",
"name": "rss-telegram",
"nodes": [
{
"name": "SplitInBatches",
"type": "n8n-nodes-base.splitInBatches",
"position": [
480,
220
],
"parameters": {
"batchSize": 1
},
"typeVersion": 1
},
{
"name": "Function",
"type": "n8n-nodes-base.function",
"position": [
610,
220
],
"parameters": {
"functionCode": "const staticData = getWorkflowStaticData('global');\n\n// Access its data\nconst oldlink = staticData.oldlink;\n\nitems[0].json.oldlink = oldlink || \"\";\n\n// Update its data\nstaticData.oldlink = items[0].json.link;\n\nreturn items;"
},
"typeVersion": 1
},
{
"name": "Cron1",
"type": "n8n-nodes-base.cron",
"position": [
180,
290
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"typeVersion": 1
},
{
"name": "是否重复",
"type": "n8n-nodes-base.if",
"notes": "判断链接是否相同",
"position": [
750,
220
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"Function\"].data[\"oldlink\"]}}",
"value2": "={{$node[\"Function\"].data[\"link\"]}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "写入图片的属性",
"type": "n8n-nodes-base.function",
"position": [
910,
220
],
"parameters": {
"functionCode": "function imgList(items) {\n let imgReg = /<img.*?(?:>|\\/>)/gi //匹配图片中的img标签\n let srcReg = /src=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i // 匹配图片中的src\n let str = items[0].json.content\n let arr = str.match(imgReg) //筛选出所有的img\n let srcArr = []\n if(arr !== null){\n for (let i = 0; i < arr.length; i++) {\n let src = arr[i].match(srcReg)\n // 获取图片地址\n srcArr.push(src[1])\n }\n items[0].json.arrlength = arr.length;\n items[0].json.imgList = srcArr;\n } else {\n items[0].json.arrlength = 0;\n }\n \n }\nimgList(items)\nreturn items;"
},
"typeVersion": 1
},
{
"name": "图片数量判断",
"type": "n8n-nodes-base.if",
"position": [
1060,
220
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$node[\"写入图片的属性\"].data[\"arrlength\"]}}",
"value2": 1,
"operation": "equal"
}
],
"string": [],
"boolean": []
}
},
"typeVersion": 1
},
{
"name": "一张图片",
"type": "n8n-nodes-base.telegram",
"position": [
1270,
80
],
"parameters": {
"file": "={{$node[\"图片数量判断\"].data[\"imgList\"][0]}}",
"chatId": "-1001314058276",
"operation": "sendPhoto",
"additionalFields": {
"caption": "={{$node[\"图片数量判断\"].data[\"contentSnippet\"]}}"
}
},
"credentials": {
"telegramApi": "lataimei"
},
"typeVersion": 1
},
{
"name": "其他状况",
"type": "n8n-nodes-base.telegram",
"notes": "无图片",
"position": [
1270,
230
],
"parameters": {
"text": "={{$node[\"图片数量判断\"].data[\"contentSnippet\"]}} {{$node[\"图片数量判断\"].data[\"link\"]}}",
"chatId": "-1001314058276",
"additionalFields": {
"parse_mode": "HTML",
"disable_web_page_preview": true
}
},
"credentials": {
"telegramApi": "lataimei"
},
"typeVersion": 1
},
{
"name": "NaN",
"type": "n8n-nodes-base.function",
"position": [
910,
370
],
"parameters": {
"functionCode": "function imgList(items) {\n let imgReg = /<img.*?(?:>|\\/>)/gi //匹配图片中的img标签\n let srcReg = /src=[\\'\\\"]?([^\\'\\\"]*)[\\'\\\"]?/i // 匹配图片中的src\n let str = items[0].json.content\n let arr = str.match(imgReg) //筛选出所有的img\n let srcArr = []\n if(arr !== null){\n for (let i = 0; i < arr.length; i++) {\n let src = arr[i].match(srcReg)\n // 获取图片地址\n srcArr.push(src[1])\n }\n items[0].json.arrlength = arr.length;\n items[0].json.imgList = srcArr;\n } else {\n items[0].json.arrlength = 0;\n }\n \n }\nimgList(items)\nreturn items;"
},
"typeVersion": 1
},
{
"name": "SplitInBatches1",
"type": "n8n-nodes-base.splitInBatches",
"position": [
480,
370
],
"parameters": {
"batchSize": 1
},
"typeVersion": 1
},
{
"name": "Function1",
"type": "n8n-nodes-base.function",
"position": [
610,
370
],
"parameters": {
"functionCode": "const staticData = getWorkflowStaticData('global');\n\n// Access its data\nconst tsaioldlink = staticData.tsaioldlink;\n\nitems[0].json.tsaioldlink = tsaioldlink || \"\";\n\n// Update its data\nstaticData.tsaioldlink = items[0].json.link;\n\nreturn items;"
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
750,
370
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"Function1\"].data[\"tsaioldlink\"]}}",
"value2": "={{$node[\"Function1\"].data[\"link\"]}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "IF1",
"type": "n8n-nodes-base.if",
"position": [
1060,
370
],
"parameters": {
"conditions": {
"number": [
{
"value1": 1,
"value2": "=0",
"operation": "equal"
}
]
}
},
"typeVersion": 1
},
{
"name": "send",
"type": "n8n-nodes-base.telegram",
"notes": "无图片",
"position": [
1270,
380
],
"parameters": {
"file": "={{$node[\"IF1\"].data[\"imgList\"][0]}}",
"chatId": "-1001499587010",
"operation": "sendPhoto",
"additionalFields": {
"caption": "={{$node[\"IF1\"].data[\"contentSnippet\"]}}"
}
},
"credentials": {
"telegramApi": "lataimei"
},
"typeVersion": 1
},
{
"name": "instagram rss",
"type": "n8n-nodes-base.rssFeedRead",
"position": [
360,
370
],
"parameters": {
"url": "=https://rsshub985.herokuapp.com/instagram/user/tsai_ingwen/"
},
"typeVersion": 1
},
{
"name": "weibo rss",
"type": "n8n-nodes-base.rssFeedRead",
"position": [
360,
220
],
"parameters": {
"url": "=https://rsshub985.herokuapp.com/weibo/user/5721376081"
},
"typeVersion": 1
},
{
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
1270,
530
],
"parameters": {
"file": "={{$node[\"IF1\"].data[\"imgList\"][0]}}",
"chatId": "-1001499587010",
"operation": "sendPhoto",
"additionalFields": {
"caption": "={{$node[\"IF1\"].data[\"contentSnippet\"]}} {{$node[\"IF1\"].data[\"link\"]}}"
}
},
"credentials": {
"telegramApi": "lataimei"
},
"typeVersion": 1
},
{
"name": "test",
"type": "n8n-nodes-base.manualTrigger",
"position": [
180,
130
],
"parameters": {},
"typeVersion": 1
}
],
"active": true,
"settings": {},
"connections": {
"IF": {
"main": [
[],
[
{
"node": "NaN",
"type": "main",
"index": 0
}
]
]
},
"IF1": {
"main": [
[
{
"node": "send",
"type": "main",
"index": 0
}
],
[
{
"node": "Telegram",
"type": "main",
"index": 0
}
]
]
},
"NaN": {
"main": [
[
{
"node": "IF1",
"type": "main",
"index": 0
}
]
]
},
"test": {
"main": [
[
{
"node": "instagram rss",
"type": "main",
"index": 0
},
{
"node": "weibo rss",
"type": "main",
"index": 0
}
]
]
},
"Cron1": {
"main": [
[
{
"node": "weibo rss",
"type": "main",
"index": 0
},
{
"node": "instagram rss",
"type": "main",
"index": 0
}
]
]
},
"Function": {
"main": [
[
{
"node": "是否重复",
"type": "main",
"index": 0
}
]
]
},
"Function1": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"weibo rss": {
"main": [
[
{
"node": "SplitInBatches",
"type": "main",
"index": 0
}
]
]
},
"是否重复": {
"main": [
[],
[
{
"node": "写入图片的属性",
"type": "main",
"index": 0
}
]
]
},
"instagram rss": {
"main": [
[
{
"node": "SplitInBatches1",
"type": "main",
"index": 0
}
]
]
},
"SplitInBatches": {
"main": [
[
{
"node": "Function",
"type": "main",
"index": 0
}
]
]
},
"SplitInBatches1": {
"main": [
[
{
"node": "Function1",
"type": "main",
"index": 0
}
]
]
},
"图片数量判断": {
"main": [
[
{
"node": "一张图片",
"type": "main",
"index": 0
}
],
[
{
"node": "其他状况",
"type": "main",
"index": 0
}
]
]
},
"写入图片的属性": {
"main": [
[
{
"node": "图片数量判断",
"type": "main",
"index": 0
}
]
]
}
}
}Workflow n8n Telegram, RSS, flux d'informations : pour qui est ce workflow ?
Ce workflow s'adresse aux entreprises et aux équipes marketing qui souhaitent automatiser la diffusion d'informations à partir de flux RSS. Il est particulièrement utile pour les professionnels du secteur de la communication, du marketing digital et des médias, ainsi que pour toute organisation souhaitant améliorer sa réactivité face aux nouvelles.
Workflow n8n Telegram, RSS, flux d'informations : problème résolu
Ce workflow résout le problème de la gestion manuelle des flux d'informations, qui peut être chronophage et source d'erreurs. En automatisant l'envoi d'alertes sur Telegram, il élimine le risque de manquer des mises à jour importantes et permet aux utilisateurs de se concentrer sur des tâches à plus forte valeur ajoutée. Les résultats concrets incluent une communication plus rapide et efficace, ainsi qu'une meilleure gestion des informations.
Workflow n8n Telegram, RSS, flux d'informations : étapes du workflow
Étape 1 : Le workflow est déclenché par un cron qui active le processus à intervalles réguliers.
- Étape 1 : Les flux RSS d'Instagram et de Weibo sont lus pour détecter de nouveaux contenus.
- Étape 2 : Des fonctions vérifient la quantité d'images à envoyer et s'assurent que le contenu n'a pas déjà été partagé.
- Étape 3 : Si de nouvelles informations sont disponibles, elles sont envoyées sur Telegram à l'aide de nœuds dédiés, garantissant une diffusion rapide et efficace.
Workflow n8n Telegram, RSS, flux d'informations : guide de personnalisation
Pour personnaliser ce workflow, vous pouvez modifier l'URL des flux RSS que vous souhaitez suivre. Ajustez également les paramètres des nœuds Telegram pour spécifier le chatId où les messages seront envoyés. Si vous souhaitez intégrer d'autres sources d'informations, il suffit d'ajouter des nœuds RSS supplémentaires. Pensez à sécuriser votre flux en vérifiant les conditions d'envoi pour éviter les doublons et en monitorant les performances via les logs de n8n.