This workflow corresponds to n8n.io template #8121 — we link there as the canonical source.
This workflow follows the Agent → 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": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "39081db1-dab2-4453-beac-af3217697b44",
"name": "Get Latest News",
"type": "n8n-nodes-base.httpRequest",
"position": [
128,
-144
],
"parameters": {
"url": "https://newsapi.org/v2/top-headlines?country=us&apiKey=YOUR_TOKEN_HERE",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "8c1ccc13-3ec3-486d-b087-77cb36d74ec9",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
352,
-144
],
"parameters": {
"options": {},
"fieldToSplitOut": "articles"
},
"typeVersion": 1
},
{
"id": "3ec09b1c-bbc6-4508-b96d-7c90f8275e92",
"name": "Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
176,
192
],
"parameters": {
"model": "anthropic/claude-3.7-sonnet",
"options": {}
},
"credentials": {
"openRouterApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "e2058424-6d9c-49e4-be50-5d59ec6d1a78",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
416,
112
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"renameField": true,
"outputFieldName": "news",
"fieldToAggregate": "output"
}
]
}
},
"typeVersion": 1
},
{
"id": "a71b5a13-55d3-4b8e-9cee-98366151c66c",
"name": "Daily News Extractor",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-112,
112
],
"parameters": {
"text": "=News Details:\nAuthor - {{ $json.author }}\ntitle - {{ $json.title }}\ndescription - {{ $json.description }}\ncontent - {{ $json.content }}\npublish date - {{ $json.publishedAt }}\n\n",
"options": {
"systemMessage": "take the details and rewrite a newsletter post\n\ninclude the date, and author too, let it blend in\n"
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "aaf4f384-e63e-4eb3-a1a9-a55e0ad90c99",
"name": "Newsletter Agent",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-144,
448
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"messages": {
"values": [
{
"content": "={{ $json.news.toJsonString() }}"
},
{
"role": "assistant",
"content": "=Rewrite all this newsletter into a 2-minute script that will be transcribe into audio \n\ndont put spcial characters, because a audio will transcribe the text to audio\n\nyou can start with Max here bring you the top new around the world"
}
]
}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.8
},
{
"id": "414c2613-c7f7-4548-a756-767729a17b23",
"name": "Transcribe Newsletter",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
176,
448
],
"parameters": {
"input": "={{ $json.message.content }}",
"options": {},
"resource": "audio"
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.8
},
{
"id": "9dcb3abc-bfad-434f-b951-7326ad78c03c",
"name": "Notify Subscriber",
"type": "n8n-nodes-base.gmail",
"position": [
432,
448
],
"parameters": {
"sendTo": "user@example.com",
"message": "=Dear Sir,\n\n\nKindly Find the Latest News for {{ $now.format('yyyy-MM-dd') }}\n\n\nRegards,\nMax,\nYour business name",
"options": {
"attachmentsUi": {
"attachmentsBinary": [
{}
]
},
"appendAttribution": false
},
"subject": "=Top News Headline for {{ $now.format('yyyy-MM-dd') }}",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "958391a6-215a-4c51-9209-82a3d465bbbd",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1024,
-256
],
"parameters": {
"width": 800,
"height": 848,
"content": "\n# \ud83d\udcf0 Automated Daily News to Audio Newsletter.\n\n### \ud83c\udfaf What This Does\nTransforms daily news headlines into personalized audio newsletters automatically:\n\u2022 **Fetches latest news** from NewsAPI on schedule\n\u2022 **AI content creation** rewrites articles into newsletter format using Claude\n\u2022 **Script generation** creates 2-minute audio-ready scripts with GPT-4\n\u2022 **Text-to-speech** converts scripts to high-quality audio using OpenAI\n\u2022 **Email delivery** sends audio newsletters as attachments\n\n### \u26a1 How It Works\n1. Scheduled trigger runs daily (customizable timing)\n2. Fetches top US headlines from NewsAPI\n3. Claude AI rewrites each article for newsletter format\n4. GPT-4 creates cohesive 2-minute audio script\n5. OpenAI converts text to natural-sounding speech\n6. Audio newsletter emailed to subscribers automatically\n\n### \ud83d\udee0\ufe0f Setup Required\n**Before using this workflow:**\n1. Get NewsAPI key and replace `YOUR_NEWSAPI_KEY`\n2. Configure OpenRouter credentials for Claude access \n3. Add OpenAI API key for text-to-speech\n4. Update recipient email address\n5. Customize news sources and AI prompts\n6. Test audio quality and email delivery\n\n### \ud83d\udca1 Perfect For\n\u2022 Content creators building audio-first content\n\u2022 Busy professionals wanting daily news briefings\n\u2022 Podcasters creating automated content segments \n\u2022 Teams needing internal news updates\n\u2022 Anyone interested in AI-powered media automation"
},
"typeVersion": 1
},
{
"id": "def6a9ac-6cfd-48d0-958d-5c98084daf4c",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-96,
-144
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "5f453ec6-55dc-4b2b-b0b1-2a31c36fa41d",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-192,
-272
],
"parameters": {
"color": 6,
"width": 256,
"height": 272,
"content": "### Step 1: Daily News Schedule\n\nAutomatically triggers news collection at your chosen time.\n"
},
"typeVersion": 1
},
{
"id": "8137fa81-242a-4ccf-91bc-9b24b11b5cb7",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-272
],
"parameters": {
"color": 3,
"height": 272,
"content": "### Step 2: Fetch News Headlines\n\nRetrieves latest news from NewsAPI."
},
"typeVersion": 1
},
{
"id": "4c9d24e5-ce3d-41e2-b90a-990abb66a9e0",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
336,
-272
],
"parameters": {
"color": 4,
"height": 272,
"content": "### Step 3: Data Extraction\n\nExtract Th important details from the API"
},
"typeVersion": 1
},
{
"id": "4f750a45-2f6f-4d25-a050-6c3920413dd4",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-192,
16
],
"parameters": {
"color": 5,
"width": 512,
"height": 272,
"content": "### Step 4: AI Content Processing\n\nClaude AI rewrites news articles into newsletter format.\n"
},
"typeVersion": 1
},
{
"id": "d33eb059-8c5c-4ac9-9796-25198bd8e56c",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
336,
16
],
"parameters": {
"color": 2,
"height": 272,
"content": "### Step 5: Data Transformation\nMerge all the News into a single list\n"
},
"typeVersion": 1
},
{
"id": "77a05457-303d-425a-a7d7-2ec9d07b437b",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-192,
304
],
"parameters": {
"color": 4,
"width": 304,
"height": 320,
"content": "### Step 6: Script Generation\n\nGPT-4 creates 2-minute audio-ready script.\n"
},
"typeVersion": 1
},
{
"id": "a27adfed-7bd7-4321-b955-fcfedede7718",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
128,
304
],
"parameters": {
"color": 5,
"width": 192,
"height": 320,
"content": "### Step 7: Text-to-Speech Conversion.\n\nOpenAI converts script to natural-sounding audio."
},
"typeVersion": 1
},
{
"id": "809ec6c2-b8d6-42ac-ad1c-ecb34ee06fe7",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
336,
304
],
"parameters": {
"color": 6,
"height": 320,
"content": "### Step 8: Email Delivery\n\nSends audio newsletter to subscribers."
},
"typeVersion": 1
}
],
"connections": {
"Model": {
"ai_languageModel": [
[
{
"node": "Daily News Extractor",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Newsletter Agent",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Daily News Extractor",
"type": "main",
"index": 0
}
]
]
},
"Get Latest News": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Newsletter Agent": {
"main": [
[
{
"node": "Transcribe Newsletter",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Get Latest News",
"type": "main",
"index": 0
}
]
]
},
"Daily News Extractor": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Transcribe Newsletter": {
"main": [
[
{
"node": "Notify Subscriber",
"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.
gmailOAuth2openAiApiopenRouterApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Perfect for content creators, podcasters, news enthusiasts, and busy professionals who want to create automated audio news content or stay informed through personalized audio briefings. Ideal for social media managers, newsletter creators, and anyone building audio-first content…
Source: https://n8n.io/workflows/8121/ — 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 automates the creation, rendering, approval, and posting of TikTok-style POV (Point of View) videos to Instagram, with cross-posting to Facebook and YouTube. It eliminates manual video p
Complete PostgreSQL-backed system: Keyword scoring → AI research → Multi-part content generation → fal.ai Nano Banana image generation → WordPress publishing
This workflow is for beauty salons who want consistent, high‑quality social media content without writing every post manually. It also suits agencies and automation builders who manage multiple beauty
leads. Uses supabase, gmail, formTrigger, httpRequest. Webhook trigger; 62 nodes.
This n8n workflow turns a script and character/setting description from Google Sheets into a complete stitched UGC-style video ad, fully automated from intake to final delivery.