Resumen diario de noticias de Hacker News AI: resumen con GPT-5 y envío por correo electrónico
Este es unautomatización que contiene 16 nodos.Utiliza principalmente nodos como Set, Filter, Markdown, Aggregate, EmailSend. Obtener resumen diario de noticias de IA de Hacker News, resumir con GPT-5 y enviar por correo electrónico
- •Pueden requerirse credenciales de autenticación para la API de destino
- •Clave de API de OpenAI
Nodos utilizados (16)
Categoría
{
"meta": {
"instanceId": "3d7eb9567ae690bf8c9bba1cb43396e6e40c18e15eb5889cf9673ed1713da6db",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "c352f6dc-9570-419d-9d48-3c94758a0104",
"name": "Obtener Historias de IA de HN",
"type": "n8n-nodes-base.hackerNews",
"position": [
1024,
3552
],
"parameters": {
"limit": 1000,
"resource": "all",
"additionalFields": {
"keyword": "AI"
}
},
"typeVersion": 1
},
{
"id": "2a57c491-15f9-4035-854f-9bc410e9fe5e",
"name": "Filtrar Últimas 24 Horas",
"type": "n8n-nodes-base.filter",
"position": [
1232,
3552
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f59903f3-835c-407a-a930-060d20c8abdf",
"operator": {
"type": "dateTime",
"operation": "afterOrEquals"
},
"leftValue": "={{ $json.created_at }}",
"rightValue": "={{ $now.minus({ days: 1 }).toFormat('yyyy-MM-dd') }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "960d99c5-3bfa-4baa-b9eb-4cc41e6ad961",
"name": "Iterar sobre Elementos",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1440,
3552
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "9bf34ea7-64ad-4bc5-b4f7-af3a1d1fa0a0",
"name": "Extraer Contenido de URL del Artículo",
"type": "n8n-nodes-base.httpRequest",
"position": [
1648,
3632
],
"parameters": {
"url": "={{ $json.url }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "714804a1-ebc4-474a-9de0-4e8785086129",
"name": "Convertir a Markdown",
"type": "n8n-nodes-base.markdown",
"position": [
1872,
3632
],
"parameters": {
"html": "={{ $json.data }}",
"options": {}
},
"typeVersion": 1
},
{
"id": "72b3a898-bfa8-4388-9a8c-a9c9c4895020",
"name": "GPT Resumir Artículo",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
2064,
3632
],
"parameters": {
"text": "=Summarize the info below so that I can get a quick news snippet of what this is about in the area of AI. \n\nSimply output the main point as the heading and then 2 sentences of the summary (maybe with a link)\n\n---\n\nScraped info below: {{ $json.markdown }}",
"batching": {},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "dd7d375a-26bd-469f-8cea-2d68511aa1bb",
"name": "Formatear Elemento de Noticia",
"type": "n8n-nodes-base.set",
"position": [
2368,
3728
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ec79a00c-98ba-40fc-b606-b4e40eeed15c",
"name": "news",
"type": "string",
"value": "={{ $('GPT Summarize Article').item.json.output }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b612d024-cb1b-4f93-8761-3a4e805cb0a2",
"name": "Combinar Todos los Resúmenes",
"type": "n8n-nodes-base.aggregate",
"position": [
1648,
3456
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "news"
}
]
}
},
"typeVersion": 1
},
{
"id": "db3ace26-4a67-4916-9f16-1719fdfbaed7",
"name": "Enviar Resumen por Correo",
"type": "n8n-nodes-base.emailSend",
"position": [
1872,
3456
],
"webhookId": "ec7ef530-cebe-4a22-b9ad-428230ba4b71",
"parameters": {
"html": "=<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Daily News Digest</title>\n <style>\n body {\n margin: 0;\n padding: 0;\n background-color: #f5f5f5;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;\n line-height: 1.5;\n color: #333;\n }\n \n .email-container {\n max-width: 600px;\n margin: 0 auto;\n background-color: white;\n padding: 0;\n }\n \n .header {\n background-color: #d97757;\n color: white;\n text-align: center;\n padding: 20px;\n border-radius: 8px 8px 0 0;\n }\n \n .header h1 {\n margin: 0;\n font-size: 18px;\n font-weight: 500;\n }\n \n .content {\n padding: 30px 40px;\n background-color: white;\n }\n \n .news-item {\n margin-bottom: 30px;\n padding-bottom: 25px;\n border-bottom: 1px solid #e0e0e0;\n }\n \n .news-item:last-child {\n border-bottom: none;\n margin-bottom: 0;\n padding-bottom: 0;\n }\n \n .news-title {\n font-size: 16px;\n font-weight: 600;\n color: #333;\n margin: 0 0 12px 0;\n line-height: 1.4;\n }\n \n .news-content {\n font-size: 14px;\n color: #666;\n line-height: 1.6;\n margin: 0;\n }\n \n .news-content a {\n color: #d97757;\n text-decoration: none;\n }\n \n .news-content a:hover {\n text-decoration: underline;\n }\n \n .footer {\n text-align: center;\n padding: 20px;\n background-color: #f9f9f9;\n color: #888;\n font-size: 12px;\n border-radius: 0 0 8px 8px;\n }\n \n @media (max-width: 600px) {\n .email-container {\n margin: 0 10px;\n }\n \n .content {\n padding: 20px 25px;\n }\n \n .header {\n padding: 15px;\n }\n }\n </style>\n</head>\n<body>\n <div class=\"email-container\">\n <div class=\"header\">\n <h1>📰 Latest AI News — {{ $now.format('MMMM d, yyyy') }}</h1>\n </div>\n \n <div class=\"content\">\n {{ $json.news.join('') }}\n </div>\n \n <div class=\"footer\">\n You're receiving this digest because you subscribed to updates.<br>\n © 2025 AI News Digest\n </div>\n </div>\n</body>\n</html>",
"options": {},
"subject": "Daily AI Digest - {{ $now.format('MMMM d, yyyy') }}",
"toEmail": "recipient@example.com",
"fromEmail": "AI News <noreply@example.com>"
},
"credentials": {
"smtp": {
"id": "M9BmJSJmYzVHw6xq",
"name": "Zoho Mail 2"
}
},
"typeVersion": 2.1
},
{
"id": "030bc0bb-c0ae-4234-9a9e-720c86ba3f0c",
"name": "Activador de Programación Diaria",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
800,
3552
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "f59da8bf-9079-46e6-a97d-63ac00da0f09",
"name": "Descripción General y Configuración",
"type": "n8n-nodes-base.stickyNote",
"position": [
64,
3168
],
"parameters": {
"color": 4,
"width": 728,
"height": 1072,
"content": "# Daily AI News Digest from Hacker News\n\n## 📋 What This Template Does\nFetches recent AI stories from Hacker News, filters for today, scrapes each article, summarizes with GPT into snippets, aggregates into HTML, and emails a styled daily digest.\n\n## 🔧 Prerequisites\n- n8n instance\n- OpenAI API access\n- SMTP server (e.g., Zoho, Gmail)\n\n## 🔑 Required Credentials\n\n### OpenAI API\n1. Get key from platform.openai.com/api-keys\n2. Add to n8n as OpenAI credential\n3. Assign to \"GPT 5 pro\" node\n\n### SMTP Setup\n1. Configure in n8n credentials (host, port, user/pass)\n2. Assign to \"Send Email Digest\" node\n3. Update fromEmail/toEmail fields\n\n## ⚙️ Configuration Steps\n1. Import JSON into n8n\n2. Assign OpenAI and SMTP credentials\n3. Update fromEmail/toEmail in \"Send Email Digest\" node\n4. Set schedule in \"Daily Schedule Trigger\" (e.g., daily at 8 AM)\n5. Activate workflow\n\n## 🎯 Use Cases\n- Personal AI news briefing\n- Team knowledge sharing\n- Content curation for blogs\n\n## ⚠️ Troubleshooting\n- No stories: Check keyword filter; HN API limits\n- Scraping fails: Add proxy if blocked\n- Email not sending: Verify SMTP settings\n- Summaries poor: Tweak GPT prompt"
},
"typeVersion": 1
},
{
"id": "088aeedc-3850-415e-a691-691fd3e02428",
"name": "Nota: Obtención y Filtrado de HN",
"type": "n8n-nodes-base.stickyNote",
"position": [
912,
3728
],
"parameters": {
"color": 2,
"width": 428,
"height": 304,
"content": "## 📥 Data Collection\n\n**Fetch HN AI Stories:**\n- Pulls 1000 stories with \"AI\" keyword\n- Uses public HN API (no auth needed)\n\n**Filter Last 24 Hours:**\n- Checks `created_at` field\n- Keeps only yesterday/today posts\n- Uses `$now().minus({ days: 1 })`\n\n**💡 Customization:**\nChange keyword filter or date range here"
},
"typeVersion": 1
},
{
"id": "4c555f5e-4b5b-4176-bc8e-161dcb9a9b25",
"name": "Nota: Extracción y Procesamiento",
"type": "n8n-nodes-base.stickyNote",
"position": [
1488,
3888
],
"parameters": {
"color": 3,
"width": 484,
"height": 352,
"content": "## 🌐 Content Processing\n\n**Loop Over Items:**\n- Processes each story sequentially\n- Prevents rate limiting\n\n**Scrape Article URL:**\n- Fetches content from source URL\n- May need proxy for blocked sites\n\n**Convert to Markdown:**\n- Cleans HTML to text\n- Formats for LLM input\n\n**💡 Troubleshooting:**\nIf scraping fails, check URL accessibility"
},
"typeVersion": 1
},
{
"id": "3e0e97ce-561d-4c6b-a9b4-96b0eacf90d5",
"name": "Nota: Resumen con IA",
"type": "n8n-nodes-base.stickyNote",
"position": [
2176,
3904
],
"parameters": {
"color": 5,
"width": 460,
"height": 336,
"content": "## 🤖 AI Summarization\n\n**GPT Summarize Article:**\n- Generates heading + 2 sentences\n- Extracts key AI insights\n- Includes link when relevant\n\n**Format News Item:**\n- Wraps in HTML for email\n- Prepares for aggregation\n\n**Combine All Summaries:**\n- Merges into single array\n- Ready for email template\n\n**💡 Customization:**\nEdit prompt for different summary styles"
},
"typeVersion": 1
},
{
"id": "2dbe3adc-d430-4eff-9306-c2f45cd632f3",
"name": "Nota: Entrega por Correo",
"type": "n8n-nodes-base.stickyNote",
"position": [
2112,
3200
],
"parameters": {
"color": 6,
"width": 436,
"height": 320,
"content": "## 📧 Email Delivery\n\n**Send Email Digest:**\n- Styled HTML template\n- Mobile-responsive design\n- Inline CSS for compatibility\n\n**Template Features:**\n- Clean news item layout\n- Branded header/footer\n- Clickable links\n\n**⚙️ Required:**\nUpdate fromEmail/toEmail before activating"
},
"typeVersion": 1
},
{
"id": "eaa3c5c3-bf65-4efc-8f23-208ed7751ed4",
"name": "GPT 5 pro",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
2064,
3808
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-5-pro",
"cachedResultName": "gpt-5-pro"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "ymMvgDroJHalwvRf",
"name": "OpenAI"
}
},
"typeVersion": 1.2
}
],
"pinData": {},
"connections": {
"eaa3c5c3-bf65-4efc-8f23-208ed7751ed4": {
"ai_languageModel": [
[
{
"node": "72b3a898-bfa8-4388-9a8c-a9c9c4895020",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"960d99c5-3bfa-4baa-b9eb-4cc41e6ad961": {
"main": [
[
{
"node": "b612d024-cb1b-4f93-8761-3a4e805cb0a2",
"type": "main",
"index": 0
}
],
[
{
"node": "9bf34ea7-64ad-4bc5-b4f7-af3a1d1fa0a0",
"type": "main",
"index": 0
}
]
]
},
"dd7d375a-26bd-469f-8cea-2d68511aa1bb": {
"main": [
[
{
"node": "960d99c5-3bfa-4baa-b9eb-4cc41e6ad961",
"type": "main",
"index": 0
}
]
]
},
"9bf34ea7-64ad-4bc5-b4f7-af3a1d1fa0a0": {
"main": [
[
{
"node": "714804a1-ebc4-474a-9de0-4e8785086129",
"type": "main",
"index": 0
}
]
]
},
"714804a1-ebc4-474a-9de0-4e8785086129": {
"main": [
[
{
"node": "72b3a898-bfa8-4388-9a8c-a9c9c4895020",
"type": "main",
"index": 0
}
]
]
},
"c352f6dc-9570-419d-9d48-3c94758a0104": {
"main": [
[
{
"node": "2a57c491-15f9-4035-854f-9bc410e9fe5e",
"type": "main",
"index": 0
}
]
]
},
"2a57c491-15f9-4035-854f-9bc410e9fe5e": {
"main": [
[
{
"node": "960d99c5-3bfa-4baa-b9eb-4cc41e6ad961",
"type": "main",
"index": 0
}
]
]
},
"b612d024-cb1b-4f93-8761-3a4e805cb0a2": {
"main": [
[
{
"node": "db3ace26-4a67-4916-9f16-1719fdfbaed7",
"type": "main",
"index": 0
}
]
]
},
"72b3a898-bfa8-4388-9a8c-a9c9c4895020": {
"main": [
[
{
"node": "dd7d375a-26bd-469f-8cea-2d68511aa1bb",
"type": "main",
"index": 0
}
]
]
},
"030bc0bb-c0ae-4234-9a9e-720c86ba3f0c": {
"main": [
[
{
"node": "c352f6dc-9570-419d-9d48-3c94758a0104",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Daniel Nkencho
@daniel-automatesAI Automation Consultant | Helping Business Owners Implement AI Systems for growth and lead gen
Compartir este flujo de trabajo