RSS + OpenAI: a polished email news digest in Hebrew
You open five tabs to “quickly catch up,” then realize you’ve read the same story twice, missed the one that mattered, and still have nothing clean to forward. It’s messy, slow, and frankly distracting.
This RSS email digest workflow hits marketing leads who need a daily brief for their team, but founders and analysts feel it too. Instead of skimming everything, you’ll get a consistent top five in Hebrew that’s already formatted (RTL included) and ready to send.
Below, you’ll see how the automation picks the right stories, summarizes them, and emails a polished digest every evening at 8:00 PM Israel time.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: RSS + OpenAI: a polished email news digest in Hebrew
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:message-outline", form: "rounded", label: "Send Daily News", pos: "b", h: 48 }
n1@{ icon: "mdi:code-braces", form: "rounded", label: "Get Date", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/html.dark.svg' width='40' height='40' /></div><br/>Create HTML"]
n4@{ icon: "mdi:cog", form: "rounded", label: "Aggregate", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Clean Text", pos: "b", h: 48 }
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/html.dark.svg' width='40' height='40' /></div><br/>Extract Text"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch HTML"]
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n9@{ icon: "mdi:robot", form: "rounded", label: "ChatGPT 4o", pos: "b", h: 48 }
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Clean List"]
n11@{ icon: "mdi:cog", form: "rounded", label: "Sort List", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Remove NaN", pos: "b", h: 48 }
n13["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merged RSS"]
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields - Mako", pos: "b", h: 48 }
n15@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields - Calcalist", pos: "b", h: 48 }
n16@{ icon: "mdi:cog", form: "rounded", label: "RSS - Calcalist", pos: "b", h: 48 }
n17@{ icon: "mdi:cog", form: "rounded", label: "RSS - Mako", pos: "b", h: 48 }
n18@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n2 --> n0
n1 --> n2
n4 --> n3
n11 --> n10
n8 --> n7
n9 --> n8
n10 --> n9
n5 --> n4
n7 --> n6
n13 --> n12
n17 --> n14
n12 --> n11
n3 --> n2
n6 --> n5
n16 --> n15
n18 --> n17
n18 --> n1
n18 --> n16
n14 --> n13
n15 --> n13
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n18 trigger
class n9 ai
class n12 decision
class n7 api
class n1,n10 code
classDef customIcon fill:none,stroke:none
class n2,n3,n6,n7,n10,n13 customIcon
The Problem: Daily news scanning turns into tab chaos
Getting a reliable daily economic brief sounds simple until you actually do it. You bounce between RSS feeds, headlines, full articles, and “save for later” lists. Then duplicates creep in (syndicated stories, re-posts, slightly different titles), and you waste time re-reading. Even when you find the right five stories, you still have to write summaries in Hebrew, keep them consistent, and format something that looks professional. Day after day, the process becomes a small tax on your attention, usually right when you’re tired.
The friction compounds. Here’s where it breaks down in real life.
- You spend about 45 minutes nightly reading, filtering, and rewriting what should have been a quick brief.
- Duplicates and “same story, new headline” links sneak in, so your digest looks sloppy or repetitive.
- Summaries drift in tone and length, which means someone always asks, “What’s the takeaway?”
- RTL formatting and email styling are easy to mess up, and a broken layout kills trust fast.
The Solution: A daily Hebrew RTL digest built from RSS + GPT-4o
This workflow runs automatically every evening at 8:00 PM Israel time and turns two Israeli news sources into one clean, decision-friendly email. It starts by pulling the latest items from Calcalist and Mako via RSS, then normalizes the fields so both sources look the same inside your automation. Next, it removes duplicates and filters out items with invalid dates so the list is stable and relevant. From there, OpenAI GPT-4o selects the five most important stories, fetches each article’s HTML, extracts useful snippets, and summarizes everything in concise Hebrew. Finally, it assembles a responsive, fully styled HTML email with proper RTL layout and sends it through your SMTP provider to your inbox.
The workflow starts on a schedule, not a manual trigger, so it’s dependable. In the middle, AI ranks what matters and writes consistent summaries. The final output is a polished email you can forward as-is to a client, a leadership group, or a team channel.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you currently scan two sources nightly, open about 12 articles, and write five Hebrew bullets for your team. If you spend roughly 3 minutes per article to judge relevance plus another 5 minutes per summary, that’s about 45 minutes most nights. With this workflow, the “work” becomes opening one email and spending about 2 minutes reading the top five. The automation runs in the background after the 8:00 PM trigger, then delivers a ready-to-forward digest.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- OpenAI for top-five selection and Hebrew summaries
- SMTP email provider to send the digest to your inbox
- OpenAI API Key (get it from the OpenAI dashboard)
Skill level: Beginner. You’ll paste credentials, set a recipient email, and optionally tweak one prompt.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
Nightly schedule trigger. At 8:00 PM Israel time, the workflow kicks off automatically and fetches the latest RSS items from Calcalist and Mako.
Cleanup and normalization. The feed entries are mapped into a consistent structure, invalid dates are filtered out, the list is sorted, and duplicates are removed so GPT doesn’t “waste” picks on repeats.
AI-driven selection and summarization. GPT-4o chooses the five most important stories, then the workflow retrieves each article’s HTML, extracts snippets, and generates concise Hebrew summaries that match a consistent tone.
RTL email output. n8n builds a responsive HTML email with proper right-to-left formatting, merges in the current date, and sends the final digest through your SMTP credentials.
You can easily modify the RSS sources to cover different publications based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Scheduled Run Trigger
Set the daily schedule and understand the parallel start of the workflow.
- Add and open Scheduled Run Trigger.
- Set the schedule rule so triggerAtHour is
20and triggerAtMinute isnull. - Confirm that Scheduled Run Trigger outputs to Mako RSS Reader, Generate Current Date, and Calcalist RSS Reader in parallel.
Step 2: Connect RSS Sources and Normalize Fields
Pull articles from both sources and map them into a shared schema before merging.
- In Mako RSS Reader, set URL to
https://storage.googleapis.com/mako-sitemaps/rss-hp.xml. - In Calcalist RSS Reader, set URL to
https://www.calcalist.co.il/GeneralRSS/0,16335,L-8,00.xml. - In Map Mako Fields, map fields using expressions like
{{ $json.title.replace(/\[PACK\].*/, "").replace(/\[.*?\]/g, "").trim() }}and{{ new Date($json.pubDate).getTime() }}. - In Map Calcalist Fields, map fields using
{{ $json.title.replace(/^\[PACK\] /, "").replace(/1080p .*/, "") }} ({{ $json.content.match(/<strong>Size<\/strong>:\s([\d.]+\s[KMGT]iB)/)[1] }})and{{ new Date($json.pubDate).getTime() }}. - Send both mapped streams into Merge RSS Feeds.
Step 3: Filter, Sort, and Prepare AI Input
Clean invalid dates, order the feed, and prepare a compact list for AI selection.
- In Filter Invalid Dates, keep the condition leftValue set to
{{ $json.pubDate }}and rightValue set toNaNwith operator notContains. - In Order Articles, sort by pubDate in descending order.
- Use Deduplicate Article List to remove duplicate links and build
chatgpt_inputfor AI.
Step 4: Set Up AI Article Selection
Use the AI node to pick the five most important articles from the prepared list.
- Open AI Article Selector and confirm modelId is
gpt-4o. - Ensure the system message includes the JSON output requirement and the list injection
{{ $json.chatgpt_input }}. - Credential Required: Connect your
openAiApicredentials to AI Article Selector.
Step 5: Extract Article Content and Build the Digest
Fetch each selected article, extract snippets, normalize fields, and build the HTML email body.
- In Explode Article List, set fieldToSplitOut to
message.content.articles. - In Retrieve Article HTML, set url to
{{ $json.link }}. - In Extract Article Snippets, use operation
extractHtmlContentwith CSS selectors fordata-calcalistanddata-mako. - In Normalize Article Fields, map title to
{{ $('Explode Article List').item.json.article }}, summary to{{ $json['data-calcalist'] }} {{ $json['data-mako'] }}, and url to{{ $('Explode Article List').item.json.link }}. - In Aggregate Article Data, set aggregate to
aggregateAllItemData. - In Build Digest HTML, keep the HTML template with expressions like
{{ $json.data[0].title }}and{{ $json.data[0].summary }}.
Step 6: Configure Email Output
Combine the digest HTML with the date and send the email.
- In Generate Current Date, keep the timezone
Asia/Jerusalemand date formatter foren-GB. - In Combine Email Data, set mode to
combineand combineBy tocombineByPositionto merge date and HTML. - In Dispatch Daily Digest Email, set html to
{{ $json.html }}and subject toסקירה ה-AI היומית שלך: {{ $json.date_today }}. - Set toEmail to
[YOUR_EMAIL]and fromEmail toAutomation Bot <[YOUR_EMAIL]>. - Credential Required: Connect your
smtpcredentials to Dispatch Daily Digest Email.
Step 7: Test & Activate Your Workflow
Run a full test to validate RSS ingestion, AI selection, HTML assembly, and email delivery before enabling production schedules.
- Click Execute Workflow to run the flow manually from Scheduled Run Trigger.
- Verify that AI Article Selector returns five items and Build Digest HTML contains five article blocks.
- Confirm that Dispatch Daily Digest Email sends an email with a populated subject and RTL HTML content.
- When successful, switch the workflow to Active so Scheduled Run Trigger runs daily at the configured time.
Common Gotchas
- OpenAI credentials can expire or get rotated. If outputs suddenly fail, check your OpenAI credential in n8n first and confirm the API key is still active.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- SMTP providers often require app-specific passwords or extra permissions. When sending fails, start by checking your SMTP login, port, and “less secure app” policies in your email provider.
Frequently Asked Questions
About 10 minutes if you already have your credentials ready.
No coding required. You’ll mainly connect OpenAI and your email account, then paste in the recipient address.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API usage (often a few dollars a month for a daily digest, depending on article length).
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s one of the best reasons to use n8n. You can swap the RSS reader sources, then adjust the AI Article Selector prompt to prioritize your sector (tech regulation, housing, markets, whatever). Common customizations include changing the tone (more formal vs. more casual), adding a “why it matters” line per story, and sending to multiple recipients. If you also want logging, you can add a Google Sheets node after the summaries to save the daily top five.
Usually it’s an expired or rotated API key, so regenerate the key and update the OpenAI credential in n8n. It can also be a billing issue on your OpenAI account, or a temporary rate limit if you’re pulling unusually long articles that day.
More than you’ll realistically need for two daily RSS feeds. On n8n Cloud, your limit is based on monthly executions; if you self-host, you’re mostly constrained by server resources and OpenAI usage.
Often, yes. This workflow does several “non-trivial” things in one run: deduping, sorting, fetching full article HTML, extracting snippets, and then building a styled RTL email. n8n is simply more comfortable when the logic grows past a couple of steps, and self-hosting means you’re not paying per tiny action. Zapier or Make can still work if you keep it simple (headline-only digests, fewer transforms), but they get awkward once you need branching and custom code. If you’re unsure, Talk to an automation expert and you’ll get a straight recommendation.
You set this up once, and the daily brief just shows up. The workflow handles the repetitive filtering and formatting so you can spend your attention on the stories that actually matter.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.