Send Multilingual News Newsletters
Searches the web for the latest news on any topic, curates top stories with AI, generates HTML newsletters per language, and sends them to subscribers via Gmail.
This workflow automatically searches the web for the latest news on your chosen topic, curates the top stories using AI, and sends a beautifully designed multilingual newsletter to your mailing list via Gmail. It generates one HTML email per unique language in your subscriber list, so it scales efficiently no matter how many languages your audience speaks.
What It Does
- Fetches today's date and your configured topic to search for fresh news
- Scrapes the top articles from search results to get full content
- Uses AI to curate the 5 most interesting and recent stories
- Reads your mailing list from Google Sheets and deduplicates languages
- Generates a premium, responsive HTML newsletter for each unique language
- Maps each subscriber to their language's newsletter version
- Sends the personalized newsletter to every subscriber via Gmail
What You Need
- A Google account with Gmail (for sending emails)
- A Google Sheets spreadsheet with three columns: Name, Email, Language
- A Google Sheets connector and a Gmail connector added to the workflow
How the Flow Works
| Step | Node | Description |
|---|---|---|
| 1 | Config | A code node that holds your newsletter settings. Change the TOPIC variable (e.g. "artificial intelligence", "cryptocurrency", "digital marketing") and the NAME variable (e.g. "The AI Pulse", "Crypto Daily") to match your brand. |
| 2 | Search Internet | Searches the web using today's date combined with your topic to ensure only fresh, current news is returned. |
| 3 | Extract Results | Pulls the top 6 search results with their title, URL, and snippet. |
| 4 | Browse Webpages | Scrapes the full article content from each URL in parallel. Runs with continueOnError so one failed page does not stop the workflow. |
| 5 | AI Curation | An AI agent analyzes the scraped content and selects the top 5 most interesting and recent stories. Each story includes a title, summary, source, URL, and category (Research, Industry, Product Launch, Policy, Funding, or Open Source). |
| 6 | Read Mailing List | Reads subscriber data from your Google Sheet (Name, Email, Language columns). |
| 7 | Extract Unique Languages | A code node deduplicates the Language column so the workflow only generates HTML once per language, not once per subscriber. |
| 8 | Merge and Prepare | Combines the curated articles with the unique languages to create one item per language, each containing the full article data plus the newsletter name and today's date. |
| 9 | Generate HTML Per Language | An AI agent generates a premium, email-compatible HTML newsletter for each language. The design includes a dark gradient header, colored category badges, article cards with rounded corners and shadows, and a footer. For non-English languages, all visible text is translated. Arabic and other RTL languages get proper dir="rtl" support. |
| 10 | Recombine with Subscribers | A merge and mapping step pairs each subscriber with the HTML version matching their language. If a subscriber's language has no dedicated version, it falls back to English or the first available version. |
| 11 | Send via Gmail | Sends the newsletter to each subscriber in parallel using Gmail, with the correct HTML body for their language. |
Google Sheets Setup
Your spreadsheet should have the following columns:
| Name | Language | |
|---|---|---|
| Alice | alice@example.com | English |
| Ahmed | ahmed@example.com | Arabic |
| Marie | marie@example.com | French |
Use standard language names in the Language column (e.g. "English", "Arabic", "German", "French", "Spanish").
Output
Each subscriber receives a professionally designed HTML email newsletter in their preferred language, featuring the top 5 curated news stories of the day on your chosen topic. The email includes colored category badges, article summaries with source links, and a clean footer.
Notes
- The newsletter topic and name are configured in two code nodes (the Config node at the start and the Prepare node before HTML generation). Make sure both match.
- Add at least one subscriber row to your Google Sheet before running the workflow.
- The scheduled trigger runs daily at 8:00 AM Berlin time by default. Adjust the cron expression and timezone to your preference.
- The workflow generates HTML once per unique language, so adding 100 subscribers in the same language costs the same as adding 1. Adding a new language adds one more AI generation call.
- This workflow works for any topic — AI, crypto, marketing, sports, finance — just update the config variables and you're ready to go.
Want to showcase your own workflows?
Become a Needle workflow partner and turn your expertise into recurring revenue.
