{"id":"Bt1LHfbHbncXHHXJ","meta":{"instanceId":"9c91f344ca0a1903b9d8d8bcaf5c11d941562f50b721699ee9fde4c5598c4343","templateCredsSetupCompleted":true},"name":"N8N - Crie uma Newsletter com n8n","tags":[],"nodes":[{"id":"21452877-e5e2-496e-a546-98d5f2652b3d","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[-944,80],"parameters":{"rule":{"interval":[{"field":"weeks"}]}},"typeVersion":1.2},{"id":"535cff36-fcb5-4030-85e2-fcf22d3f6f87","name":"Initial Research","type":"@tavily/n8n-nodes-tavily.tavily","position":[-544,80],"parameters":{"query":"Auto Makers: Curso de adoção de IA para pequenas empresas","options":{"topic":"news","time_range":"week","max_results":5}},"credentials":{"tavilyApi":{"id":"gnxzzRFbDAofUj8z","name":"Tavily account"}},"typeVersion":1},{"id":"55591355-32e4-4687-87f6-71f7b1e435cd","name":"Structured Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-176,272],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"required\": [\"title\", \"topics\"],\n  \"properties\": {\n    \"title\": {\n      \"type\": \"string\",\n      \"description\": \"A short, descriptive title\"\n    },\n    \"topics\": {\n      \"type\": \"array\",\n      \"description\": \"An array of exactly three topics\",\n      \"minItems\": 3,\n      \"maxItems\": 3,\n      \"items\": {\n        \"type\": \"string\"\n      }\n    }\n  },\n  \"additionalProperties\": false\n}"},"typeVersion":1.3},{"id":"0a64dadb-daa9-4294-b5dd-9a7a6ec09ab3","name":"Split Out","type":"n8n-nodes-base.splitOut","position":[32,80],"parameters":{"options":{},"fieldToSplitOut":"output.topics"},"typeVersion":1},{"id":"509d1d15-b1a9-4dcb-810a-020f75ae2153","name":"Research Topics","type":"@tavily/n8n-nodes-tavily.tavily","position":[240,80],"parameters":{"query":"={{ $json['output.topics'] }}","options":{"time_range":"month","include_raw_content":true}},"credentials":{"tavilyApi":{"id":"gnxzzRFbDAofUj8z","name":"Tavily account"}},"typeVersion":1},{"id":"2909be4d-7630-46e7-b8ac-f1915b6bc537","name":"Section Writer Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[368,80],"parameters":{"text":"=Topic: {{ $json.query }}\n\nResearch:\n{{ $json.results.map(item => JSON.stringify(item, null, 2)).join('\\n\\n') }}\n","options":{"systemMessage":"=# Visão Geral\nVocê é um redator profissional de seções de newsletter. Sua única tarefa é escrever uma seção independente de uma newsletter.\n\n## Instruções\n- Sempre inclua um título claro da seção, seguido pelo conteúdo da seção.\n- Não escreva um título geral, introdução ou conclusão.\n- Use um tom profissional, especializado e envolvente, adequado para uma newsletter de negócios.\n- Se fizer referência a fatos, dados ou citações, deve citar suas fontes e fornecer URLs clicáveis reais.\n- Não invente citações — inclua apenas fontes reais e verificáveis.\n-Mantenha a seção concisa, bem estruturada e de leitura fácil."},"promptType":"define"},"typeVersion":2.2},{"id":"12e1e8a1-42ff-4ef5-ad94-0dd930094ac2","name":"Aggregate","type":"n8n-nodes-base.aggregate","position":[704,80],"parameters":{"options":{},"fieldsToAggregate":{"fieldToAggregate":[{"fieldToAggregate":"output"}]}},"typeVersion":1},{"id":"e4948e12-e908-4666-a576-0453bbb0b97f","name":"Editor Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[832,80],"parameters":{"text":"=Title: {{ $('Planning Agent').item.json.output.title }}\n\nSections: {{ $json.output.join(\"\\n\\n\\n\") }}\n","options":{"systemMessage":"=# Visão Geral\nVocê é um editor especialista de newsletters. Sua tarefa é unir exatamente três seções fornecidas em um corpo de e-mail HTML coeso, com uma introdução e conclusão integradas.\nMantenha um tom profissional, conciso e adequado para um público de negócios, preservando o significado original.\n\n## Objetivos\n- Melhorar clareza, fluxo e consistência entre todas as seções.\n- Manter o conteúdo total em até 1000 palavras (limite rígido).\n- Evitar informações desnecessárias.\n\n## Estrutura (somente HTML)\n1) <p> Introdução contextualizando os três tópicos e sua relevância, referenciando a data de hoje: {{ $now.format('yyyy-MM-dd') }}.\n2) Para cada seção fornecida:\n<h2> Usar ou ajustar levemente o título existente.\n<p> Conteúdo editado.\nCitações clicáveis e inline, próximas das afirmações correspondentes, usando <a href=\"https://...\">Fonte</a>.\n3) <h3>Sources</h3><ul> Lista consolidada de fontes:\nCada item: <li><a href=\"[URL]\">[Nome da Publicação] – [Título do Artigo]</a></li>\nIncluir URLs completos, remover duplicatas e ordenar alfabeticamente pelo nome da publicação.\n4) <p> Conclusão que conecta os temas e apresenta implicações ou próximos passos.\n\n## Regras de Citação e Links\nToda afirmação baseada em informação externa deve ter um link real e verificável.\nPreservar quaisquer citações fornecidas, padronizando no formato <a>.\nOmitir links não verificáveis em vez de inventar.\nUsar apenas as tags básicas de HTML: <h2>, <h3>, <p>, <ul>, <li>, <a>.\n❌ Sem imagens, scripts, estilos ou CSS externo.\n\n## Entrada\nVocê receberá três seções. Edite e integre-as sem adicionar tópicos não relacionados.\n\n## Formato de Saída (retornar somente isto)\nSubject: Uma linha de assunto clara e específica (≤ 80 caracteres)\n\nContent:\n[Somente corpo em HTML conforme especificado acima]"},"promptType":"define","hasOutputParser":true},"typeVersion":2.2},{"id":"01ae1be0-8292-4160-b34e-94f2ad613125","name":"Structured Output Parser1","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[384,272],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"subject\": {\n      \"type\": \"string\",\n      \"description\": \"the email subject\"\n    },\n    \"content\": {\n      \"type\": \"string\",\n      \"description\": \"the newsletter content\"\n    }\n  },\n  \"required\": [\"subject\", \"content\"]\n}\n"},"typeVersion":1.3},{"id":"10f443a1-e327-4709-adae-96810dc217e4","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-1040,-240],"parameters":{"color":7,"width":320,"height":464,"content":"## Etapa 1 - Agendamento\n\n### Objetivo\nIniciar o fluxo de forma autônoma, garantindo que a newsletter seja gerada em intervalos regulares (ex: semanalmente).\n\n### Configuração \nEx: Defina o Schedule Trigger para rodar 1x por semana — idealmente aos domingos, à meia-noite."},"typeVersion":1},{"id":"b84650b7-0062-433e-9591-280ee50a6eef","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-704,-240],"parameters":{"color":5,"width":416,"height":464,"content":"## Etapa 2 - Pesquisa Inicial\n\n### Objetivo\nBuscar as notícias mais recentes sobre um tema amplo, que servirá de base para toda a edição da newsletter.\n\n### Configuração\n- ⚠️**Cadastrar a credencial da Tavily API**⚠️\n- **[Use esse link para criar a sua conta](https://www.tavily.com/)**\n- No node Tavily, insira a query inicial (exemplo: “Adoção de IA para pequenas empresas”).\n\n\n"},"typeVersion":1},{"id":"ecfe73e0-0c45-4bb7-8299-096ed9ad1cd4","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-272,-240],"parameters":{"color":4,"width":448,"height":464,"content":"## Etapa 3 - Gerar o título e os tópicos\n\n### Objetivo\nGerar um título criativo e três tópicos centrais que orientarão o restante da newsletter.\n\n### Configuração\n- ⚠️[**Cadastrar a credencial da OpenAI**](https://openai.com/)⚠️\n- Selecionar o modelo que você quer usar (Ex: gpt 4.1 mini)"},"typeVersion":1},{"id":"055e0dca-8d16-4adc-9e8f-faea210dafc8","name":"Planning Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-240,80],"parameters":{"text":"={{ $json.results.map(item => JSON.stringify(item, null, 2)).join('\\n\\n') }}\n","options":{"systemMessage":"=# Visão Geral\nVocê é um especialista em planejamento de newsletters. Receberá três artigos da semana passada. Sua tarefa é criar um título criativo e divertido e definir os principais tópicos dessa edição da newsletter.\n\n## Instruções\nA newsletter deve ter um fluxo agradável, parecer informativa e coesa.\nOs tópicos devem conter de 3 a 5 palavras."},"promptType":"define","hasOutputParser":true},"typeVersion":2.2},{"id":"ca3f1641-b43e-456f-a820-b415047c866d","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[192,-240],"parameters":{"color":6,"width":448,"height":464,"content":"## Etapa 4 - Escrever as sessões da newsletter\n\n### Objetivo\nGerar automaticamente as três seções da newsletter, com base nos tópicos definidos pelo agente anterior.\n\n### Configuração\n- ⚠️[**Cadastrar a credencial da OpenAI**](https://openai.com/)⚠️\n- Selecionar o modelo que você quer usar (Ex: gpt 4.1 mini)"},"typeVersion":1},{"id":"48ee4531-2564-4df6-8843-4f3d4fbe5c87","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[-272,240],"parameters":{"color":7,"width":832,"content":""},"typeVersion":1},{"id":"511ae006-5192-430f-b848-9f03af22cfb0","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[1120,-240],"parameters":{"width":352,"height":464,"content":"## Etapa 6 - Enviar a newsletter\n\n### Objetivo\nEnviar automaticamente a newsletter final para o e-mail configurado, completando o ciclo de automação.\n\n### Configuração\n- ⚠️[**Cadastrar a credencial do Google**](https://cloud.google.com/)⚠️"},"typeVersion":1},{"id":"20ce0499-189d-4b95-b7c6-1df6d3b40ece","name":"OpenAI","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[192,272],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4.1-mini"},"options":{}},"credentials":{"openAiApi":{"id":"DGiJskc3q9u4zezt","name":"OpenAi account Yuri"}},"typeVersion":1.2},{"id":"6b59f1da-fae7-469a-ac32-5463f05be9a7","name":"OpenAI ","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[16,272],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4.1-mini"},"options":{}},"credentials":{"openAiApi":{"id":"DGiJskc3q9u4zezt","name":"OpenAi account Yuri"}},"typeVersion":1.2},{"id":"aeb11f4f-d845-4356-abcd-af78ec44affb","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[656,-240],"parameters":{"color":2,"width":448,"height":464,"content":"## Etapa 5 - Edição final da newsletter\n\n### Objetivo\nUnir todas as seções geradas e transformá-las em um texto único, com introdução, conclusão e lista de fontes.\n\n### Configuração\n- ⚠️[**Cadastrar a credencial da OpenAI**](https://openai.com/)⚠️\n- Selecionar o modelo que você quer usar (Ex: gpt 4.1 mini)\n"},"typeVersion":1},{"id":"8c3998f2-8858-4fd1-8b83-6e543e38c3cc","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1504,-240],"parameters":{"color":4,"width":448,"height":592,"content":"## 🌐 Como criar sua conta e credencial na Tavily\n\nA Tavily é o mecanismo de pesquisa usado pelo fluxo para buscar notícias e conteúdos atualizados.\nAntes de rodar sua automação, você precisa criar uma conta e gerar a credencial da API.\n\n## 🪄 Passo a passo\n\n1. **Acesse o site oficial: https://www.tavily.com**\n\n2. **Clique em “Get API Key” (ou Sign up free se ainda não tiver conta).**\n\n3. **Faça login com seu e-mail ou GitHub.**\n\n4. No painel da Tavily, copie sua chave de API (API Key).**\n\n5. **No n8n, vá em Credenciais → Nova Credencial → Tavily API.**\n\n5. **Cole a chave copiada no campo API Key e clique em Salvar.**\n"},"typeVersion":1},{"id":"a85059bc-8a2f-4e3b-a704-509a6e5b2a72","name":"Send a message","type":"n8n-nodes-base.gmail","position":[1248,80],"webhookId":"631942e2-3370-4f03-a546-94e4a3a87b55","parameters":{"sendTo":"y.silva.17y@gmail.com","message":"={{ $json.output.content }}","options":{},"subject":"={{ $json.output.subject }}"},"credentials":{"gmailOAuth2":{"id":"ypMgfUN73vXbG6PH","name":"Gmail account 2"}},"typeVersion":2.1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"49d76026-8036-4314-99e3-317c39d0f846","connections":{"OpenAI":{"ai_languageModel":[[{"node":"Editor Agent","type":"ai_languageModel","index":0}]]},"OpenAI ":{"ai_languageModel":[[{"node":"Planning Agent","type":"ai_languageModel","index":0},{"node":"Section Writer Agent","type":"ai_languageModel","index":0}]]},"Aggregate":{"main":[[{"node":"Editor Agent","type":"main","index":0}]]},"Split Out":{"main":[[{"node":"Research Topics","type":"main","index":0}]]},"Editor Agent":{"main":[[{"node":"Send a message","type":"main","index":0}]]},"Planning Agent":{"main":[[{"node":"Split Out","type":"main","index":0}]]},"Research Topics":{"main":[[{"node":"Section Writer Agent","type":"main","index":0}]]},"Initial Research":{"main":[[{"node":"Planning Agent","type":"main","index":0}]]},"Schedule Trigger":{"main":[[{"node":"Initial Research","type":"main","index":0}]]},"Section Writer Agent":{"main":[[{"node":"Aggregate","type":"main","index":0}]]},"Structured Output Parser":{"ai_outputParser":[[{"node":"Planning Agent","type":"ai_outputParser","index":0}]]},"Structured Output Parser1":{"ai_outputParser":[[{"node":"Editor Agent","type":"ai_outputParser","index":0}]]}}}