{"workflow":{"id":12589,"name":"Curate key RSS articles with OpenAI, save to Notion, and notify via Telegram","views":21,"recentViews":0,"totalViews":21,"createdAt":"2026-01-08T18:10:03.682Z","description":"## Think of this workflow as your personal news assistant that:\n- Monitors multiple technology websites 24/7\n- Uses AI to read and understand each article\n- Filters out low-quality content automatically.\n- Saves the best articles to Notion with summaries.\n- Sends you Telegram alerts for must-read content.\n\n---\n\n## Prerequisites (What You Need Before Starting)\n\n### 1. **Notion Account** (Free)\n- Sign up at notion.so\n- You'll store all curated articles here\n\n### 2. **OpenAI Account** (Paid)\n- Sign up at platform.openai.com\n- Cost: ~$0.01-0.02 per article (~$15-30/month for 50 articles/day)\n- Needed for AI content analysis\n\n### 3. **Telegram Account** (Free)\n- Download Telegram app\n- Needed for instant notifications\n\n### 4. **RSS Feed URLs** (Free)\n- Included: TechCrunch, Dev.to, The Verge\n- Optional: Add your own favorite tech blogs\n\n---\n\n## Step-by-Step Configuration\n\n### STEP 1: Create Your Notion Database\n\n#### 1.1 Create New Database\n1. Open Notion (notion.so)\n2. Click \"+ New Page\"\n3. Select \"Table\" view\n4. Name it \"Content Curator\"\n\n#### 1.2 Add Required Properties\nClick \"+ New Property\" and add each:\n- **Title** (Rich Text) - Already exists by default\n- **URL** (URL type)\n- **Summary** (Rich Text)\n- **Category** (Select) - Add options: Technology, AI, Business, DevOps, Other\n- **Tags** (Rich Text)\n- **Sentiment** (Select) - Add options: Positive, Neutral, Negative\n- **Priority** (Number)\n- **Source** (Rich Text)\n- **Published** (Date)\n- **Added Date** (Date)\n- **Status** (Select) - Add options: New, Read, Archived\n\n#### 1.3 Get Database ID\n1. Open your Notion database\n2. Click \"Share\" button (top right)\n3. Click \"Copy Link\"\n4. Extract the ID from URL:\n   - URL: `https://www.notion.so/28e3a42420b2801e8ef5c680e49afc2e`\n   - ID: `28e3a42420b2801e8ef5c680e49afc2e`\n5. **Save this ID** - you'll need it multiple times\n\n---\n\n### STEP 2: Create Notion Integration\n\n#### 2.1 Create Integration\n1. Go to: notion.so/my-integrations\n2. Click \"+ New Integration\"\n3. Name: \"RSS Content Curator\"\n4. Select your workspace\n5. Click \"Submit\"\n6. Copy the \"Internal Integration Token\" (starts with `secret_`)\n7. **IMPORTANT: Save this token safely!**\n\n#### 2.2 Connect Integration to Database\n1. Open your \"Content Curator\" database in Notion\n2. Click \"•••\" (three dots, top right)\n3. Scroll to \"Add connections\"\n4. Select \"RSS Content Curator\"\n5. Click \"Confirm\"\n\n---\n\n### STEP 3: Set Up OpenAI\n\n1. Go to: platform.openai.com\n2. Sign up or log in\n3. Add payment method (required)\n4. Navigate to: platform.openai.com/api-keys\n5. Click \"+ Create new secret key\"\n6. Name: \"n8n-content-curator\"\n7. Copy the key (starts with `sk-`)\n8. **IMPORTANT: You can't see this key again - save it now!**\n\n---\n\n### STEP 4: Create Telegram Bot\n\n#### 4.1 Create the Bot\n1. Open Telegram app\n2. Search for \"@BotFather\"\n3. Start chat with BotFather\n4. Send: `/newbot`\n5. Follow prompts:\n   - Bot name: \"My Content Curator\"\n   - Username: \"my_content_curator_bot\"\n6. Copy the HTTP API token\n7. **Save this token**\n\n#### 4.2 Get Your Chat ID\n1. Search for your bot in Telegram\n2. Start a chat and send any message\n3. Open in browser:\n   ```\n   https://api.telegram.org/bot&lt;YOUR_BOT_TOKEN&gt;/getUpdates\n   ```\n   (Replace `&lt;YOUR_BOT_TOKEN&gt;` with your actual token)\n4. Find `\"chat\":{\"id\":` followed by a number\n5. Copy that number (e.g., `8346316847`)\n6. **Save this Chat ID**\n\n---\n\n### STEP 5: Import Workflow to n8n\n\n1. Log in to n8n\n2. Click \"Workflows\" → \"Add Workflow\"\n3. Click three dots (⋮) → \"Import from File\"\n4. Select `RSS_AI_Content_Curator_Enhanced.json`\n5. Click \"Import\"\n\n---\n\n### STEP 6: Configure Notion Credentials\n\n**Four nodes need Notion connection:**\n1. Get Existing Articles\n2. Get Old Articles (&gt;30 days)\n3. Save to Notion\n4. Archive Old Articles\n\n**For EACH node:**\n1. Click the node\n2. Find \"Credential to connect with\"\n3. Click \"Create New\"\n4. Select \"Notion API\"\n5. Name: \"My Notion Curator\"\n6. Paste your Integration Token from Step 2.1\n7. Click \"Save\"\n\n**Update Database IDs:**\n1. In each Notion node, find \"Database ID\" field\n2. Click refresh icon next to it\n3. Select \"From list\"\n4. Choose your \"Content Curator\" database\n5. Test: Click \"Execute Node\"\n6. Success = green checkmark ✓\n\n---\n\n### STEP 7: Configure OpenAI Credentials\n\n1. Click on \"AI Content Analysis\" node\n2. Find \"Authentication\" section\n3. Under \"HTTP Header Auth\", click \"Create New\"\n4. Fill in:\n   - **Name:** `Authorization`\n   - **Value:** `Bearer sk-YOUR_API_KEY_HERE`\n   (Replace with your actual OpenAI key from Step 3)\n5. Click \"Save\"\n\n---\n\n### STEP 8: Configure Telegram Credentials\n\n1. Click on \"Telegram Notification\" node\n2. Under \"Credential to connect with\", click \"Create New\"\n3. Select \"Telegram API\"\n4. Name: \"My Telegram Bot\"\n5. Paste Bot Token from Step 4.1\n6. Click \"Save\"\n\n**Update Chat ID:**\n1. In \"Telegram Notification\" node\n2. Find \"Chat ID\" field\n3. Paste your Chat ID from Step 4.2\n4. Test: Click \"Execute Node\"\n\n---\n\n### STEP 9: Test the Workflow\n\n#### Manual Test Run\n1. Verify all nodes show green (no errors)\n2. Click \"Execute Workflow\" (top right)\n3. Watch nodes light up in sequence\n4. Check for red error nodes\n5. If all green:\n   - Open Notion - should see new articles\n   - Check Telegram - may see notification if high-priority article found\n\n#### Expected Results:\n- Workflow fetches from 3 RSS feeds\n- Removes duplicate articles\n- Checks which are new (not already in Notion)\n- AI analyzes each article (summary, category, priority)\n- Articles with priority ≥60 saved to Notion\n- High-priority articles trigger Telegram notification\n\n---\n\n### STEP 10: Activate Automatic Execution\n\n#### Replace Manual Trigger\n1. Click \"Manual Trigger\" node\n2. Press Delete\n3. Click \"+\" to add node\n4. Search \"Schedule Trigger\"\n5. Select it\n\n#### Configure Schedule\nChoose one:\n- **Every 4 hours:** More updates, higher cost\n- **Every 6 hours:** Balanced (recommended)\n- **Every 12 hours:** Lower cost\n- **Daily at specific time:** Minimal cost\n\nExample for every 6 hours:\n- Mode: \"Every X\"\n- Value: 6\n- Unit: Hours\n\n#### Activate\n1. Click toggle switch (top right)\n2. Should turn green: \"Active\"\n3. Workflow now runs automatically!","workflow":{"id":"UNFe3hdtDsylgfrT","meta":{"instanceId":"b2fd64f6476e0252f7478f6000dcc43dec6cd20968631636aaf3f319eb9b9791","templateCredsSetupCompleted":true},"name":"Save key RSS articles to Notion and notify users via Telegram","tags":[],"nodes":[{"id":"3b526441-b43c-479b-bb3d-a7554c753ea0","name":"Main Overview","type":"n8n-nodes-base.stickyNote","position":[-1584,736],"parameters":{"width":440,"height":919,"content":"## 📰 Save key RSS articles to Notion and notify users via Telegram\n\n**Automatically collect, analyze, and organize RSS feed articles using AI**\n\n### How it works\n\n1. **Collect**: Fetches articles from multiple RSS feeds (TechCrunch, Dev.to, The Verge)\n2. **Deduplicate**: Removes duplicate articles across feeds\n3. **Filter**: Checks against existing Notion database to avoid re-processing\n4. **Analyze**: Uses OpenAI to analyze content, extract insights, and assign priority scores\n5. **Save**: Stores high-priority articles (≥60 score) in Notion database\n6. **Notify**: Sends Telegram alerts for important articles\n7. **Cleanup**: Optionally archives articles older than 30 days\n\n### Setup\n\n1. **Connect RSS Feeds**: Modify RSS nodes with your preferred feeds\n2. **Configure Notion**: Set your Notion database ID in all Notion nodes\n3. **Add OpenAI Key**: Configure OpenAI credentials for AI analysis\n4. **Set Telegram Bot**: Add your Telegram chat ID for notifications\n5. **Schedule**: Replace Manual Trigger with Schedule Trigger for automation\n\n### Customization\n\n• Adjust priority threshold in Priority Filter node (default: ≥60)\n• Modify AI analysis prompt for different categorization\n• Change retention period in cleanup section (default: 30 days)\n• Add more RSS feeds by duplicating RSS nodes"},"typeVersion":1},{"id":"ac25fbbe-2180-42b1-a3c5-4338ce879d0a","name":"Section 1","type":"n8n-nodes-base.stickyNote","position":[-640,832],"parameters":{"color":7,"width":314,"height":720,"content":"## 1. Collect RSS Feeds\n\nFetches articles from configured RSS feeds in parallel"},"typeVersion":1},{"id":"4e5ba07c-d6eb-4e11-9039-bf083557ce38","name":"Section 2","type":"n8n-nodes-base.stickyNote","position":[-304,1040],"parameters":{"color":6,"width":394,"height":336,"content":"## 2. Process & Deduplicate\n\nMerges all feeds and removes duplicate articles based on URL/GUID"},"typeVersion":1},{"id":"0e4d8181-a7b9-48ca-a948-0c7c93244a8c","name":"Section 3","type":"n8n-nodes-base.stickyNote","position":[128,1040],"parameters":{"color":7,"width":442,"height":352,"content":"## 3. Filter New Content\n\nCompares against Notion database to find only new articles"},"typeVersion":1},{"id":"5c7737c1-b454-4af7-bad2-8896fe7b6746","name":"Warning AI","type":"n8n-nodes-base.stickyNote","position":[688,784],"parameters":{"color":3,"width":280,"height":237.6,"content":"## ⚠️ REQUIRED: OpenAI API Key\n\nAdd your OpenAI API credentials to this node before running the workflow"},"typeVersion":1},{"id":"d1886030-c6f2-495a-a0ef-8a7d662046d7","name":"Section 4","type":"n8n-nodes-base.stickyNote","position":[592,1040],"parameters":{"color":6,"width":474,"height":352,"content":"## 4. AI Analysis\n\nUses OpenAI to analyze content, extract summary, categorize, and assign priority scores"},"typeVersion":1},{"id":"1b658bf5-0899-4bbf-9245-a44d411d631a","name":"Section 5","type":"n8n-nodes-base.stickyNote","position":[1104,1040],"parameters":{"color":7,"width":778,"height":352,"content":"## 5. Save & Notify\n\nFilters high-priority articles, saves to Notion, and sends Telegram notifications"},"typeVersion":1},{"id":"89e3217f-f255-4653-bf6c-892cc6febb09","name":"Section 6 Optional","type":"n8n-nodes-base.stickyNote","position":[-640,1600],"parameters":{"color":6,"width":682,"height":320,"content":"## 6. Cleanup (Optional)\n\nAutomatically archives articles older than 30 days. Enable these nodes if desired."},"typeVersion":1},{"id":"6957834b-fe08-4f4c-8bff-882f690f9f9a","name":"Manual Trigger","type":"n8n-nodes-base.manualTrigger","position":[-1072,1504],"parameters":{},"typeVersion":1},{"id":"5390a8c7-0e10-4cb5-be32-9226d1637ad8","name":"RSS TechCrunch","type":"n8n-nodes-base.rssFeedRead","position":[-544,976],"parameters":{"url":"https://techcrunch.com/feed/","options":{"ignoreSSL":true}},"typeVersion":1.2},{"id":"89578d2f-9cfe-4d7d-b1ed-ec68cb23df71","name":"RSS Dev.to","type":"n8n-nodes-base.rssFeedRead","position":[-544,1184],"parameters":{"url":"https://dev.to/feed","options":{"ignoreSSL":true}},"typeVersion":1.2},{"id":"fc658ec5-df7d-4740-b6d5-d009f28dd5a4","name":"RSS The Verge","type":"n8n-nodes-base.rssFeedRead","position":[-544,1376],"parameters":{"url":"https://www.theverge.com/rss/index.xml","options":{"ignoreSSL":true}},"typeVersion":1.2},{"id":"b64390db-e13b-4f68-a609-f7785310c09c","name":"Remove Duplicates","type":"n8n-nodes-base.code","position":[-64,1184],"parameters":{"jsCode":"// Get all merged items from RSS feeds\nconst allItems = items;\n\n// Create a Set to track unique article URLs/GUIDs\nconst seenUrls = new Set();\nconst uniqueArticles = [];\n\n// Filter duplicates based on GUID or link\nfor (const item of allItems) {\n  const identifier = item.json.guid || item.json.link;\n  \n  if (!seenUrls.has(identifier)) {\n    seenUrls.add(identifier);\n    uniqueArticles.push(item);\n  }\n}\n\nconsole.log(`Total articles: ${allItems.length}`);\nconsole.log(`Unique articles: ${uniqueArticles.length}`);\nconsole.log(`Duplicates removed: ${allItems.length - uniqueArticles.length}`);\n\nreturn uniqueArticles;"},"typeVersion":2},{"id":"d26dcdce-d1ee-473b-83e9-6f4c37c34dc5","name":"Get Existing Articles","type":"n8n-nodes-base.notion","position":[192,1184],"parameters":{"options":{},"resource":"databasePage","operation":"getAll","returnAll":true,"databaseId":{"__rl":true,"mode":"list","value":"YOUR_NOTION_DATABASE_ID","cachedResultUrl":"https://www.notion.so/YOUR_NOTION_DATABASE_ID","cachedResultName":"Your Notion Database"}},"executeOnce":true,"typeVersion":2.2,"alwaysOutputData":true},{"id":"eafc68d5-630e-4e9f-8551-da1f11a4600c","name":"Filter New Articles","type":"n8n-nodes-base.code","position":[432,1184],"parameters":{"jsCode":"// Get existing Notion articles\nconst notionItems = $(\"Get Existing Articles\").all() || [];\n\nconsole.log('=== FILTER NEW ARTICLES DEBUG ===');\nconsole.log('Total items in Notion:', notionItems.length);\n\n// Extract existing URLs from Notion - try different possible locations\nconst existingUrls = [];\n\nfor (const item of notionItems) {\n  let url = null;\n  \n  // Try different possible URL locations in Notion response\n  if (item.json.properties?.URL?.url) {\n    url = item.json.properties.URL.url;\n  } else if (item.json.properties?.URL?.rich_text?.[0]?.plain_text) {\n    url = item.json.properties.URL.rich_text[0].plain_text;\n  } else if (item.json.property_url) {\n    url = item.json.property_url;\n  } else if (item.json.url) {\n    url = item.json.url;\n  }\n  \n  if (url) {\n    existingUrls.push(url);\n  }\n}\n\nconsole.log('URLs extracted from Notion:', existingUrls.length);\nconsole.log('First 3 URLs:', existingUrls.slice(0, 3));\n\n// Get all RSS articles\nconst allRssItems = $(\"Remove Duplicates\").all();\nconsole.log('Total unique RSS articles:', allRssItems.length);\n\n// Filter only new articles\nconst newArticles = allRssItems.filter(item => {\n  const articleUrl = item.json.guid || item.json.link;\n  const isNew = !existingUrls.includes(articleUrl);\n  \n  if (!isNew) {\n    console.log('DUPLICATE FOUND:', articleUrl);\n  }\n  \n  return isNew;\n});\n\nconsole.log('New articles found:', newArticles.length);\nconsole.log('Duplicates filtered:', allRssItems.length - newArticles.length);\n\nif (newArticles.length > 0) {\n  return newArticles;\n} else {\n  console.log('No new articles to process');\n  return [];\n}"},"typeVersion":2},{"id":"39667e4e-a7bf-4e26-b66b-de329943fd3d","name":"AI Content Analysis","type":"n8n-nodes-base.httpRequest","position":[672,1184],"parameters":{"url":"https://api.openai.com/v1/chat/completions","method":"POST","options":{},"jsonBody":"={{ {\n  \"model\": \"gpt-4o-mini\",\n  \"messages\": [\n    {\n      \"role\": \"system\",\n      \"content\": \"You are an expert content analyst. Analyze articles and return ONLY valid JSON with these fields: summary (max 3 sentences), category (Technology/AI/Business/DevOps/Other), tags (array of 3-5 keywords), sentiment (Positive/Neutral/Negative), priority_score (0-100 based on relevance and quality). Be concise and accurate.\"\n    },\n    {\n      \"role\": \"user\",\n      \"content\": \"Analyze this article:\\n\\nTitle: \" + $json.title.replace(/\"/g, \"'\").replace(/\\n/g, \" \") + \"\\n\\nContent: \" + ($json.contentSnippet || $json.description || \"\").substring(0, 500).replace(/\"/g, \"'\").replace(/\\n/g, \" \") + \"\\n\\nProvide analysis in JSON format.\"\n    }\n  ],\n  \"max_tokens\": 300,\n  \"temperature\": 0.3\n} }}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"bac96659-952a-431b-865f-23d4585c3555","name":"Parse AI Analysis","type":"n8n-nodes-base.code","position":[912,1184],"parameters":{"jsCode":"// Process ALL items from AI Content Analysis\nconst results = [];\n\nfor (let i = 0; i < items.length; i++) {\n  const aiResponse = items[i].json;\n  \n  // Parse AI response\n  let aiAnalysis;\n  try {\n    const content = aiResponse.choices[0].message.content;\n    \n    // Try to extract JSON from markdown code blocks if present\n    const jsonMatch = content.match(/```json\\s*([\\s\\S]*?)```/) || content.match(/({[\\s\\S]*})/);\n    const jsonStr = jsonMatch ? jsonMatch[1] : content;\n    \n    aiAnalysis = JSON.parse(jsonStr.trim());\n  } catch (error) {\n    console.error('Error parsing AI response for item', i, ':', error);\n    // Fallback values if parsing fails\n    aiAnalysis = {\n      summary: 'AI analysis failed',\n      category: 'Other',\n      tags: ['uncategorized'],\n      sentiment: 'Neutral',\n      priority_score: 50\n    };\n  }\n\n  // Get original article data from the same index in Filter New Articles\n  const filterNewArticles = $(\"Filter New Articles\").all();\n  const article = filterNewArticles[i].json;\n\n  // Combine all data\n  results.push({\n    json: {\n      title: article.title,\n      url: article.guid || article.link,\n      summary: aiAnalysis.summary,\n      category: aiAnalysis.category,\n      tags: Array.isArray(aiAnalysis.tags) ? aiAnalysis.tags.join(', ') : aiAnalysis.tags,\n      sentiment: aiAnalysis.sentiment,\n      priority_score: parseInt(aiAnalysis.priority_score) || 50,\n      source: article.creator || article['dc:creator'] || 'Unknown',\n      published_date: article.pubDate || article.isoDate || new Date().toISOString(),\n      original_content: article.contentSnippet || article.description || ''\n    }\n  });\n}\n\nconsole.log('Total items processed:', results.length);\nreturn results;"},"typeVersion":2},{"id":"acc6df03-dfb3-41bf-b94f-ea1ba13b9e35","name":"Priority Filter (≥60)","type":"n8n-nodes-base.if","position":[1152,1184],"parameters":{"conditions":{"number":[{"value1":"={{ $json.priority_score }}","value2":60,"operation":"largerEqual"}]}},"typeVersion":1},{"id":"61bbfc47-34f2-4511-96df-91d44b48f3f5","name":"Telegram Notification","type":"n8n-nodes-base.telegram","position":[1648,1168],"webhookId":"YOUR_TELEGRAM_WEBHOOK_ID","parameters":{"text":"=🔥 **High Priority Article**\n\n📰 **{{ $('Parse AI Analysis').item.json.title }}**\n\n📊 Priority: {{ $('Parse AI Analysis').item.json.priority_score }}/100\n📂 Category: {{ $('Parse AI Analysis').item.json.category }}\n😊 Sentiment: {{ $('Parse AI Analysis').item.json.sentiment }}\n🏷️ Tags: {{ $('Parse AI Analysis').item.json.tags }}\n\n📝 Summary:\n{{ $('Parse AI Analysis').item.json.summary }}\n\n🔗 [Read Article]({{ $('Parse AI Analysis').item.json.url }})","chatId":"YOUR_TELEGRAM_CHAT_ID","additionalFields":{"parse_mode":"Markdown"}},"typeVersion":1.2},{"id":"6e0989b7-abdd-4367-91e3-323d8ebff4d1","name":"Get Old Articles (>30 days)","type":"n8n-nodes-base.notion","notes":"OPTIONAL: Enable and add filter in Code node to archive old articles","position":[-592,1728],"parameters":{"options":{},"resource":"databasePage","operation":"getAll","returnAll":true,"databaseId":{"__rl":true,"mode":"list","value":"YOUR_NOTION_DATABASE_ID","cachedResultUrl":"https://www.notion.so/YOUR_NOTION_DATABASE_ID","cachedResultName":"Your Notion Database"}},"executeOnce":true,"typeVersion":2,"alwaysOutputData":true},{"id":"ecdd49ce-0af1-48e2-b144-7568d8816c4b","name":"Archive Old Articles","type":"n8n-nodes-base.notion","notes":"OPTIONAL: Enable along with Get Old Articles node for auto-cleanup","position":[-144,1728],"parameters":{"pageId":{"__rl":true,"mode":"id","value":"={{ $json.id }}"},"options":{},"resource":"databasePage","operation":"update","propertiesUi":{"propertyValues":[{"key":"Status|select","selectValue":"Archived"}]}},"typeVersion":2},{"id":"3f9cd696-8aea-4530-8ba7-8d8e8ec9c3af","name":"Merge","type":"n8n-nodes-base.merge","position":[-256,1168],"parameters":{"numberInputs":3},"typeVersion":3.2},{"id":"02cde6a5-696c-45e3-be2b-8f27e6b35295","name":"Save to Notion","type":"n8n-nodes-base.notion","position":[1424,1168],"parameters":{"simple":false,"options":{},"resource":"databasePage","databaseId":{"__rl":true,"mode":"list","value":"YOUR_NOTION_DATABASE_ID","cachedResultUrl":"https://www.notion.so/YOUR_NOTION_DATABASE_ID","cachedResultName":"Your Notion Database"},"propertiesUi":{"propertyValues":[{"key":"Title|rich_text","textContent":"={{ $('Parse AI Analysis').item.json.title }}"},{"key":"URL|url","urlValue":"={{ $('Parse AI Analysis').item.json.url }}"},{"key":"Summary|rich_text","textContent":"={{ $('Parse AI Analysis').item.json.summary }}"},{"key":"Category|select","selectValue":"={{ $('Parse AI Analysis').item.json.category }}"},{"key":"Tags|rich_text","textContent":"={{ $('Parse AI Analysis').item.json.tags }}"},{"key":"Sentiment|select","selectValue":"={{ $json.sentiment }}"},{"key":"Priority|number","numberValue":"={{ $json.priority_score }}"},{"key":"Source|rich_text","textContent":"={{ $json.source }}"},{"key":"Published|date","date":"={{ $json.published_date }}","includeTime":false},{"key":"Added Date|date","date":"={{ $now }}"},{"key":"Status|select","selectValue":"New"}]}},"typeVersion":2.2},{"id":"aadd4d51-68ff-4034-a9ce-cafeb971eeab","name":"Filter by Date (>30 days)","type":"n8n-nodes-base.code","position":[-384,1728],"parameters":{"jsCode":"const allArticles = $input.all();\n\n// Calculate date 30 days ago\nconst thirtyDaysAgo = new Date();\nthirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);\n\n// Filter articles older than 30 days\nconst oldArticles = allArticles.filter(item => {\n  const dateString = item.json.property_added_date?.start;\n  \n  if (!dateString) {\n    return false;\n  }\n  \n  const articleDate = new Date(dateString);\n  return articleDate < thirtyDaysAgo;\n});\n\nif (oldArticles.length > 0) {\n  return oldArticles;\n} else {\n  return [];\n}"},"typeVersion":2}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"e2ead020-6e26-4b4b-94e5-4d3b0df0035a","connections":{"Merge":{"main":[[{"node":"Remove Duplicates","type":"main","index":0}]]},"RSS Dev.to":{"main":[[{"node":"Merge","type":"main","index":1}]]},"RSS The Verge":{"main":[[{"node":"Merge","type":"main","index":2}]]},"Manual Trigger":{"main":[[{"node":"RSS TechCrunch","type":"main","index":0},{"node":"RSS Dev.to","type":"main","index":0},{"node":"RSS The Verge","type":"main","index":0},{"node":"Get Old Articles (>30 days)","type":"main","index":0}]]},"RSS TechCrunch":{"main":[[{"node":"Merge","type":"main","index":0}]]},"Save to Notion":{"main":[[{"node":"Telegram Notification","type":"main","index":0}]]},"Parse AI Analysis":{"main":[[{"node":"Priority Filter (≥60)","type":"main","index":0}]]},"Remove Duplicates":{"main":[[{"node":"Get Existing Articles","type":"main","index":0}]]},"AI Content Analysis":{"main":[[{"node":"Parse AI Analysis","type":"main","index":0}]]},"Filter New Articles":{"main":[[{"node":"AI Content Analysis","type":"main","index":0}]]},"Get Existing Articles":{"main":[[{"node":"Filter New Articles","type":"main","index":0}]]},"Priority Filter (≥60)":{"main":[[{"node":"Save to Notion","type":"main","index":0}]]},"Filter by Date (>30 days)":{"main":[[{"node":"Archive Old Articles","type":"main","index":0}]]},"Get Old Articles (>30 days)":{"main":[[{"node":"Filter by Date (>30 days)","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":24,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.code":{"count":4},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.notion":{"count":4},"n8n-nodes-base.telegram":{"count":1},"n8n-nodes-base.stickyNote":{"count":8},"n8n-nodes-base.httpRequest":{"count":1},"n8n-nodes-base.rssFeedRead":{"count":3},"n8n-nodes-base.manualTrigger":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Prueba","username":"prueba","bio":"Automation consultant with 2 years of experience. Use \"Custom Link\" to contact us","verified":true,"links":["echandoaperderme2@gmail.com"],"avatar":"https://gravatar.com/avatar/757c4f6ef758ab42f4dfaedda54d2b50022c8197dd6a0c48534f207a896be0fa?r=pg&d=retro&size=200"},"nodes":[{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":37,"icon":"fa:rss","name":"n8n-nodes-base.rssFeedRead","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/why-i-chose-n8n-over-zapier-in-2020/","icon":"😍","label":"Why I chose n8n over Zapier in 2020"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.rssfeedread/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"RSS Read","color":"#b02020"},"iconData":{"icon":"rss","type":"icon"},"displayName":"RSS Read","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":49,"icon":"file:telegram.svg","name":"n8n-nodes-base.telegram","codex":{"data":{"alias":["human","form","wait","hitl","approval"],"resources":{"generic":[{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/","icon":"💪","label":"Using Automation to Boost Productivity in the Workplace"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/creating-telegram-bots-with-n8n-a-no-code-platform/","icon":"💬","label":"Creating Telegram Bots with n8n, a No-Code Platform"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.telegram/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/telegram/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Telegram"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Telegram","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":487,"icon":"file:notion.svg","name":"n8n-nodes-base.notion","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.notion/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/notion/"}]},"categories":["Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"output\"]","defaults":{"name":"Notion"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjU4Mjc2IDYuOTc2NzlDOC44MjA0NyA3Ljk4MjM4IDkuMjg0NzkgNy45MDU2NiAxMS42MDkxIDcuNzUwNTdMMzMuNTIwNiA2LjQzNDg4QzMzLjk4NTMgNi40MzQ4OCAzMy41OTg5IDUuOTcxMjcgMzMuNDQzOSA1Ljg5NDIzTDI5LjgwNDkgMy4yNjM0OEMyOS4xMDc2IDIuNzIyMTMgMjguMTc4NiAyLjEwMjE3IDI2LjM5ODIgMi4yNTcyNkw1LjE4MTE1IDMuODA0NzZDNC40MDczNiAzLjg4MTQ4IDQuMjUyODIgNC4yNjgzNyA0LjU2MDk2IDQuNTc4NDdMNy41ODI3NiA2Ljk3Njc5Wk04Ljg5ODI5IDEyLjA4MzNWMzUuMTM4MUM4Ljg5ODI5IDM2LjM3NzEgOS41MTc0NiAzNi44NDA3IDEwLjkxMSAzNi43NjRMMzQuOTkxOSAzNS4zNzA2QzM2LjM4NjIgMzUuMjkzOSAzNi41NDE1IDM0LjQ0MTcgMzYuNTQxNSAzMy40MzUyVjEwLjUzNTFDMzYuNTQxNSA5LjUzMDE5IDM2LjE1NDkgOC45ODgyOSAzNS4zMDE0IDkuMDY1NjRMMTAuMTM2NyAxMC41MzUxQzkuMjA3OTkgMTAuNjEzMSA4Ljg5ODIxIDExLjA3NzcgOC44OTgyMSAxMi4wODMzSDguODk4MjlaTTMyLjY3MDggMTMuMzJDMzIuODI1MiAxNC4wMTcgMzIuNjcwOCAxNC43MTMzIDMxLjk3MjUgMTQuNzkxN0wzMC44MTIzIDE1LjAyMjlWMzIuMDQzNEMyOS44MDQ5IDMyLjU4NDggMjguODc1OSAzMi44OTQ0IDI4LjEwMTggMzIuODk0NEMyNi44NjI1IDMyLjg5NDQgMjYuNTUyMSAzMi41MDcyIDI1LjYyMzcgMzEuMzQ3NEwxOC4wMzQzIDE5LjQzMjlWMzAuOTYwNUwyMC40MzU5IDMxLjUwMjRDMjAuNDM1OSAzMS41MDI0IDIwLjQzNTkgMzIuODk0NCAxOC40OTgzIDMyLjg5NDRMMTMuMTU2OCAzMy4yMDQyQzEzLjAwMTYgMzIuODk0NCAxMy4xNTY4IDMyLjEyMTQgMTMuNjk4NiAzMS45NjY1TDE1LjA5MjUgMzEuNTgwMlYxNi4zMzg1TDEzLjE1NzIgMTYuMTgzNEMxMy4wMDE5IDE1LjQ4NjQgMTMuMzg4NSAxNC40ODE0IDE0LjQ3MzMgMTQuNDAzNUwyMC4yMDM1IDE0LjAxNzJMMjguMTAxOCAyNi4wODY4VjE1LjQwOTdMMjYuMDg4MSAxNS4xNzg2QzI1LjkzMzUgMTQuMzI2NSAyNi41NTIxIDEzLjcwNzggMjcuMzI2NSAxMy42MzExTDMyLjY3MDggMTMuMzJaTTMuMzk5NzMgMS43MTU5OEwyNS40Njg4IDAuMDkwNzQ1N0MyOC4xNzkgLTAuMTQxNjg4IDI4Ljg3NjMgMC4wMTQwMjQ1IDMwLjU3OTYgMS4yNTEzNUwzNy42MjQzIDYuMjAyNzZDMzguNzg2NyA3LjA1NDIxIDM5LjE3NDIgNy4yODYwMiAzOS4xNzQyIDguMjE0MTlWMzUuMzcwNkMzOS4xNzQyIDM3LjA3MjYgMzguNTU0MiAzOC4wNzkxIDM2LjM4NjUgMzguMjMzMUwxMC43NTc3IDM5Ljc4MDdDOS4xMzA0OSAzOS44NTgzIDguMzU2MDcgMzkuNjI2NCA3LjUwMzkyIDM4LjU0MjZMMi4zMTYwOCAzMS44MTE3QzEuMzg2NTggMzAuNTcyNiAxIDI5LjY0NTcgMSAyOC41NjEzVjQuNDIyODNDMSAzLjAzMTA1IDEuNjIwMTkgMS44NzAwNSAzLjM5OTczIDEuNzE1OThWMS43MTU5OFoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo="},"displayName":"Notion","typeVersion":2,"nodeCategories":[{"id":4,"name":"Productivity"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":838,"icon":"fa:mouse-pointer","name":"n8n-nodes-base.manualTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"When clicking ‘Execute workflow’","color":"#909298"},"iconData":{"icon":"mouse-pointer","type":"icon"},"displayName":"Manual Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":32,"name":"Market Research"},{"id":49,"name":"AI Summarization"}],"image":[]}}