209 lines
6.1 KiB
JSON
209 lines
6.1 KiB
JSON
{
|
|
"name": "Morning Intelligence Briefing",
|
|
"nodes": [
|
|
{
|
|
"parameters": {
|
|
"rule": {
|
|
"interval": [
|
|
{
|
|
"field": "hours",
|
|
"hoursInterval": 24,
|
|
"triggerAtHour": 6
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"id": "cron-trigger",
|
|
"name": "6 AM Daily",
|
|
"type": "n8n-nodes-base.scheduleTrigger",
|
|
"typeVersion": 1,
|
|
"position": [250, 300]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"url": "http://freshrss.kangaroo-eel.ts.net/api/greader.php/reader/api/0/stream/items/ids",
|
|
"sendQuery": true,
|
|
"queryParameters": {
|
|
"parameters": [
|
|
{
|
|
"name": "output",
|
|
"value": "json"
|
|
},
|
|
{
|
|
"name": "n",
|
|
"value": "20"
|
|
}
|
|
]
|
|
},
|
|
"options": {}
|
|
},
|
|
"id": "freshrss-fetch",
|
|
"name": "Fetch FreshRSS",
|
|
"type": "n8n-nodes-base.httpRequest",
|
|
"typeVersion": 4.1,
|
|
"position": [450, 200],
|
|
"credentials": {
|
|
"httpBasicAuth": {
|
|
"id": "freshrss-creds",
|
|
"name": "FreshRSS Credentials"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"command": "cd /home/openclaw/.openclaw/workspace/skills/news-aggregator-skill && .venv/bin/python scripts/fetch_news.py --source all --limit 15"
|
|
},
|
|
"id": "news-aggregator",
|
|
"name": "News Aggregator",
|
|
"type": "n8n-nodes-base.executeCommand",
|
|
"typeVersion": 1,
|
|
"position": [450, 400]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"model": "llama-3.1-sonar-large-128k-online",
|
|
"messages": {
|
|
"message": [
|
|
{
|
|
"role": "user",
|
|
"content": "What are the top 5 tech, AI, and business news stories from today?"
|
|
}
|
|
]
|
|
},
|
|
"options": {}
|
|
},
|
|
"id": "perplexity-search",
|
|
"name": "Perplexity Search",
|
|
"type": "n8n-nodes-base.httpRequest",
|
|
"typeVersion": 4.1,
|
|
"position": [650, 300],
|
|
"credentials": {
|
|
"httpHeaderAuth": {
|
|
"id": "perplexity-creds",
|
|
"name": "Perplexity API"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"parameters": {
|
|
"jsCode": "// Combine all news sources and deduplicate\nconst freshRSS = $input.first().json;\nconst newsAgg = $input.all()[1].json;\nconst perplexity = $input.all()[2].json;\n\n// Create combined list\nlet allStories = [];\n\n// Add FreshRSS items\nif (freshRSS && freshRSS.items) {\n allStories = allStories.concat(freshRSS.items.map(item => ({\n source: 'FreshRSS',\n title: item.title,\n url: item.url,\n time: item.timestamp\n })));\n}\n\n// Add News Aggregator items\nif (newsAgg && Array.isArray(newsAgg)) {\n allStories = allStories.concat(newsAgg.map(item => ({\n source: item.source || 'News Aggregator',\n title: item.title,\n url: item.url,\n heat: item.heat\n })));\n}\n\n// Add Perplexity insights\nif (perplexity && perplexity.choices) {\n allStories.push({\n source: 'Perplexity AI',\n title: 'AI-Synthesized Briefing',\n content: perplexity.choices[0].message.content\n });\n}\n\n// Return combined for AI analysis\nreturn [{\n json: {\n stories: allStories,\n count: allStories.length,\n sources: ['FreshRSS', 'News Aggregator', 'Perplexity']\n }\n}];"
|
|
},
|
|
"id": "combine-sources",
|
|
"name": "Combine Sources",
|
|
"type": "n8n-nodes-base.code",
|
|
"typeVersion": 2,
|
|
"position": [850, 300]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"model": "gpt-4o-mini",
|
|
"options": {},
|
|
"messages": {
|
|
"message": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a news editor creating a morning intelligence briefing. Analyze the provided news stories from multiple sources, remove duplicates, identify genuinely new information, and create a concise summary of the top 5-7 most important stories. Format as markdown with emojis. Focus on tech, AI, business, and relevant world news."
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "=Create a morning briefing from these sources:\n\n{{ $json.stories }}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"id": "ai-summarize",
|
|
"name": "AI Summarize",
|
|
"type": "@n8n/n8n-nodes-langchain.agent",
|
|
"typeVersion": 1.6,
|
|
"position": [1050, 300]
|
|
},
|
|
{
|
|
"parameters": {
|
|
"chatId": "1793951355",
|
|
"text": "=🌅 **Morning Intelligence Briefing**\n\n{{ $json.output }}\n\n---\n_Sources: FreshRSS, News Aggregator, Perplexity AI_",
|
|
"options": {}
|
|
},
|
|
"id": "telegram-send",
|
|
"name": "Send Telegram",
|
|
"type": "n8n-nodes-base.telegram",
|
|
"typeVersion": 1.1,
|
|
"position": [1250, 300],
|
|
"credentials": {
|
|
"telegramApi": {
|
|
"id": "telegram-bot-creds",
|
|
"name": "Telegram Bot"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"connections": {
|
|
"6 AM Daily": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Fetch FreshRSS",
|
|
"type": "main",
|
|
"index": 0
|
|
},
|
|
{
|
|
"node": "News Aggregator",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Fetch FreshRSS": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Combine Sources",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"News Aggregator": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Combine Sources",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Combine Sources": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "AI Summarize",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"AI Summarize": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Send Telegram",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
}
|
|
},
|
|
"settings": {
|
|
"executionOrder": "v1"
|
|
},
|
|
"staticData": null,
|
|
"tags": [],
|
|
"pinData": {},
|
|
"description": "Daily morning briefing combining FreshRSS, News Aggregator, and Perplexity AI into a single Telegram message at 6 AM"
|
|
}
|