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 →
{
"name": "JSON Feed Watcher \u2192 Telegram",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"field": "minutes",
"minutesInterval": 5
}
]
}
},
"id": "trigger-5min",
"name": "Ogni 5 minuti",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
0,
0
]
},
{
"parameters": {
"url": "https://INSERISCI-LA-TUA-API/lista.json",
"options": {
"timeout": 10000
}
},
"id": "fetch-feed",
"name": "Leggi il feed JSON",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
220,
0
]
},
{
"parameters": {
"jsCode": "// Adatta ARRAY_FIELD, FILTER_FIELD e TIMESTAMP_FIELD alla forma della tua risposta JSON.\n// L'idea: tieni in memoria (static data, sopravvive ai riavvii n8n) l'ultimo timestamp visto,\n// e manda solo le voci nuove che superano il filtro che ti interessa.\nconst ARRAY_FIELD = 'items'; // nome del campo che contiene l'array nella risposta\nconst FILTER_VALUES = []; // es. ['errore','warning'] \u2014 lascia [] per non filtrare\nconst FILTER_FIELD = 'tipo'; // campo su cui applicare FILTER_VALUES\nconst TIMESTAMP_FIELD = 'ts'; // campo timestamp/ordinabile, per non ripetere le stesse voci\n\nconst state = $getWorkflowStaticData('global');\nconst lastTs = state.lastTs || '';\nconst raw = ($input.first().json[ARRAY_FIELD] || []);\nconst events = raw\n .filter(e => !FILTER_VALUES.length || FILTER_VALUES.includes(e[FILTER_FIELD]))\n .filter(e => String(e[TIMESTAMP_FIELD] || '') > lastTs)\n .reverse();\nif (events.length) state.lastTs = String(events[events.length - 1][TIMESTAMP_FIELD] || lastTs);\nreturn events.map(e => ({ json: {\n text: `\ud83d\udd14 ${e[FILTER_FIELD] || 'evento'}\\n${JSON.stringify(e).slice(0, 300)}`\n} }));"
},
"id": "filter-new",
"name": "Solo voci nuove e filtrate",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
440,
0
]
},
{
"parameters": {
"chatId": "={{ $env.TELEGRAM_CHAT_ID || 'INSERISCI_CHAT_ID' }}",
"text": "={{ $json.text }}",
"additionalFields": {}
},
"id": "send-telegram",
"name": "Manda su Telegram",
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
660,
0
],
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
}
],
"connections": {
"Ogni 5 minuti": {
"main": [
[
{
"node": "Leggi il feed JSON",
"type": "main",
"index": 0
}
]
]
},
"Leggi il feed JSON": {
"main": [
[
{
"node": "Solo voci nuove e filtrate",
"type": "main",
"index": 0
}
]
]
},
"Solo voci nuove e filtrate": {
"main": [
[
{
"node": "Manda su Telegram",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"meta": {
"note": "Setup: 1) crea un bot con @BotFather e copia il token; 2) in n8n crea la credenziale Telegram API con quel token e collegala al nodo; 3) scrivi al bot e ricava il tuo chat_id (es. da https://api.telegram.org/bot<TOKEN>/getUpdates), poi mettilo nel nodo Telegram o come variabile d'ambiente TELEGRAM_CHAT_ID; 4) adatta i 4 nomi di campo nel nodo Code alla forma della tua risposta JSON; 5) attiva il workflow."
}
}
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.
telegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
JSON Feed Watcher → Telegram. Uses httpRequest, telegram. Scheduled trigger; 4 nodes.
Source: https://github.com/DeusAcc/n8n-json-feed-to-telegram/blob/main/json-feed-to-telegram.json — 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.
Auto Hunt. Uses httpRequest, googleSheets, rssFeedRead, telegram. Scheduled trigger; 78 nodes.
Auto-Hunt. Uses httpRequest, googleSheets, rssFeedRead, telegram. Scheduled trigger; 78 nodes.
This workflow runs daily at 9 AM, uses Perplexity to compile vaping industry news, optionally captures article screenshots via Browserless, and generates a HeyGen avatar video from a template. It then
. Uses googleSheets, telegram, httpRequest, wise. Scheduled trigger; 36 nodes.
GNCA AI News Pipeline. Uses rssFeedRead, httpRequest, telegram, errorTrigger. Scheduled trigger; 31 nodes.