This workflow follows the HTTP Request → Telegram recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
340,
380
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Write Binary File",
"type": "n8n-nodes-base.writeBinaryFile",
"position": [
1680,
280
],
"parameters": {
"fileName": "={{$node[\"Config\"].parameter[\"values\"][\"string\"][0][\"value\"]}}"
},
"typeVersion": 1
},
{
"name": "Read Binary File",
"type": "n8n-nodes-base.readBinaryFile",
"position": [
580,
460
],
"parameters": {
"filePath": "={{$node[\"Config\"].parameter[\"values\"][\"string\"][0][\"value\"]}}"
},
"typeVersion": 1,
"continueOnFail": true,
"alwaysOutputData": true
},
{
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
1020,
460
],
"parameters": {
"url": "https://readwise.io/reader/api/state/",
"options": {},
"authentication": "headerAuth",
"queryParametersUi": {
"parameter": [
{
"name": "schemaVersion",
"value": "5"
},
{
"name": "filter[updated_at][gt]",
"value": "={{$json[\"last_synced\"]}}"
}
]
},
"headerParametersUi": {
"parameter": []
}
},
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
1480,
460
],
"parameters": {
"text": "={{$json[\"title\"]}} by {{$json[\"author\"]}}\n\n{{$json[\"summary\"]}}\n\n{{$json[\"url\"]}}",
"chatId": "={{$node[\"Config\"].parameter[\"values\"][\"number\"][0][\"value\"]}}",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"name": "Binary to json",
"type": "n8n-nodes-base.moveBinaryData",
"position": [
800,
460
],
"parameters": {
"options": {}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"name": "Json to binary",
"type": "n8n-nodes-base.moveBinaryData",
"position": [
1480,
280
],
"parameters": {
"mode": "jsonToBinary",
"options": {}
},
"typeVersion": 1
},
{
"name": "Set new update time",
"type": "n8n-nodes-base.functionItem",
"position": [
1280,
280
],
"parameters": {
"functionCode": "return {\n last_synced: new Date().getTime()\n};"
},
"typeVersion": 1
},
{
"name": "Split into baches",
"type": "n8n-nodes-base.function",
"position": [
1280,
460
],
"parameters": {
"functionCode": "const newValue = Object.values(items[0].json.documents).filter(it => it.category === 'article').filter(it => it.children.length === 0).map(it => ({\n json: {\n url: it.url,\n title: it.title,\n author: it.author,\n summary: it.summary,\n saved_at: new Date(it.saved_at),\n }\n}))\n\n\nreturn newValue;"
},
"typeVersion": 1
},
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
340,
540
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyX",
"unit": "minutes",
"value": 10
}
]
}
},
"typeVersion": 1
},
{
"name": "Config",
"type": "n8n-nodes-base.set",
"position": [
800,
300
],
"parameters": {
"values": {
"number": [
{
"name": "Telegram chat it",
"value": 19999
}
],
"string": [
{
"name": "file path",
"value": "/whatever/readwiseLastSynced.json"
}
]
},
"options": {}
},
"typeVersion": 1
}
],
"connections": {
"Cron": {
"main": [
[
{
"node": "Read Binary File",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Split into baches",
"type": "main",
"index": 0
},
{
"node": "Set new update time",
"type": "main",
"index": 0
}
]
]
},
"Binary to json": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"Json to binary": {
"main": [
[
{
"node": "Write Binary File",
"type": "main",
"index": 0
}
]
]
},
"Read Binary File": {
"main": [
[
{
"node": "Binary to json",
"type": "main",
"index": 0
}
]
]
},
"Split into baches": {
"main": [
[
{
"node": "Telegram",
"type": "main",
"index": 0
}
]
]
},
"Set new update time": {
"main": [
[
{
"node": "Json to binary",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Read Binary File",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
httpHeaderAuthtelegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
Stay effortlessly informed about articles you save in your RSS reader by receiving instant Telegram notifications for new items, ensuring you never miss key updates without constantly checking feeds. This workflow suits avid readers, researchers, or professionals monitoring specific topics, delivering concise summaries or links directly to your messaging app. The core step involves an event trigger that detects new saves, followed by an HTTP request to fetch details and the Telegram node to dispatch the alert seamlessly.
Use this workflow when you rely on a reader like Inoreader or Feedly for curated content and want real-time mobile alerts without app overload. Avoid it if your reader lacks robust event hooks or you prefer batched digests over immediacy. Common variations include adding filters in the function node to prioritise items by keyword or integrating email as an alternative to Telegram for broader reach.
About this workflow
Send A Message To Telegram On A New Item Saved To Reader. Uses manualTrigger, writeBinaryFile, readBinaryFile, httpRequest. Event-driven trigger; 11 nodes.
Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow aims to build a simple bot that will send a message to a telegram channel every time there is a new saved item to the Reader.
Extend N8N With Additional Tools. Uses telegram, telegramTrigger, httpRequest, spreadsheetFile. Event-driven trigger; 21 nodes.
This workflow extends n8n and uses R language graphic capabilities. This is a Telegram bot which fetches weather data via the openweathermap.org API, plots an image using ggoplot2 package from R and s
google drive to instagram, tiktok and youtube. Uses googleDriveTrigger, googleDrive, errorTrigger, telegram. Event-driven trigger; 15 nodes.
02 - Photo OCR Handler. Uses telegramTrigger, telegram, httpRequest, readBinaryFile. Event-driven trigger; 16 nodes.