This workflow follows the Agent → HTTP Request 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 →
{
"active": false,
"connections": {
"Redis - Busca Respostas": {
"main": [
[
{
"node": "Verifica Pergunta Respondida",
"type": "main",
"index": 0
}
]
]
},
"Verifica Pergunta Respondida": {
"main": [
[
{
"node": "Pergunta Respondida?",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Agente Aurora",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Redis Chat Memory": {
"ai_memory": [
[
{
"node": "Agente Aurora",
"type": "ai_memory",
"index": 0
}
]
]
},
"buscar_eventos": {
"ai_tool": [
[
{
"node": "Agente Aurora",
"type": "ai_tool",
"index": 0
}
]
]
},
"enviar_email": {
"ai_tool": [
[
{
"node": "Agente Aurora",
"type": "ai_tool",
"index": 0
}
]
]
},
"detelar_eventos": {
"ai_tool": [
[
{
"node": "Agente Aurora",
"type": "ai_tool",
"index": 0
}
]
]
},
"criar_eventos": {
"ai_tool": [
[
{
"node": "Agente Aurora",
"type": "ai_tool",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"Validar Dados": {
"main": [
[
{
"node": "Dados V\u00e1lidos?",
"type": "main",
"index": 0
}
]
]
},
"Dados V\u00e1lidos?": {
"main": [
[
{
"node": "Verifica Pergunta Respondida",
"type": "main",
"index": 0
}
],
[
{
"node": "Redis - Busca Respostas",
"type": "main",
"index": 0
}
]
]
},
"Pergunta Respondida?": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
],
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Agente Aurora": {
"main": [
[
{
"node": "Enviar WhatsApp",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "Agente Aurora",
"type": "main",
"index": 0
}
]
]
},
"Code": {
"main": [
[
{
"node": "Validar Dados",
"type": "main",
"index": 0
}
]
]
},
"Enviar WhatsApp": {
"main": [
[
{
"node": "Aurora Esperar Resposta",
"type": "main",
"index": 0
}
]
]
},
"Aurora Esperar Resposta": {
"main": [
[
{
"node": "Agente Aurora",
"type": "main",
"index": 0
}
]
]
}
},
"createdAt": "2025-05-17T02:53:54.967Z",
"id": "MILY1puAqJ03AslU",
"isArchived": false,
"meta": {
"templateCredsSetupCompleted": true
},
"name": "My workflow 15",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "responder-conversa",
"responseMode": "lastNode",
"options": {}
},
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
-200,
0
],
"id": "5c4991e5-3f21-4c9e-8f04-8729806fe869"
},
{
"parameters": {
"jsCode": "const nome = $json.nome?.trim();\nconst email = $json.email?.trim();\nconst telefone = $json.telefone?.replace(/\\D/g, '');\n\n// Ajuste para puxar o sessionId do webhook\nconst sessionId = $json.sessionId || $json.body?.data?.key?.id || null;\n\nconst valido = nome && email.match(/\\S+@\\S+\\.\\S+/) && telefone.length >= 10;\n\nreturn [{\n json: {\n valido,\n sessionId // <-- Aqui voc\u00ea insere o sessionId no retorno\n }\n}];\n"
},
"name": "Validar Dados",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
160,
0
],
"id": "12e660dd-85b0-4ab4-aae1-6fe4b528fb36"
},
{
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ $json.valido }}",
"value2": true
}
]
}
},
"name": "Dados V\u00e1lidos?",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
360,
0
],
"id": "bb7cc09a-6b92-4751-8d11-75b1629119f7"
},
{
"parameters": {
"operation": "get",
"key": "={{ $json.sessionId }}",
"options": {}
},
"name": "Redis - Busca Respostas",
"type": "n8n-nodes-base.redis",
"typeVersion": 1,
"position": [
600,
60
],
"id": "7cbbfe66-425f-4bfa-a969-1da5670bd311",
"credentials": {
"redis": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsCode": "\nconst respostas = $json.respostasAnteriores || {};\nconst perguntaAtual = \"email\";\n\n// Se j\u00e1 respondeu, para o fluxo\nif (respostas[perguntaAtual]) {\n return [{ json: { skip: true, motivo: \"Pergunta j\u00e1 respondida\", resposta: respostas[perguntaAtual] }}];\n}\n\n// Se a \u00faltima mensagem foi enviada pelo bot, trava at\u00e9 o usu\u00e1rio responder\nconst msg = $json.body?.data?.key || $json.data?.key || {};\nconst fromMe = msg.fromMe || $json.body?.data?.key?.fromMe || false;\nif (fromMe) {\n // Trava o fluxo, n\u00e3o deixa seguir enquanto o lead n\u00e3o responder\n return [{ json: { skip: true, motivo: \"Aguardando resposta do lead\" }}];\n}\n\n// S\u00f3 segue se n\u00e3o respondeu e se a mensagem \u00e9 do usu\u00e1rio\nreturn [{ json: { skip: false }}];\n"
},
"name": "Verifica Pergunta Respondida",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
800,
0
],
"id": "9c2c8a46-14c0-49cc-8c7a-16433fc51c28"
},
{
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ $json.skip }}",
"value2": true
}
]
}
},
"name": "Pergunta Respondida?",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
1000,
0
],
"id": "bd40dc50-24ea-4694-bba0-baee0c62c506"
},
{
"parameters": {
"promptType": "define",
"text": "={{ $('Webhook').item.json.body.data.message.conversation }}",
"options": {
"systemMessage": "<systemData>\nData de hoje: {{ $now.weekdayLong }}, {{ $now.format('dd/MM/yyyy') }}, {{ $now.hour.toString().padStart(2, '0') }}:{{ $now.minute.toString().padStart(2, '0') }}\n</systemData>\n\n\n\n<Agent>\nNome: Aurora \nDescri\u00e7\u00e3o: Especialista em atendimento e agendamentos para empresas \nObjetivo: Continuar a conversa com o lead, sem repetir mensagens j\u00e1 enviadas.\n</Agent>\n\n<Instruction>\nVoc\u00ea est\u00e1 em uma conversa via WhatsApp. Sempre continue do ponto onde parou. Se j\u00e1 pediu informa\u00e7\u00f5es, aguarde o cliente responder.\n</Instruction>\n\n\n<Agent>\n\n <Name>Aurora</Name>\n <Description>Especialista em automa\u00e7\u00e3o comercial da AIAgent Automate</Description>\n <Language>Portugu\u00eas Brasileiro</Language>\n\n<Recep\u00e7\u00e3o do Cliente>\nOl\u00e1! Tudo certo? Me chamo Aurora e sou especialista em automa\u00e7\u00e3o comercial da AIAgent Automate \ud83e\udd16. Como posso te ajudar hoje?\n</Recep\u00e7\u00e3o do Cliente>\n\n<CommunicationStyle>\n <style>Consultivo</style>\n <Guide>\n [\n \"Foque sempre em entender o desafio do cliente antes de oferecer uma solu\u00e7\u00e3o.\",\n \"Use exemplos pr\u00e1ticos e linguagem simples, mesmo em contextos t\u00e9cnicos.\",\n \"Mostre empatia e interesse genu\u00edno no crescimento do cliente.\",\n \"Evite termos excessivamente t\u00e9cnicos sem explica\u00e7\u00e3o clara.\",\n \"Seja proativa ao sugerir solu\u00e7\u00f5es com base no que o cliente menciona.\",\n \"Nunca force uma venda; eduque o cliente sobre os benef\u00edcios com base em dados.\",\n \"Sempre ofere\u00e7a uma pr\u00f3xima a\u00e7\u00e3o: agendar reuni\u00e3o, enviar apresenta\u00e7\u00e3o, etc.\",\n \"Evite respostas gen\u00e9ricas. Adapte com base no segmento e no n\u00edvel do cliente.\",\n \"Encerrar sempre perguntando se h\u00e1 mais algo em que pode ajudar.\"\n ]\n </Guide>\n</CommunicationStyle>\n\n<FieldsConfigurator>\n [\n \"Identificar segmento do cliente (ex: sa\u00fade, varejo, servi\u00e7os) para adaptar sugest\u00f5es.\",\n \"Validar se o lead est\u00e1 qualificado (cargo, interesse, momento de compra).\",\n \"Sugest\u00e3o autom\u00e1tica de casos de uso relevantes com base no setor.\",\n \"Monitorar e registrar gatilhos de compra (ex: deseja escalar vendas, reduzir custo etc).\"\n ]\n</FieldsConfigurator>\n\n<Validations>\n <Validation>Validar nome, empresa e e-mail antes de seguir para pr\u00f3xima etapa.</Validation>\n <Validation>Detectar leads duplicados por e-mail e alertar equipe se necess\u00e1rio.</Validation>\n <Validation>Checar se o cliente j\u00e1 \u00e9 da base antes de apresentar solu\u00e7\u00f5es de aquisi\u00e7\u00e3o.</Validation>\n <Validation>Verificar se o cliente entende a proposta de valor da IA antes de agendar reuni\u00e3o.</Validation>\n</Validations>\n\n<Rules>\n <Rule>Se n\u00e3o entender a pergunta do cliente, pe\u00e7a educadamente por mais contexto.</Rule>\n <Rule>Evite afirmar qualquer coisa sem embasamento em dados internos ou depoimentos validados.</Rule>\n <Rule>Jamais compartilhe informa\u00e7\u00f5es internas ou t\u00e9cnicas sens\u00edveis.</Rule>\n <Rule>Se o cliente for rude, mantenha a educa\u00e7\u00e3o e encurte a conversa.</Rule>\n <Rule>Se a conversa for al\u00e9m do escopo da automa\u00e7\u00e3o comercial, encaminhe para um especialista.</Rule>\n <Rule>Evite repetir a mesma informa\u00e7\u00e3o mais de uma vez.</Rule>\n <Rule>Use linguagem acess\u00edvel a tomadores de decis\u00e3o n\u00e3o t\u00e9cnicos.</Rule>\n <Rule>Evite textos longos. Comunica\u00e7\u00e3o objetiva \u00e9 prioridade.</Rule>\n <Rule>Sempre indique um pr\u00f3ximo passo claro no fim da conversa.</Rule>\n <Rule>Se o cliente quiser agendar uma reuni\u00e3o, confirme e colete: nome, e-mail, telefone, cargo, empresa e hor\u00e1rio.</Rule>\n <Rule>O agente s\u00f3 deve continuar a conversa ap\u00f3s o cliente responder no WhatsApp.</Rule>\n</Rules>\n\n<Agents>\n <SDR>\n <Nome>Aurora SDR</Nome>\n <Fun\u00e7\u00e3o>Qualificar leads comerciais com base em interesse, cargo e momento de compra.</Fun\u00e7\u00e3o>\n <Fluxo>\n - Receber o lead\n - Fazer perguntas de qualifica\u00e7\u00e3o (nome, empresa, cargo, desafio)\n - Validar interesse e repassar para agendamento se lead estiver pronto\n </Fluxo>\n </SDR>\n \n <Agendamento>\n <Nome>Aurora Agenda</Nome>\n <Fun\u00e7\u00e3o>Agendar reuni\u00f5es com leads qualificados, considerando fuso hor\u00e1rio de S\u00e3o Paulo (America/Sao_Paulo).</Fun\u00e7\u00e3o>\n <Fluxo>\n - Confirmar interesse do cliente\n - Coletar: nome, e-mail, telefone, cargo, empresa e melhor hor\u00e1rio\n - Confirmar data/hora com timezone correto\n - Encaminhar confirma\u00e7\u00e3o\n </Fluxo>\n </Agendamento>\n</Agents>\n\n<Roteiro>\n```markdown\n# Roteiro de Conversa \u2013 Agente Comercial B2B (Aurora \u2013 AIAgent Automate)\n\n---\n\n## 1. Sauda\u00e7\u00e3o Inicial\n\"Ol\u00e1! Tudo certo? Me chamo Aurora e sou especialista em automa\u00e7\u00e3o comercial da AIAgent Automate \ud83e\udd16. Como posso te ajudar hoje?\"\n\n---\n\n## 2. Diagn\u00f3stico Inicial (SDR)\n\n**Perguntas de qualifica\u00e7\u00e3o (uma de cada vez):**\n- Qual o nome da sua empresa?\n- Qual o seu nome e cargo por l\u00e1?\n- Qual \u00e9 o maior desafio comercial que voc\u00ea enfrenta hoje? (ex: captar leads, qualificar, responder r\u00e1pido, escalar atendimento...)\n- Seu processo de vendas \u00e9 mais B2B ou B2C?\n- Voc\u00ea j\u00e1 utiliza alguma automa\u00e7\u00e3o atualmente?\n\n---\n\n## 3. Apresenta\u00e7\u00e3o de Valor\n\"Entendi! Com a nossa tecnologia de agentes de IA, empresas como a sua conseguem: \n- Reduzir at\u00e9 60% do tempo de resposta \n- Aumentar convers\u00e3o de leads em at\u00e9 40% \n- Operar 24/7 sem sobrecarga humana \nTudo isso com intera\u00e7\u00f5es naturais, integradas a WhatsApp, CRM e muito mais.\"\n\n---\n\n## 4. Proposta de A\u00e7\u00e3o\n\"Se fizer sentido, posso agendar uma reuni\u00e3o r\u00e1pida com um especialista da AIAgent. Pode ser?\"\n\n---\n\n## 5. Agendamento (Agente Agenda)\n\"Perfeito! Para agendar, preciso de algumas informa\u00e7\u00f5es r\u00e1pidas, pode ser?\" \n[Coleta: Nome, Empresa, E-mail, Telefone, Cargo, Melhor Hor\u00e1rio em hor\u00e1rio de S\u00e3o Paulo]\n\n---\n\n## 6. Encerramento\n\"Obrigada pela conversa! Se precisar de algo a mais, \u00e9 s\u00f3 me chamar por aqui. Vamos te ajudar a escalar suas vendas com intelig\u00eancia. \ud83d\ude80\"\n\n---\n\n## 7. Esperar mensagem no WhatsApp antes de seguir a conversa.\n\n\n\nAurora: Continue a conversa sem repetir perguntas."
}
},
"name": "Agente Aurora",
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.6,
"position": [
1420,
0
],
"id": "2b203e53-f916-4e69-8180-5619883d7458"
},
{
"parameters": {
"resource": "messages-api",
"instanceName": "aiagenteautomate@gmail.com",
"remoteJid": "={{ $('Webhook').item.json.body.data.key.remoteJid }}",
"messageText": "={{ $json.output }}",
"options_message": {}
},
"name": "Enviar WhatsApp",
"type": "n8n-nodes-evolution-api.evolutionApi",
"typeVersion": 1,
"position": [
1820,
0
],
"id": "425a5730-daaf-4379-ab14-fdb384734dbd",
"credentials": {
"evolutionApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [
1300,
220
],
"id": "e45a9d90-9a54-4957-b5fc-f45c91f51e2a",
"name": "OpenAI Chat Model",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"contextWindowLength": 10
},
"type": "@n8n/n8n-nodes-langchain.memoryRedisChat",
"typeVersion": 1.5,
"position": [
1420,
220
],
"id": "10f2a324-e686-4b9c-a47a-141eab84b93e",
"name": "Redis Chat Memory",
"credentials": {
"redis": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "# Agendamento",
"height": 80,
"width": 283,
"color": 5
},
"id": "a185641a-9731-42fc-92b1-171a875b1c61",
"name": "Sticky Note15",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1440,
580
]
},
{
"parameters": {
"content": "",
"height": 260,
"width": 660,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"position": [
1420,
400
],
"typeVersion": 1,
"id": "ab2b3ecd-5f99-41f3-aa90-030046bad19b",
"name": "Sticky Note16"
},
{
"parameters": {
"descriptionType": "manual",
"toolDescription": "Use essa ferramenta quando precisar deletar um evento existente, com base no ID do evento\nsempre use o email do cliente para fazer o cancelamento.",
"operation": "delete",
"calendar": {
"__rl": true,
"value": "faelsouz0211@gmail.com",
"mode": "list",
"cachedResultName": "faelsouz0211@gmail.com"
},
"eventId": "={{ $fromAI('id') }}",
"options": {}
},
"id": "a259281e-28ec-4f67-b4c2-dcac9246e12a",
"name": "detelar_eventos",
"type": "n8n-nodes-base.googleCalendarTool",
"typeVersion": 1.2,
"position": [
1780,
440
],
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "getAll",
"calendar": {
"__rl": true,
"value": "faelsouz0211@gmail.com",
"mode": "list",
"cachedResultName": "faelsouz0211@gmail.com"
},
"returnAll": true,
"options": {
"timeMin": "={{ $fromAI('start_date') }}",
"timeMax": "={{ $fromAI('end_date') }}",
"query": "@"
}
},
"id": "fe3b9296-e476-4f6f-8e4a-1e66342d44ac",
"name": "buscar_eventos",
"type": "n8n-nodes-base.googleCalendarTool",
"typeVersion": 1.2,
"position": [
1460,
440
],
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"descriptionType": "manual",
"toolDescription": "Use essa ferramenta para criar o agendamento do cliente,apenas um agendamento por hor\u00e1rio, fa\u00e7a com que exista a consulta de hor\u00e1rio na tool busca_eventos para n\u00e3o agendar dois clientes no mesmo horario.\nApenas uma e-mail de usu\u00e1rio por hor\u00e1rio de atendimento\nEst\u00e1 proibido agendar mais de uma vez.",
"calendar": {
"__rl": true,
"value": "faelsouz0211@gmail.com",
"mode": "list",
"cachedResultName": "faelsouz0211@gmail.com"
},
"start": "= {{ $fromAI('start_time') }}",
"end": "= {{ $fromAI('end_time') }}",
"additionalFields": {
"attendees": [
"={{ $fromAI('email_do_cliente') }}"
],
"color": "3",
"conferenceDataUi": {
"conferenceDataValues": {
"conferenceSolution": "hangoutsMeet"
}
},
"description": "={{ (() => { \n const value = $fromAI('tipo_servico'); \n return value.charAt(0).toUpperCase() + value.slice(1); \n})() }} {{ $fromAI('nome_pet') }} Porte {{ $fromAI('porte') }} ",
"location": "={{ $fromAI('local_evento') }}",
"sendUpdates": "all",
"summary": "={{ (() => { \n const value = $fromAI('tipo_servico'); \n return value.charAt(0).toUpperCase() + value.slice(1); \n})() }}: {{ $fromAI('nome_pet') }} - {{ $fromAI('nome_cliente') }} "
}
},
"id": "952b7119-5105-43a9-8528-1b89297b54a1",
"name": "criar_eventos",
"type": "n8n-nodes-base.googleCalendarTool",
"typeVersion": 1.2,
"position": [
1620,
440
],
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"descriptionType": "manual",
"toolDescription": "Use essa ferramenta para enviar um email para o cliente quando solcitiado e tamb\u00e9m para quando o agendamento for confirmado.",
"sendTo": "={{ $fromAI(\"email\") }}",
"subject": "={{ $fromAI(\"Titulo\",\"coloque aqui o titulo do email.\") }}",
"emailType": "text",
"message": "={{ $fromAI(\"texto\",\"coloque aqui os dados resumidos da conversa ou do agendamento, ex: nome, email, telefone, data\") }}",
"options": {
"appendAttribution": false,
"senderName": "Enviado pela ",
"replyTo": "n8nlabz@gmail.com"
}
},
"id": "285d2931-006b-4b82-84bd-f417c54bd417",
"name": "enviar_email",
"type": "n8n-nodes-base.gmailTool",
"typeVersion": 2.1,
"position": [
1940,
440
],
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "aa8ccc69-878c-499d-9666-f1c1535ad43c",
"name": "sessionId",
"value": "={{ $('Validar Dados').item.json.sessionId }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
1160,
0
],
"id": "0bfe900e-e02f-4c41-a3ce-ff4b9cc4606a",
"name": "Edit Fields"
},
{
"parameters": {
"jsCode": "const msg = $json.body?.data?.key || $json.data?.key || {};\nconst fromMe = msg.fromMe || false;\n\n// Captura da mensagem de texto (primeiro contato do lead)\nconst conversation =\n $json.body?.data?.message?.conversation ||\n $json.body?.data?.message?.extendedTextMessage?.text ||\n $json.message?.conversation ||\n '';\n\n// Pega sessionId do caminho esperado (pode ser ajustado se necess\u00e1rio)\nconst sessionId = msg.id || $json.sessionId || $json.body?.data?.key?.id || '';\n\n// S\u00f3 segue se N\u00c3O for mensagem do bot E se existe texto enviado pelo lead\nif (fromMe || !conversation || conversation.trim() === '') {\n return [];\n}\n\nreturn [{\n json: {\n ...$json,\n sessionId,\n conversation // opcional, mant\u00e9m o texto para uso posterior\n }\n}];\n"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
0,
0
],
"id": "146ae3e5-e133-448d-8237-045540377281",
"name": "Code"
},
{
"parameters": {
"amount": 1.2
},
"name": "Aurora Esperar Resposta",
"type": "n8n-nodes-base.wait",
"typeVersion": 1,
"position": [
2040,
0
],
"id": "213687d9-9a67-4b0d-94e0-659280ce814f"
}
],
"repo_name": "backup-n8n",
"repo_owner": "faelsou",
"repo_path": "backups/",
"settings": {
"executionOrder": "v1"
},
"staticData": null,
"tags": [],
"triggerCount": 1,
"updatedAt": "2025-05-19T04:09:39.414Z",
"versionId": "d5364939-c0be-4cea-80c3-e825d5956f7c"
}
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.
openAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
This workflow receives data via webhook and uses an AI agent with OpenAI to process it intelligently before sending structured results to WordPress. It is designed for teams that need to automate content updates or data enrichment from external sources without manual intervention. The agent draws on conversation memory to maintain context across multiple steps, ensuring coherent outputs even when inputs are complex.
Use it for recurring tasks such as syncing external feeds into WordPress posts or pages. Avoid it if you need fully deterministic outputs without AI variability, or if your data volumes exceed what a single agent call can reliably handle. A common variation replaces the WordPress node with another destination like email or a database table.
About this workflow
My workflow 15. Uses httpRequest, memoryBufferWindow, agent, lmChatOpenAi. Webhook trigger; 74 nodes.
Source: https://github.com/yarendmr/n8n-ai-content-agent-workflow/blob/14c2a468490a5943e8172cdd2ea3339e02694af4/workflows/ai_content_generation_workflow.template.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.
VEP WAPP. Uses openAi, lmChatOpenAi, toolCalculator, agent. Webhook trigger; 100 nodes.
Aura-bot. Uses postgres, lmChatOpenAi, memoryBufferWindow, httpRequest. Webhook trigger; 82 nodes.
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
This workflow transforms WhatsApp into a powerful personal AI using n8n + Green-API. Send text or voice messages — the assistant understands intent and handles daily tasks automatically. 💰 Expense & i
This workflow is designed for professionals, companies, and agencies that want to automate competitive analysis based on public reviews and opinions found on the Internet. It is especially useful for: