This workflow corresponds to n8n.io template #6223 — we link there as the canonical source.
This workflow follows the Gmail → HTTP Request 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 →
{
"id": "a45d1jkHh90Cr2bF",
"name": "Scheduled RSS News Digest Emails with Gmail",
"tags": [],
"nodes": [
{
"id": "544b4167-737b-4f3f-9866-457712b93b8b",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-280,
320
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "24f4a95c-3009-46c5-adea-f91231dc817e",
"name": "Send a message",
"type": "n8n-nodes-base.gmail",
"position": [
600,
320
],
"parameters": {
"message": "=<!DOCTYPE html>\n<html lang=\"en\" >\n<head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <title>News Digest</title>\n <style>\n /* Reset */\n body, table, td, a {\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n }\n table, td {\n mso-table-lspace: 0pt;\n mso-table-rspace: 0pt;\n }\n img {\n -ms-interpolation-mode: bicubic;\n }\n body {\n margin: 0;\n padding: 0;\n font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif;\n background-color: #ffffff;\n color: #333333;\n }\n .email-container {\n max-width: 600px;\n margin: 0 auto;\n background: #ffffff;\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n border: 1px solid #cc0000;\n }\n .header {\n background-color: #cc0000; /* Bold red */\n color: #ffffff;\n padding: 20px 30px;\n text-align: center;\n font-size: 24px;\n font-weight: bold;\n }\n .content {\n padding: 20px 30px;\n }\n .article {\n border-bottom: 1px solid #f0f0f0;\n padding: 15px 0;\n }\n .article:last-child {\n border-bottom: none;\n }\n .title {\n font-size: 18px;\n font-weight: 600;\n color: #cc0000;\n margin: 0 0 8px 0;\n text-decoration: none;\n }\n .summary {\n font-size: 14px;\n color: #555555;\n margin: 0 0 8px 0;\n }\n .meta {\n font-size: 12px;\n color: #999999;\n }\n .footer {\n text-align: center;\n padding: 15px 30px;\n font-size: 12px;\n color: #cc0000;\n background-color: #fef0f0;\n border-top: 1px solid #cc0000;\n }\n a.button {\n display: inline-block;\n background-color: #cc0000;\n color: white !important;\n padding: 10px 15px;\n border-radius: 4px;\n text-decoration: none;\n font-weight: 600;\n margin-top: 10px;\n }\n a.button:hover {\n background-color: #990000;\n }\n a {\n color: #cc0000;\n text-decoration: none;\n }\n a:hover {\n text-decoration: underline;\n }\n @media screen and (max-width: 620px) {\n .email-container {\n width: 100% !important;\n margin: 0 auto !important;\n border-radius: 0 !important;\n }\n .header, .content, .footer {\n padding-left: 15px !important;\n padding-right: 15px !important;\n }\n .title {\n font-size: 16px !important;\n }\n }\n </style>\n</head>\n<body>\n <div class=\"email-container\" role=\"article\" aria-roledescription=\"email\" aria-label=\"News Digest\">\n <div class=\"header\">\n News RSS Feed\n </div>\n <div class=\"content\">\n <!-- Repeat this block for each article -->\n\n{{ $json.html }}\n\n\n <!-- End article block -->\n \n <!-- Add more article blocks dynamically here -->\n \n </div>\n </div>\n</body>\n</html>\n",
"options": {},
"subject": "News Digest From RSS"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "391ef1b4-63cc-4bb2-9565-f3a967d170f9",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-140,
-80
],
"parameters": {
"width": 680,
"height": 560,
"content": "Scheduled RSS News Digest Automation Workflow\n\n**Steps**\n- Schedule Trigger: Runs on a set interval.\n- HTTP Request: Fetches RSS feed from example: \"prothomalo.com\" (You can choose yours).\n- XML Node: Parses RSS XML to JSON.\n- Format Html Block (Code): Builds styled HTML email with today's date and articles (title, summary, published date, author, category, read more link).\n- Send a message (Gmail): Sends the email to using Gmail OAuth2.\n- Sticky Note: For internal comments.\n\nFlow: Schedule Trigger \u2192 HTTP Request \u2192 XML \u2192 Format Html Block \u2192 Send a message\n\nDesigned for automatic periodic news digest emails with responsive styling.\n"
},
"typeVersion": 1
},
{
"id": "7cdede22-e5e0-41fa-8b69-78d1f4cae16f",
"name": "Convert XML to JSON",
"type": "n8n-nodes-base.xml",
"position": [
160,
320
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "05704dc2-46be-4e29-9102-4c13dc4df7a1",
"name": "Generate HTML News Preview",
"type": "n8n-nodes-base.code",
"position": [
380,
320
],
"parameters": {
"jsCode": "const entries = $input.first().json.feed.entry || [];\n\nlet html = `\n <div style=\"max-width:600px;margin:0 auto;background:#fff;padding:20px;font-family:Arial,sans-serif;color:#333;\">\n <h2 style=\"text-align:center;color:#cc0000;\">${new Date().toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' })}</h2>\n`;\n\nfor (const entry of entries) {\n const title = entry.title || 'No Title';\n const link = entry.link?.href || '#';\n const published = entry.published ? new Date(entry.published).toLocaleDateString('bn-BD', { year: 'numeric', month: 'long', day: 'numeric' }) : '';\n const author = entry.author?.name || '';\n const summary = entry.summary || '';\n const category = entry.category?.term || '';\n\n html += `\n <div style=\"border-bottom:1px solid #eee;padding:15px 0;\">\n <a href=\"${link}\" target=\"_blank\" style=\"color:#cc0000;font-size:18px;font-weight:bold;text-decoration:none;\">${title}</a>\n <p style=\"color:#555;margin:8px 0;\">${summary}</p>\n <p style=\"font-size:12px;color:#999;margin:0;\">Published: ${published} | Author: ${author} | Category: ${category}</p>\n <a href=\"${link}\" target=\"_blank\" style=\"display:inline-block;margin-top:10px;padding:8px 12px;background:#cc0000;color:#fff;text-decoration:none;border-radius:4px;\">Read More</a>\n </div>\n `;\n}\n\nreturn [{ json: { html } }];\n"
},
"typeVersion": 2
},
{
"id": "34b49597-b56b-4656-9362-129f091af80d",
"name": "Get RSS from Prothom Alo",
"type": "n8n-nodes-base.httpRequest",
"position": [
-60,
320
],
"parameters": {
"url": "https://prothomalo.com/feed",
"options": {}
},
"typeVersion": 4.2
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "301a6a15-c049-46ad-8e12-44d675855661",
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "Get RSS from Prothom Alo",
"type": "main",
"index": 0
}
]
]
},
"Convert XML to JSON": {
"main": [
[
{
"node": "Generate HTML News Preview",
"type": "main",
"index": 0
}
]
]
},
"Get RSS from Prothom Alo": {
"main": [
[
{
"node": "Convert XML to JSON",
"type": "main",
"index": 0
}
]
]
},
"Generate HTML News Preview": {
"main": [
[
{
"node": "Send a message",
"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.
gmailOAuth2
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Automatically send beautifully formatted news digests from any RSS feed (e.g., Prothom Alo) directly to your Gmail inbox on a schedule using this n8n workflow. Ideal for news curators, bloggers, media professionals, or anyone who wants a daily/weekly news summary in their email.
Source: https://n8n.io/workflows/6223/ — 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 is an improvement of this workflow by Greg Brzezinka.
This workflow automates the full cycle of fetching, processing, and storing Telr payment gateway reports — and then notifying your team by email. It runs on a schedule, calls the Telr API twice (once
Stop waiting for search engines to discover your content updates. This workflow automates the process of notifying search engines (Bing, Yandex, etc.) about new or updated pages using the IndexNow pro
How it works
Boost your online visibility and stay ahead of the curve with this Automated SEO Audit Workflow Template. This solution streamlines the crucial task of monitoring your website’s health, proactively id