This workflow corresponds to n8n.io template #workshop-ai-newsletter — we link there as the canonical source.
This workflow follows the Chainllm → Gmail 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 →
{
"meta": {
"templateId": "workshop-ai-newsletter"
},
"nodes": [
{
"parameters": {},
"id": "trigger-node-1",
"name": "Manual Trigger",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
100,
300
]
},
{
"parameters": {
"url": "[https://feeds.bbci.co.uk/news/technology/rss.xml](https://feeds.bbci.co.uk/news/technology/rss.xml)"
},
"id": "bbc-rss",
"name": "BBC Tech RSS",
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1,
"position": [
300,
100
]
},
{
"parameters": {
"url": "[https://techcrunch.com/feed/](https://techcrunch.com/feed/)"
},
"id": "tc-rss",
"name": "TechCrunch RSS",
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1,
"position": [
300,
300
]
},
{
"parameters": {
"url": "[https://www.wired.com/feed/rss](https://www.wired.com/feed/rss)"
},
"id": "wired-rss",
"name": "Wired RSS",
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1,
"position": [
300,
500
]
},
{
"parameters": {
"operation": "limit",
"maxItems": 5
},
"id": "limit-bbc",
"name": "Limit BBC",
"type": "n8n-nodes-base.itemLists",
"typeVersion": 3,
"position": [
500,
100
]
},
{
"parameters": {
"operation": "limit",
"maxItems": 5
},
"id": "limit-tc",
"name": "Limit TC",
"type": "n8n-nodes-base.itemLists",
"typeVersion": 3,
"position": [
500,
300
]
},
{
"parameters": {
"operation": "limit",
"maxItems": 5
},
"id": "limit-wired",
"name": "Limit Wired",
"type": "n8n-nodes-base.itemLists",
"typeVersion": 3,
"position": [
500,
500
]
},
{
"parameters": {
"mode": "append"
},
"id": "merge-1",
"name": "Merge 1",
"type": "n8n-nodes-base.merge",
"typeVersion": 2.1,
"position": [
720,
200
]
},
{
"parameters": {
"mode": "append"
},
"id": "merge-2",
"name": "Merge 2",
"type": "n8n-nodes-base.merge",
"typeVersion": 2.1,
"position": [
940,
300
]
},
{
"parameters": {
"jsCode": "const all_news = $input.all().map(item => ({\n title: item.json.title,\n link: item.json.link,\n contentSnippet: item.json.contentSnippet\n}));\n\nreturn [{ json: { all_news } }];"
},
"id": "aggregate-code",
"name": "Verileri Tek Pakete Topla",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1160,
300
]
},
{
"parameters": {
"promptType": "define",
"text": "=Sen profesyonel bir teknoloji b\u00fclteni edit\u00f6r\u00fcs\u00fcn. A\u015fa\u011f\u0131da sana bir JSON listesi halinde 15 adet g\u00fcncel teknoloji haberi veriyorum.\n\nHer bir haber i\u00e7in:\n- En fazla 2 veya 3 c\u00fcmlelik ak\u0131c\u0131 ve merak uyand\u0131ran bir T\u00fcrk\u00e7e \u00f6zet yaz.\n- Haberin orijinal ba\u015fl\u0131\u011f\u0131n\u0131, linkini ve yazd\u0131\u011f\u0131n \u00f6zeti kullanarak a\u015fa\u011f\u0131daki HTML format\u0131nda bir \u00e7\u0131kt\u0131 \u00fcret:\n<li style=\"margin-bottom: 15px;\">\n <strong>[Haber Ba\u015fl\u0131\u011f\u0131]</strong><br>\n <em>[Yazd\u0131\u011f\u0131n \u00d6zet]</em><br>\n <a href=\"[Link]\">Habere git →</a>\n</li>\n\nSadece bu 15 adet <li> eleman\u0131n\u0131 alt alta \u00fcret. Ba\u015fka hi\u00e7bir giri\u015f, \u00e7\u0131k\u0131\u015f c\u00fcmlesi veya markdown etiketi ekleme.\n\n\u0130\u015fte Haberler:\n{{ JSON.stringify($json.all_news) }}"
},
"id": "ai-editor",
"name": "AI Editor",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.4,
"position": [
1380,
300
]
},
{
"parameters": {
"modelName": "models/gemini-1.5-flash"
},
"id": "gemini-model",
"name": "Google Gemini Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"typeVersion": 1,
"position": [
1380,
500
],
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"sendTo": "kendi_email_adresini_yaz@gmail.com",
"subject": "Haftal\u0131k AI Destekli Teknoloji B\u00fclteniniz",
"emailType": "html",
"message": "=<h1>G\u00fcn\u00fcn Teknoloji \u00d6zeti</h1>\n<p>Merhaba, i\u015fte bug\u00fcn \u00f6ne \u00e7\u0131kan teknoloji haberlerinin Gemini AI taraf\u0131ndan haz\u0131rlanan \u00f6zetleri:</p>\n<ul>\n{{ $json.text }}\n</ul>\n<p>Bu b\u00fclten n8n ve Google Gemini taraf\u0131ndan otomatik olarak olu\u015fturulmu\u015ftur.</p>",
"options": {
"appendAttribution": false
}
},
"id": "gmail-final",
"name": "Gmail ile Gonder",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
1640,
300
],
"credentials": {
"googleGmailOAuth2Api": {
"name": "<your credential>"
}
}
}
],
"connections": {
"Manual Trigger": {
"main": [
[
{
"node": "BBC Tech RSS",
"type": "main",
"index": 0
},
{
"node": "TechCrunch RSS",
"type": "main",
"index": 0
},
{
"node": "Wired RSS",
"type": "main",
"index": 0
}
]
]
},
"BBC Tech RSS": {
"main": [
[
{
"node": "Limit BBC",
"type": "main",
"index": 0
}
]
]
},
"TechCrunch RSS": {
"main": [
[
{
"node": "Limit TC",
"type": "main",
"index": 0
}
]
]
},
"Wired RSS": {
"main": [
[
{
"node": "Limit Wired",
"type": "main",
"index": 0
}
]
]
},
"Limit BBC": {
"main": [
[
{
"node": "Merge 1",
"type": "main",
"index": 0
}
]
]
},
"Limit TC": {
"main": [
[
{
"node": "Merge 1",
"type": "main",
"index": 1
}
]
]
},
"Limit Wired": {
"main": [
[
{
"node": "Merge 2",
"type": "main",
"index": 1
}
]
]
},
"Merge 1": {
"main": [
[
{
"node": "Merge 2",
"type": "main",
"index": 0
}
]
]
},
"Merge 2": {
"main": [
[
{
"node": "Verileri Tek Pakete Topla",
"type": "main",
"index": 0
}
]
]
},
"Verileri Tek Pakete Topla": {
"main": [
[
{
"node": "AI Editor",
"type": "main",
"index": 0
}
]
]
},
"AI Editor": {
"main": [
[
{
"node": "Gmail ile Gonder",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Model": {
"ai_languageModel": [
[
{
"node": "AI Editor",
"type": "ai_languageModel",
"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.
googleGmailOAuth2ApigooglePalmApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Gemini-Code-1778279874058. Uses rssFeedRead, itemLists, chainLlm, lmChatGoogleGemini. Event-driven trigger; 13 nodes.
Source: https://gist.github.com/tekincelilcan/554b3eb162db764f636d9c4dca79e745 — 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.
This workflow provides an intelligent automation solution for processing RSS feeds using ScrapeGraph API and delivering personalized news summaries via email and Telegram.
My workflow 14. Uses lmChatOpenAi, outputParserStructured, rssFeedRead, httpRequest. Event-driven trigger; 63 nodes.
🤖🧑💻 AI Agent for Top n8n Creators Leaderboard Reporting. Uses httpRequest, lmChatOpenAi, executeWorkflowTrigger, toolWorkflow. Event-driven trigger; 49 nodes.
🤖🧑💻 AI Agent for Top n8n Creators Leaderboard Reporting. Uses httpRequest, lmChatOpenAi, executeWorkflowTrigger, toolWorkflow. Event-driven trigger; 49 nodes.
This n8n workflow is designed to automate the aggregation, processing, and reporting of community statistics related to n8n creators and workflows. Its primary purpose is to generate insightful report