AutomationFlowsEmail & Gmail › Awesome N8N Templates

Awesome N8N Templates

Awesome N8N Templates. Uses scheduleTrigger, splitOut, rssFeedRead, openAi. Scheduled trigger; 11 nodes.

Cron / scheduled trigger★★★★☆ complexityAI-powered11 nodesRss Feed ReadOpen AiGmail
Email & Gmail Trigger: Cron / scheduled Nodes: 11 Complexity: ★★★★☆ AI nodes: yes

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 →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "69394736-5c78-420e-9f03-ac18501cb377",
      "name": "Daily Newsletter Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "notes": "\u23f0 Triggers daily at 8 AM UTC\n\nCustomize:\n- Change triggerAtHour (0-23)\n- Add timezone settings\n- Set weekday-only schedule",
      "position": [
        624,
        1040
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 8
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1ee57ce6-d7aa-49d5-bac7-814bde5b0a65",
      "name": "Configure RSS Sources",
      "type": "n8n-nodes-base.set",
      "notes": "\ud83d\udce1 Premium tech news RSS feeds\n\nSources:\n\u2022 TechCrunch AI\n\u2022 The Verge AI\n\u2022 MIT Tech Review\n\u2022 Wired AI\n\u2022 VentureBeat\n\u2022 ZDNet\n\u2022 Towards Data Science\n\u2022 NY Times Tech\n\u2022 Guardian Tech\n\u2022 BBC Tech",
      "position": [
        864,
        1040
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "53097a16-a525-4c89-828e-a36c5e0c3742",
              "name": "urls",
              "type": "array",
              "value": "[\n  \"https://techcrunch.com/tag/artificial-intelligence/feed/\",\n  \"https://www.theverge.com/artificial-intelligence/rss/index.xml\",\n  \"https://www.technologyreview.com/feed/\",\n  \"https://www.wired.com/feed/category/science/artificial-intelligence/latest/rss\",\n  \"https://venturebeat.com/category/ai/feed/\",\n  \"https://www.zdnet.com/topic/artificial-intelligence/rss.xml\",\n  \"https://towardsdatascience.com/feed\",\n  \"https://rss.nytimes.com/services/xml/rss/nyt/Technology.xml\",\n  \"https://www.theguardian.com/uk/technology/rss\",\n  \"https://feeds.bbci.co.uk/news/technology/rss.xml\"\n]"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "6477cbf0-790d-41ce-8b45-a273e03c9247",
      "name": "Split RSS URLs",
      "type": "n8n-nodes-base.splitOut",
      "notes": "\ud83d\udd04 Splits URL array for parallel processing\n\nCreates individual execution paths\nfor each RSS feed URL",
      "position": [
        1088,
        1040
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "urls"
      },
      "typeVersion": 1
    },
    {
      "id": "37cfed68-0740-4e77-a1ab-827f8f1eec28",
      "name": "Fetch RSS Articles",
      "type": "n8n-nodes-base.rssFeedRead",
      "notes": "\ud83d\udcf0 Fetches articles from RSS feeds\n\nExtracts:\n\u2022 Title\n\u2022 Content snippet\n\u2022 Article URL\n\u2022 Publication date\n\nContinues on errors to prevent\nsingle feed failures",
      "onError": "continueErrorOutput",
      "position": [
        1296,
        1040
      ],
      "parameters": {
        "url": "={{ $json.urls }}",
        "options": {}
      },
      "retryOnFail": false,
      "typeVersion": 1.2
    },
    {
      "id": "d7f56edb-cd31-4a53-b390-e910b7c50ce8",
      "name": "Filter Articles",
      "type": "n8n-nodes-base.code",
      "notes": "\u2696\ufe0f Balances article sources\n\n\u2022 Max 5 articles per domain\n\u2022 Prevents single-source domination\n\u2022 Ensures diverse coverage\n\u2022 Groups by domain, then flattens",
      "position": [
        1504,
        1040
      ],
      "parameters": {
        "jsCode": "// Limit articles per domain for balanced coverage\nconst input = $input.all();\nconst grouped = {};\n\nfor (const item of input) {\n  const link = item.json.link;\n  const domainMatch = link.match(/\\/\\/([^\\/]+)/);\n  const domain = domainMatch ? domainMatch[1].replace(/^www\\./, '') : 'unknown';\n\n  if (!grouped[domain]) grouped[domain] = [];\n  if (grouped[domain].length < 5) {\n    grouped[domain].push(item.json);\n  }\n}\n\n// Flatten results\nconst result = [];\nfor (const domain in grouped) {\n  result.push(...grouped[domain]);\n}\n\nreturn result.map(i => ({ json: i }));"
      },
      "typeVersion": 2
    },
    {
      "id": "14562212-87cc-4321-8277-bd8519c1adcf",
      "name": "Clean Data",
      "type": "n8n-nodes-base.set",
      "notes": "\ud83e\uddf9 Standardizes article structure\n\nMaps to clean format:\n\u2022 title \u2192 headline\n\u2022 content \u2192 summary\n\u2022 link \u2192 article URL\n\u2022 pubDate \u2192 timestamp",
      "position": [
        1712,
        1040
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "568b89e0-be16-4977-8c2a-882563174c9b",
              "name": "title",
              "type": "string",
              "value": "={{ $json.title }}"
            },
            {
              "id": "dfbf5a07-d66a-434e-8208-5a14946193de",
              "name": "content",
              "type": "string",
              "value": "={{ $json.contentSnippet }}"
            },
            {
              "id": "b3f87e87-2f95-4d84-a03d-f44f3f206db4",
              "name": "link",
              "type": "string",
              "value": "={{ $json.link }}"
            },
            {
              "id": "74e93f7a-908b-486c-bb2f-02e4f5ff204c",
              "name": "pubDate",
              "type": "string",
              "value": "={{ $json.pubDate }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "6769221a-1d99-4c17-9828-46ee92be5926",
      "name": "Combine Articles",
      "type": "n8n-nodes-base.aggregate",
      "notes": "\ud83d\udcca Aggregates all articles\n\nCombines filtered articles from\nall sources into single dataset\nfor AI processing",
      "position": [
        1920,
        1040
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "6c430d53-cbd3-4881-b86b-48707c9e32a5",
      "name": "AI Newsletter Creator",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "notes": "\ud83e\udd16 AI-powered article curation\n\nAnalyzes all articles and:\n\u2022 Selects top 10 most relevant\n\u2022 Creates HTML newsletter\n\u2022 Provides article summaries\n\u2022 Focuses on trending topics\n\nRequires: OpenAI API key",
      "position": [
        2176,
        1040
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "You are an AI Tech News Curator. Analyze the provided articles and create an HTML newsletter with the top 10 most relevant AI/tech articles.\n\nFormat as clean HTML starting with <!DOCTYPE html>\nInclude: article title, brief summary, and link for each article.\nFocus on trending AI, machine learning, and technology topics.\n\nArticles data: {{ JSON.stringify($json.data) }}"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fb8881bc-7831-43f8-97f7-4a604a4a9806",
      "name": "Send Newsletter",
      "type": "n8n-nodes-base.gmail",
      "notes": "\ud83d\udce7 Sends HTML newsletter via Gmail\n\nSetup:\n1. Enable Gmail API\n2. Create OAuth2 credentials\n3. Update recipient email\n\nFeatures:\n\u2022 HTML email format\n\u2022 Dynamic date in subject\n\u2022 Professional newsletter style",
      "position": [
        2528,
        1040
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "={{ $json.message.content }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "=Daily AI Tech Digest - {{ $now.toFormat('EEEE, MMMM d, yyyy') }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "b43da764-1c99-4cdd-8b9c-338753c68826",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -208,
        384
      ],
      "parameters": {
        "color": 5,
        "width": 736,
        "height": 1136,
        "content": "# AI Tech News Aggregator & Newsletter\n\n### \ud83c\udfaf Key Features\n- **Premium Sources** - Curates from 14 top-tier tech publications\n- **AI Quality Control** - Intelligent article selection and summarization\n- **Balanced Coverage** - Prevents source bias with smart filtering\n- **Professional Format** - Clean HTML newsletter design\n- **Scheduled Automation** - Daily delivery at customizable times\n- **Error Resilience** - Continues processing even if some feeds fail\n\n## Setup Steps\n\n### \u2699\ufe0f Workflow Configuration\n1. **Import the workflow** into your n8n instance\n2. **Update node configurations**:\n   - **Google Vertex AI Model**: Set your Google Cloud Project ID\n   - **Send Newsletter Email**: Update recipient email address\n   - **Daily Newsletter Trigger**: Adjust schedule time if needed\n3. **Verify credentials** are properly connected to respective nodes\n\n### \ud83d\udcf0 RSS Sources Customization (Optional)\nThe workflow includes 14 premium tech news sources:\n- TechCrunch (AI & Startups)\n- The Verge (AI section)\n- MIT Technology Review\n- Wired (AI/Science)\n- VentureBeat (AI)\n- ZDNet (AI topics)\n- AI Trends\n- Nature (Machine Learning)\n- Towards Data Science\n- NY Times Technology\n- The Guardian Technology\n- BBC Technology\n- Nikkei Asia Technology\n\n**To customize sources:**\n- Edit the \"Configure RSS Sources\" node\n- Add/remove RSS feed URLs as needed\n- Ensure feeds are active and properly formatted\n\n### \ud83d\ude80 Testing & Deployment\n1. **Manual Test**: Execute the workflow manually to verify setup\n2. **Check Email**: Confirm newsletter arrives with proper formatting\n3. **Verify AI Output**: Ensure articles are relevant and well-summarized\n4. **Schedule Activation**: Enable the daily trigger for automated operation\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c96013fe-cde1-4ef2-b833-683fb6269d67",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        400
      ],
      "parameters": {
        "color": 3,
        "width": 2192,
        "height": 848,
        "content": "## Workflow\n\n### \ud83d\udca1 Customization Options\n\n**Newsletter Timing:**\n- Default: 8:00 AM UTC daily\n- Modify \"triggerAtHour\" in the Schedule Trigger node\n- Add multiple daily sends if desired\n\n**Content Focus:**\n- Adjust the AI prompt in \"AI Tech News Curator\" node\n- Specify different topics (e.g., focus on startups, enterprise AI, etc.)\n- Change output language or format\n\n**Email Recipients:**\n- Update single recipient in Gmail node\n- Or modify to send to multiple addresses\n- Integrate with mailing list services\n\n**Article Limits:**\n- Current: Max 5 articles per source\n- Modify the filtering logic in \"Filter & Balance Articles\" node\n- Adjust total article count in AI prompt\n"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Clean Data": {
      "main": [
        [
          {
            "node": "Combine Articles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split RSS URLs": {
      "main": [
        [
          {
            "node": "Fetch RSS Articles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Articles": {
      "main": [
        [
          {
            "node": "Clean Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine Articles": {
      "main": [
        [
          {
            "node": "AI Newsletter Creator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch RSS Articles": {
      "main": [
        [
          {
            "node": "Filter Articles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Newsletter Creator": {
      "main": [
        [
          {
            "node": "Send Newsletter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Configure RSS Sources": {
      "main": [
        [
          {
            "node": "Split RSS URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily Newsletter Trigger": {
      "main": [
        [
          {
            "node": "Configure RSS Sources",
            "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.

About this workflow

Awesome N8N Templates. Uses scheduleTrigger, splitOut, rssFeedRead, openAi. Scheduled trigger; 11 nodes.

Source: https://github.com/ScraperNode/awesome-n8n-templates/blob/main/templates/ai-and-llm/7874-daily-tech-news-curation-with-rss-gpt-4o-mini-and-gmail-delivery/workflow.json — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →