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": "Telegram Intelligence Agent \u2014 Daily Digest",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"field": "days",
"daysInterval": 1,
"triggerAtHour": 8
}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
-800,
0
],
"id": "00000000-0000-4000-8000-000000003001",
"name": "Daily at 08:00"
},
{
"parameters": {
"resource": "row",
"operation": "get",
"dataTableId": {
"__rl": true,
"value": "subscriptions",
"mode": "name"
},
"matchType": "allConditions",
"filters": {
"conditions": [
{
"keyName": "status",
"condition": "eq",
"keyValue": "active"
}
]
},
"returnAll": true
},
"type": "n8n-nodes-base.dataTable",
"typeVersion": 1.1,
"position": [
-560,
0
],
"id": "00000000-0000-4000-8000-000000003002",
"name": "Get Active Subscriptions"
},
{
"parameters": {
"resource": "row",
"operation": "get",
"dataTableId": {
"__rl": true,
"value": "messages",
"mode": "name"
},
"matchType": "allConditions",
"filters": {
"conditions": [
{
"keyName": "channel_username",
"condition": "eq",
"keyValue": "={{ $json.channel_username }}"
}
]
},
"returnAll": true,
"orderBy": true,
"orderByColumn": "published_at",
"orderByDirection": "DESC"
},
"type": "n8n-nodes-base.dataTable",
"typeVersion": 1.1,
"position": [
-320,
0
],
"id": "00000000-0000-4000-8000-000000003003",
"name": "Get Subscription Messages",
"alwaysOutputData": true
},
{
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "const sub=$('Get Active Subscriptions').item.json; return {json:{...$json,chat_id:String(sub.chat_id),sub_channel:sub.channel_username}};"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
-80,
0
],
"id": "00000000-0000-4000-8000-000000003004",
"name": "Attach Subscriber"
},
{
"parameters": {
"jsCode": "const cutoff=Date.now()-24*3600000;const groups={};for(const i of $input.all()){const x=i.json;(groups[x.chat_id]||=[]).push(x);}const out=[];for(const [chat_id,rows0] of Object.entries(groups)){const rows=rows0.filter(r=>r.message_id&&new Date(r.published_at).getTime()>=cutoff).sort((a,b)=>Number(b.importance_score||0)-Number(a.importance_score||0)).slice(0,10);const reply=rows.length?'Daily digest\\n\\n'+rows.map(r=>'- ['+(r.topic||'General')+'] '+(r.summary||r.text||'[Post without text]').slice(0,250)+'\\n'+r.message_url).join('\\n\\n'):'No new posts were stored for your channels in the last 24 hours.';out.push({json:{chat_id,reply}});}return out;"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
160,
0
],
"id": "00000000-0000-4000-8000-000000003005",
"name": "Build Daily Digests"
},
{
"parameters": {
"resource": "message",
"operation": "sendMessage",
"chatId": "={{ $json.chat_id }}",
"text": "={{ String($json.reply || \"Internal error\").slice(0, 4000) }}",
"additionalFields": {
"appendAttribution": false
}
},
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
400,
0
],
"id": "00000000-0000-4000-8000-000000003006",
"name": "Send Daily Digest",
"onError": "continueRegularOutput"
}
],
"connections": {
"Daily at 08:00": {
"main": [
[
{
"node": "Get Active Subscriptions",
"type": "main",
"index": 0
}
]
]
},
"Get Active Subscriptions": {
"main": [
[
{
"node": "Get Subscription Messages",
"type": "main",
"index": 0
}
]
]
},
"Get Subscription Messages": {
"main": [
[
{
"node": "Attach Subscriber",
"type": "main",
"index": 0
}
]
]
},
"Attach Subscriber": {
"main": [
[
{
"node": "Build Daily Digests",
"type": "main",
"index": 0
}
]
]
},
"Build Daily Digests": {
"main": [
[
{
"node": "Send Daily Digest",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1",
"timezone": "Asia/Tehran",
"saveDataErrorExecution": "all",
"saveDataSuccessExecution": "none"
},
"versionId": "00000000-0000-4000-8000-000000003007",
"meta": {
"templateCredsSetupCompleted": false
},
"tags": []
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Telegram Intelligence Agent — Daily Digest. Uses dataTable, telegram. Scheduled trigger; 6 nodes.
Source: https://github.com/amir-9473/telegram-intelligence-agent/blob/main/n8n/workflows/04_daily_digest.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.
Telegram Intelligence Agent — AI Enrichment and Alerts. Uses dataTable, httpRequest, telegram. Scheduled trigger; 13 nodes.
Telegram Intelligence Agent — Channel Collector. Uses dataTable, httpRequest, telegram. Scheduled trigger; 12 nodes.
Staying up to date with fast-moving topics like AI, machine learning, or your specific industry can be overwhelming. You either drown in daily noise or miss important developments between weekly diges
Workflow Name: Geopolitics Breaking News Alert System Author: Devjothi Dutta Category: Productivity, News & Media, AI/Machine Learning Complexity: Medium Setup Time: 45-60 minutes
Tags: EU News, RSS, AI Classifier, Data Table, Email Digest, Automation, n8n