This workflow follows the Chainllm → Emailsend 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 →
{
"name": "AI_News",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"field": "weeks",
"triggerAtHour": 8
}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.3,
"position": [
-144,
-288
],
"id": "3d779371-8695-41b9-8d64-dc22dd1b6502",
"name": "Schedule Trigger"
},
{
"parameters": {
"url": "https://techcrunch.com/category/artificial-intelligence/feed/",
"options": {}
},
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1.2,
"position": [
208,
96
],
"id": "ec6f92e2-6ba7-44bf-a384-afad160f2fd9",
"name": "RSS Read"
},
{
"parameters": {
"url": "https://venturebeat.com/category/ai/feed/",
"options": {}
},
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1.2,
"position": [
208,
-32
],
"id": "1e31be2a-7e2d-4b97-a19a-5e29da5f4fc1",
"name": "RSS Read1"
},
{
"parameters": {
"url": "https://simonwillison.net/atom/everything/",
"options": {}
},
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1.2,
"position": [
208,
-160
],
"id": "be0e6d81-e8de-4fea-95e8-55db2b9dbcf2",
"name": "RSS Read2"
},
{
"parameters": {
"url": "https://www.technologyreview.com/feed/",
"options": {}
},
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1.2,
"position": [
208,
-288
],
"id": "4667c9fa-6e8b-40e7-becd-f75f084756ec",
"name": "RSS Read3"
},
{
"parameters": {
"url": "https://www.artificialintelligence-news.com/feed/",
"options": {}
},
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1.2,
"position": [
208,
-416
],
"id": "9a7e1614-ffd4-4375-9f10-a7025c86f7fb",
"name": "RSS Read4"
},
{
"parameters": {
"url": "https://bdtechtalks.com/feed/",
"options": {}
},
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1.2,
"position": [
208,
-544
],
"id": "d6ff86a0-3f2b-4892-b603-06086ea8e6d5",
"name": "RSS Read5"
},
{
"parameters": {
"url": "https://news.google.com/rss/search?q=artificial+intelligence+site:techcrunch.com+OR+site:wired.com+OR+site:zdnet.com&hl=pt-BR&gl=BR&ceid=BR:pt",
"options": {}
},
"type": "n8n-nodes-base.rssFeedRead",
"typeVersion": 1.2,
"position": [
208,
-672
],
"id": "3a84ae40-816c-4004-b508-c2dfc9b51091",
"name": "RSS Read6"
},
{
"parameters": {
"numberInputs": 7
},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [
576,
-368
],
"id": "eaa79793-a924-4cb5-9fc5-dbd72ba63d30",
"name": "Merge"
},
{
"parameters": {
"promptType": "define",
"text": "=Voc\u00ea \u00e9 um extrator de informa\u00e7\u00f5es. Sua \u00fanica tarefa \u00e9 extrair fatos concretos das not\u00edcias abaixo.\n\nRetorne APENAS um JSON v\u00e1lido, sem markdown, sem explica\u00e7\u00f5es.\n\nNot\u00edcias:\n{{ $json.noticias_consolidadas }}\n\nFormato de retorno:\n{\n \"noticias\": [\n {\n \"titulo\": \"t\u00edtulo exato da not\u00edcia\",\n \"fonte\": \"dom\u00ednio\",\n \"data\": \"YYYY-MM-DD\",\n \"url\": \"url completa\",\n \"fatos\": [\n \"fato concreto 1 com n\u00fameros e nomes espec\u00edficos\",\n \"fato concreto 2 com n\u00fameros e nomes espec\u00edficos\",\n \"fato concreto 3 com n\u00fameros e nomes espec\u00edficos\"\n ],\n \"tecnologias_mencionadas\": [\"lista de IAs, modelos e ferramentas citadas\"],\n \"setor\": \"setor principal \u2014 ex: Biotecnologia, Seguran\u00e7a, Infraestrutura, Neg\u00f3cios\"\n }\n ],\n \"total\": 0\n}\n\nREGRAS:\n- Liste TODAS as not\u00edcias recebidas\n- Cada fato deve ter pelo menos um n\u00famero, nome de empresa ou dado concreto\n- Nunca escreva opini\u00f5es ou an\u00e1lises \u2014 apenas fatos extra\u00eddos do texto\n- tecnologias_mencionadas deve incluir qualquer IA, modelo ou ferramenta citada",
"batching": {}
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.9,
"position": [
1168,
-288
],
"id": "06176347-8a73-440d-aa98-b0ad46feb3cd",
"name": "Basic LLM Chain"
},
{
"parameters": {
"model": "llama-3.3-70b-versatile",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGroq",
"typeVersion": 1,
"position": [
1168,
-128
],
"id": "e9282136-cb48-4de3-b4c9-d85fe2f23c71",
"name": "Groq Chat Model",
"credentials": {
"groqApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsCode": "const items = $input.all();\n\nconst noticias = items.map((item, index) => {\n const titulo = item.json.titulo || '';\n const snippet = (item.json.descricao || '')\n .replace(/<[^>]*>/g, '')\n .slice(0, 150);\n const link = item.json.link || '';\n const dominio = item.json.dominio || '';\n const data = item.json.data || '';\n const flag = item.json.tipo === 'antigo' ? ' [+1m\u00eas]' : '';\n return `${index + 1}. [${dominio}${flag}] ${titulo} | ${snippet} | ${link} | ${data}`;\n}).join('\\n');\n\nreturn [{\n json: {\n noticias_consolidadas: noticias,\n total: items.length,\n dominios: [...new Set(items.map(i => i.json.dominio))].join(', ')\n }\n}];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
976,
-288
],
"id": "4d7dc295-eb9e-4240-bb74-0c581941f31c",
"name": "Code in JavaScript"
},
{
"parameters": {
"method": "POST",
"url": "https://fsbdzxztnabrvfubowac.supabase.co/rest/v1/relatorios",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "apikey",
"value": "<redacted-credential>"
}
]
},
"sendBody": true,
"contentType": "raw",
"body": "={\"resumo\": {{ JSON.stringify($json.resumo) }}, \"tendencias\": {{ JSON.stringify($json.tendencias) }}, \"oportunidades\": {{ JSON.stringify($json.oportunidades) }}, \"analytics\": {{ $json.analytics }}, \"periodo\": {{ JSON.stringify($json.periodo) }}}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.4,
"position": [
2144,
-288
],
"id": "9b7e3be8-3b96-484d-a6da-4b8d65db91c6",
"name": "HTTP Request"
},
{
"parameters": {
"jsCode": "const texto = $json.text || '';\nconst clean = texto.replace(/```json\\n?/g, '').replace(/```\\n?/g, '').trim();\n\nlet dados;\ntry {\n dados = JSON.parse(clean);\n} catch(e) {\n return [{\n json: {\n resumo: texto.slice(0, 1000),\n tendencias: '',\n oportunidades: '',\n analytics: '{}',\n periodo: new Date().toISOString()\n }\n }];\n}\n\nconst sanitize = (str) => (str || '')\n .replace(/\\r/g, ' ')\n .replace(/\"/g, \"'\")\n .replace(/\\\\/g, '')\n .trim();\n\nreturn [{\n json: {\n resumo: sanitize(dados.relatorio?.resumo),\n tendencias: sanitize(dados.relatorio?.tendencias),\n oportunidades: sanitize(dados.relatorio?.oportunidades),\n analytics: JSON.stringify(dados.analytics || {}),\n periodo: new Date().toISOString()\n }\n}];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1984,
-288
],
"id": "8cccc59f-5903-4ac9-9b41-7305475a16b5",
"name": "Code in JavaScript1"
},
{
"parameters": {
"jsCode": "const items = $input.all();\n\nconst dominiosRuins = ['techncruncher', 'blogger.com', 'soundpeats'];\n\nconst limitePorDominio = {\n 'news.ycombinator.com': 2,\n 'news.google.com': 0,\n 'bdtechtalks.com': 3,\n};\n\nconst agora = new Date();\nconst umMesAtras = new Date(agora.getTime() - 30 * 24 * 60 * 60 * 1000);\n\nconst filtrados = items\n .filter(item => item.json.title && item.json.isoDate)\n .filter(item => {\n const link = (item.json.link || '').toLowerCase();\n return !dominiosRuins.some(d => link.includes(d));\n })\n .filter(item => {\n const snippet = (item.json.contentSnippet || item.json.description || '').trim();\n return snippet.length > 50;\n })\n .filter(item => {\n const link = item.json.link || '';\n return !link.includes('news.google.com/rss/articles');\n });\n\nconst recentes = filtrados\n .filter(item => new Date(item.json.isoDate) >= umMesAtras)\n .sort((a, b) => new Date(b.json.isoDate) - new Date(a.json.isoDate));\n\nconst antigos = filtrados\n .filter(item => new Date(item.json.isoDate) < umMesAtras)\n .sort((a, b) => new Date(b.json.isoDate) - new Date(a.json.isoDate));\n\nconst contagem = {};\nconst balanceados = [];\nconst dominiosPresentes = new Set();\n\nfor (const item of recentes) {\n const link = item.json.link || '';\n const dominio = link.split('/')[2]?.replace('www.', '') || 'desconhecido';\n const limite = limitePorDominio.hasOwnProperty(dominio) ? limitePorDominio[dominio] : 4;\n if (limite === 0) continue;\n contagem[dominio] = (contagem[dominio] || 0) + 1;\n if (contagem[dominio] <= limite) {\n balanceados.push({ ...item, dominio, tipo: 'recente' });\n dominiosPresentes.add(dominio);\n }\n if (balanceados.length >= 18) break;\n}\n\nfor (const item of antigos) {\n if (balanceados.length >= 25) break;\n const link = item.json.link || '';\n const dominio = link.split('/')[2]?.replace('www.', '') || 'desconhecido';\n const limite = limitePorDominio.hasOwnProperty(dominio) ? limitePorDominio[dominio] : 4;\n if (limite === 0) continue;\n contagem[dominio] = (contagem[dominio] || 0) + 1;\n const prioritario = !dominiosPresentes.has(dominio);\n if (prioritario || contagem[dominio] <= limite) {\n balanceados.push({ ...item, dominio, tipo: 'antigo' });\n dominiosPresentes.add(dominio);\n }\n}\n\nreturn balanceados.map(item => ({\n json: {\n titulo: item.json.title || '',\n link: item.json.link || '',\n descricao: item.json.contentSnippet || item.json.description || '',\n dominio: item.dominio,\n data: item.json.isoDate?.slice(0, 10) || '',\n tipo: item.tipo\n }\n}));"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
784,
-288
],
"id": "333fcc1e-5d09-46bf-ad22-35124eeb37bf",
"name": "Code in JavaScript2"
},
{
"parameters": {
"jsCode": "const texto = $json.text || '';\nconst clean = texto.replace(/```json\\n?/g, '').replace(/```\\n?/g, '').trim();\n\nlet dados;\ntry {\n dados = JSON.parse(clean);\n} catch(e) {\n return [{ json: { fatos_extraidos: texto, erro: true } }];\n}\n\n// Formata os fatos extra\u00eddos de forma compacta para o Call 2\nconst fatosFormatados = dados.noticias.map((n, i) => {\n const fatos = n.fatos.join(' | ');\n const techs = n.tecnologias_mencionadas.length > 0 \n ? ` [Techs: ${n.tecnologias_mencionadas.join(', ')}]` \n : '';\n return `${i+1}. [${n.fonte}] [${n.setor}] ${n.titulo}\\nData: ${n.data} | URL: ${n.url}\\nFatos: ${fatos}${techs}`;\n}).join('\\n\\n');\n\nreturn [{\n json: {\n fatos_extraidos: fatosFormatados,\n noticias_raw: JSON.stringify(dados.noticias),\n total: dados.total\n }\n}];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1456,
-288
],
"id": "710448dd-23c1-4788-9b47-f9b3143c5be9",
"name": "Code in JavaScript3"
},
{
"parameters": {
"promptType": "define",
"text": "=Voc\u00ea \u00e9 um analista s\u00eanior de IA da Inteli Academy. Com base nos fatos concretos extra\u00eddos abaixo, produza um relat\u00f3rio anal\u00edtico profundo em portugu\u00eas.\n\nREGRAS ABSOLUTAS:\n- Use APENAS os fatos fornecidos \u2014 nunca invente dados\n- Seja espec\u00edfico \u2014 cite empresas, valores, modelos e datas reais\n- Proibido frases como \"pode indicar\", \"pode levar\", \"est\u00e1 se tornando\"\n- Substitua opini\u00f5es por an\u00e1lises baseadas em evid\u00eancias concretas\n- Retorne APENAS JSON v\u00e1lido sem markdown\n\nFatos extra\u00eddos das not\u00edcias desta semana:\n{{ $json.fatos_extraidos }}\n\nRetorne neste formato JSON:\n{\n \"relatorio\": {\n \"resumo\": \"## Not\u00edcias Principais\\n\\n[7 not\u00edcias mais relevantes neste formato:]\\n\\n**[N]. [T\u00edtulo]**\\nFonte: [fonte] | Data: [data] | [url]\\n\\nO que aconteceu: [2 frases com fatos concretos, n\u00fameros e nomes espec\u00edficos]\\nPor que importa: [2 frases explicando impacto real para desenvolvedores e empresas \u2014 sem especula\u00e7\u00e3o]\\nContexto t\u00e9cnico: [1 frase t\u00e9cnica sobre a tecnologia ou modelo envolvido]\\n\\n---\",\n \"tendencias\": \"## Tend\u00eancias Emergentes\\n\\n[4 tend\u00eancias com nomes espec\u00edficos e n\u00e3o gen\u00e9ricos:]\\n\\n**[N]. [Nome espec\u00edfico \u2014 ex: 'Corrida por Governan\u00e7a de Agentes Aut\u00f4nomos em Empresas']**\\nEvid\u00eancias: [cite 2-3 fatos concretos das not\u00edcias que comprovam essa tend\u00eancia]\\nAn\u00e1lise: [3-4 frases explicando o mecanismo e o porqu\u00ea dessa tend\u00eancia estar acontecendo agora]\\nImpacto Brasil: [como isso afeta o ecossistema de tecnologia brasileiro]\\nHorizonte: [Curto (0-6m) / M\u00e9dio (6-18m) / Longo (18m+)]\\n\\n---\",\n \"oportunidades\": \"## Oportunidades de Mercado\\n\\n[4 oportunidades concretas:]\\n\\n**[N]. [Nome espec\u00edfico da oportunidade]**\\nSetor: [setor]\\nGatilho: [fato espec\u00edfico das not\u00edcias que abre essa oportunidade]\\nProposta de valor: [o que desenvolver e para quem \u2014 seja espec\u00edfico]\\nModelo de neg\u00f3cio: [como monetizar]\\nBarreira principal: [maior obst\u00e1culo t\u00e9cnico ou de mercado]\\nPotencial: [Alto/M\u00e9dio] \u2014 [justificativa baseada nos fatos]\\n\\n---\"\n },\n \"analytics\": {\n \"tematicas\": [\n {\"nome\": \"IA Generativa\", \"contagem\": 0, \"destaque\": \"fato espec\u00edfico das not\u00edcias\"},\n {\"nome\": \"Agentes de IA\", \"contagem\": 0, \"destaque\": \"fato espec\u00edfico das not\u00edcias\"},\n {\"nome\": \"Seguran\u00e7a em IA\", \"contagem\": 0, \"destaque\": \"fato espec\u00edfico das not\u00edcias\"},\n {\"nome\": \"Infraestrutura de IA\", \"contagem\": 0, \"destaque\": \"fato espec\u00edfico das not\u00edcias\"},\n {\"nome\": \"Vis\u00e3o Computacional\", \"contagem\": 0, \"destaque\": \"fato espec\u00edfico ou N\u00e3o identificado nesta semana\"},\n {\"nome\": \"LLMs e Modelos\", \"contagem\": 0, \"destaque\": \"fato espec\u00edfico das not\u00edcias\"},\n {\"nome\": \"IA nos Neg\u00f3cios\", \"contagem\": 0, \"destaque\": \"fato espec\u00edfico das not\u00edcias\"},\n {\"nome\": \"Regulamenta\u00e7\u00e3o e \u00c9tica\", \"contagem\": 0, \"destaque\": \"fato espec\u00edfico ou N\u00e3o identificado nesta semana\"}\n ],\n \"ias_citadas\": [],\n \"total_noticias\": 0,\n \"tendencia_principal\": \"frase direta com empresa e dado concreto sobre a maior tend\u00eancia desta semana\"\n }\n}\n\nREGRA ias_citadas: Liste TODAS as IAs e ferramentas mencionadas nos fatos no formato {\"nome\": \"nome\", \"contagem\": numero}. Inclua apenas as que aparecem nos fatos fornecidos.",
"batching": {}
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.9,
"position": [
1664,
-288
],
"id": "ba010f0d-9da0-48b6-bfb5-d35d7b9cb434",
"name": "Basic LLM Chain1"
},
{
"parameters": {
"model": "llama-3.3-70b-versatile",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGroq",
"typeVersion": 1,
"position": [
1664,
-128
],
"id": "64245c26-2750-4799-9b32-cd049409a770",
"name": "Groq Chat Model1",
"credentials": {
"groqApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"url": "https://fsbdzxztnabrvfubowac.supabase.co/rest/v1/newsletter_subscribers?ativo=eq.true&select=email",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "apikey",
"value": "<redacted-credential>"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.4,
"position": [
2352,
-288
],
"id": "05014d0d-4afc-4980-9d2e-447a32bf808b",
"name": "HTTP Request1"
},
{
"parameters": {
"jsCode": "const items = $input.all();\n\n// Pega o relat\u00f3rio salvo anteriormente\nconst relatorio = $('Code in JavaScript1').first().json;\n\nconst data = new Date().toLocaleDateString('pt-BR', {\n day: '2-digit', month: 'long', year: 'numeric'\n});\n\n// Fun\u00e7\u00e3o de convers\u00e3o markdown para HTML\nfunction mdToHtml(text) {\n if (!text) return '';\n let html = text\n .replace(/\\\\n/g, '\\n')\n .replace(/\\r\\n/g, '\\n');\n\n html = html.replace(/^## .+\\n?/, '');\n\n html = html.replace(/^\\*\\*(\\d+\\..+?)\\*\\*$/gm,\n `<div style=\"font-family:Georgia,serif;font-size:16px;font-weight:700;font-style:italic;color:#f0f0f0;margin:28px 0 12px;padding-left:14px;border-left:3px solid #00CED1;line-height:1.4;\">$1</div>`);\n\n html = html.replace(/\\*\\*(.*?)\\*\\*/g, '<strong style=\"color:#e0e0e0;font-weight:600;\">$1</strong>');\n\n html = html.replace(/^(Fonte|Data|Setor|Gatilho|Proposta de valor|Modelo de neg\u00f3cio|Barreira principal|Potencial|Evid\u00eancias|An\u00e1lise|Impacto Brasil|Horizonte|Contexto t\u00e9cnico|Por que importa|O que aconteceu|Area|Base|Descricao):\\s*(.+)$/gm,\n `<table cellpadding=\"0\" cellspacing=\"0\" style=\"margin:4px 0;\"><tr><td style=\"font-family:'Helvetica Neue',Arial,sans-serif;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:#00CED1;font-weight:600;white-space:nowrap;padding-right:12px;vertical-align:top;padding-top:2px;min-width:100px;\">$1</td><td style=\"font-size:12px;color:#888;font-weight:300;line-height:1.6;\">$2</td></tr></table>`);\n\n html = html.replace(/(https?:\\/\\/[^\\s<\"]+)/g,\n '<a href=\"$1\" style=\"color:#00CED1;text-decoration:none;font-size:11px;\">\u2197 Ver fonte</a>');\n\n html = html.replace(/^---+$/gm,\n '<div style=\"border-top:1px solid #1e1e1e;margin:28px 0;\"></div>');\n\n const blocks = html.split(/\\n{2,}/);\n html = blocks.map(block => {\n block = block.trim();\n if (!block) return '';\n if (block.startsWith('<div') || block.startsWith('<a') || block.startsWith('<table')) return block;\n const lines = block.split('\\n').filter(l => l.trim());\n if (!lines.length) return '';\n return `<p style=\"font-size:13px;line-height:1.85;color:#888;font-weight:300;margin:8px 0;\">${lines.join('<br>')}</p>`;\n }).join('\\n');\n\n return html;\n}\n\nconst resumoHtml = mdToHtml(relatorio.resumo || '');\nconst tendenciasHtml = mdToHtml(relatorio.tendencias || '');\nconst oportunidadesHtml = mdToHtml(relatorio.oportunidades || '');\n\nconst htmlEmail = `<!DOCTYPE html>\n<html lang=\"pt-BR\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Vector Scouter \u2014 Relat\u00f3rio Semanal de IA</title>\n</head>\n<body style=\"margin:0;padding:0;background:#0a0a0a;font-family:'Helvetica Neue',Arial,sans-serif;\">\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#0a0a0a;padding:40px 20px;\">\n<tr><td align=\"center\">\n<table width=\"640\" cellpadding=\"0\" cellspacing=\"0\">\n <tr><td style=\"border-bottom:1px solid #1e1e1e;padding-bottom:24px;\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n <tr>\n <td style=\"padding-top:24px;\">\n <span style=\"background:#00CED1;color:#0a0a0a;font-size:10px;font-weight:700;letter-spacing:2px;padding:6px 12px;border-radius:4px;\">VS</span>\n <span style=\"font-family:Georgia,serif;font-size:17px;font-style:italic;color:#00CED1;margin-left:12px;\">Vector Scouter</span>\n </td>\n <td align=\"right\" style=\"padding-top:24px;\">\n <span style=\"font-family:'Helvetica Neue',Arial,sans-serif;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:#444;\">${data}</span>\n </td>\n </tr>\n </table>\n </td></tr>\n <tr><td style=\"padding:56px 0 48px;\">\n <div style=\"font-size:9px;letter-spacing:3px;text-transform:uppercase;color:#00CED1;margin-bottom:20px;\">AI Intelligence Hub \u00b7 Inteli Academy</div>\n <h1 style=\"font-family:Georgia,serif;font-size:48px;font-weight:700;font-style:italic;color:#f0f0f0;margin:0 0 20px;line-height:1.05;letter-spacing:-2px;\">O que est\u00e1<br>acontecendo em <span style=\"color:#00CED1;\">IA</span></h1>\n <p style=\"font-size:14px;color:#666;line-height:1.8;margin:0 0 32px;font-weight:300;\">Not\u00edcias, tend\u00eancias e oportunidades no mundo da IA \u2014 curadas automaticamente para quem quer estar \u00e0 frente.</p>\n </td></tr>\n <tr><td style=\"border-top:1px solid #1e1e1e;\"></td></tr>\n <tr><td style=\"padding:48px 0 40px;\">\n <div style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#00CED1;border-left:3px solid #00CED1;padding-left:12px;margin-bottom:32px;\">Not\u00edcias Principais</div>\n ${resumoHtml}\n </td></tr>\n <tr><td style=\"border-top:1px solid #1e1e1e;\"></td></tr>\n <tr><td style=\"padding:48px 0 40px;\">\n <div style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#FFD700;border-left:3px solid #FFD700;padding-left:12px;margin-bottom:32px;\">Tend\u00eancias Emergentes</div>\n ${tendenciasHtml}\n </td></tr>\n <tr><td style=\"border-top:1px solid #1e1e1e;\"></td></tr>\n <tr><td style=\"padding:48px 0 40px;\">\n <div style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#00CED1;border-left:3px solid #00CED1;padding-left:12px;margin-bottom:32px;\">Oportunidades de Mercado</div>\n ${oportunidadesHtml}\n </td></tr>\n <tr><td style=\"padding:0 0 48px;\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#111;border:1px solid #1e1e1e;border-radius:8px;\">\n <tr><td style=\"padding:32px 36px;\">\n <div style=\"font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#00CED1;margin-bottom:12px;\">Explore mais</div>\n <div style=\"font-family:Georgia,serif;font-size:20px;font-style:italic;color:#f0f0f0;margin-bottom:8px;\">RecX Engine & ValidX</div>\n <p style=\"font-size:12px;color:#666;line-height:1.7;margin:0 0 24px;font-weight:300;\">Use o RecX para descobrir oportunidades e o ValidX para validar suas ideias com dados reais.</p>\n <a href=\"http://localhost:5678\" style=\"display:inline-block;background:#00CED1;color:#0a0a0a;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:12px 24px;border-radius:4px;text-decoration:none;\">Acessar plataforma \u2192</a>\n </td></tr>\n </table>\n </td></tr>\n <tr><td style=\"border-top:1px solid #1e1e1e;padding:24px 0;\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n <tr>\n <td><span style=\"font-family:Georgia,serif;font-size:13px;font-style:italic;color:#00CED1;\">Vector Scouter</span>\n <div style=\"font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#333;margin-top:4px;\">The Illuminated Archive \u00b7 Inteli Academy</div></td>\n <td align=\"right\"><span style=\"font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#333;\">Relat\u00f3rio Semanal de IA</span></td>\n </tr>\n </table>\n </td></tr>\n</table>\n</td></tr>\n</table>\n</body>\n</html>`;\n\n// Retorna um item por email cadastrado\nreturn items.map(item => ({\n json: {\n email: item.json.email,\n htmlEmail,\n assunto: `Vector Scouter \u2014 Relat\u00f3rio Semanal de IA \u00b7 ${data}`\n }\n}));"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
2560,
-288
],
"id": "a5101679-cc7a-4fac-8394-b89e85fc4088",
"name": "Code in JavaScript4"
},
{
"parameters": {
"fromEmail": "eduardo.santanna@sou.inteli.edu.br",
"toEmail": "={{ $json.email }}",
"subject": "={{ $json.assunto }}",
"html": "={{ $json.htmlEmail }}",
"options": {}
},
"type": "n8n-nodes-base.emailSend",
"typeVersion": 2.1,
"position": [
2768,
-288
],
"id": "a2506799-e431-4602-9f4d-8e2ef7d0da1d",
"name": "Send an Email",
"credentials": {
"smtp": {
"name": "<your credential>"
}
}
}
],
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "RSS Read",
"type": "main",
"index": 0
},
{
"node": "RSS Read2",
"type": "main",
"index": 0
},
{
"node": "RSS Read1",
"type": "main",
"index": 0
},
{
"node": "RSS Read3",
"type": "main",
"index": 0
},
{
"node": "RSS Read4",
"type": "main",
"index": 0
},
{
"node": "RSS Read5",
"type": "main",
"index": 0
},
{
"node": "RSS Read6",
"type": "main",
"index": 0
}
]
]
},
"RSS Read1": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 5
}
]
]
},
"RSS Read2": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 4
}
]
]
},
"RSS Read5": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"RSS Read4": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 2
}
]
]
},
"RSS Read3": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 3
}
]
]
},
"RSS Read": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 6
}
]
]
},
"RSS Read6": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Code in JavaScript2",
"type": "main",
"index": 0
}
]
]
},
"Groq Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Code in JavaScript": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "Code in JavaScript3",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript1": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript2": {
"main": [
[
{
"node": "Code in JavaScript",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript3": {
"main": [
[
{
"node": "Basic LLM Chain1",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain1": {
"main": [
[
{
"node": "Code in JavaScript1",
"type": "main",
"index": 0
}
]
]
},
"Groq Chat Model1": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain1",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "HTTP Request1",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request1": {
"main": [
[
{
"node": "Code in JavaScript4",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript4": {
"main": [
[
{
"node": "Send an Email",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1",
"binaryMode": "separate"
},
"versionId": "9b316376-6d72-4843-8afb-f3b5763ebb6b",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "42q6aTiGV8g1iToN",
"tags": []
}
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.
groqApismtp
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
AI_News. Uses rssFeedRead, chainLlm, lmChatGroq, httpRequest. Scheduled trigger; 21 nodes.
Source: https://github.com/EduardoJesusTavaresSantAnna/Case-InteliAcademy/blob/aff4d0cf2f0f67c23de01bad1d9bc9033099d350/workflows/AI_News.json — 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.
Scraping Articles Dev.to Prod. Uses itemLists, stickyNote, nocoDb, scheduleTrigger. Scheduled trigger; 44 nodes.
Animal advocates & campaigners who want a weekly briefing on animal-related bills with clear, actionable steps—no manual research needed.
Unlock the power of automation with the Automatically Generate Content and Post to Bluesky with LLM Workflow, an n8n-powered solution that uses Large Language Model (LLM) APIs to create engaging conte
Automate your n8n community job board monitoring with this intelligent workflow that scrapes, analyzes, and delivers opportunities straight to your inbox. Perfect for freelancers, agencies, and develo
뉴스 RSS 수집 및 요약 리포트 자동 발송. Uses rssFeedRead, httpRequest, emailSend. Scheduled trigger; 13 nodes.