Generar contenido SEO desde una hoja de cálculo de tendencias a un almacenamiento (SharePoint/Drive/Dropbox)
Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 47 nodos.Utiliza principalmente nodos como If, Set, Code, Wait, Gmail. Usar GPT-4o, FAL AI y soporte multi-almacenamiento para generar automáticamente contenido SEO a partir de tendencias
- •Cuenta de Google y credenciales de API de Gmail
- •Punto final de HTTP Webhook (n8n generará automáticamente)
- •Pueden requerirse credenciales de autenticación para la API de destino
- •Clave de API de OpenAI
Nodos utilizados (47)
Categoría
{
"id": "J5BZO9ezilMiswH7",
"meta": {
"instanceId": "2cf742429c2e3ee4e5a20069d3d8a75208519303b864f026a79464efa726bd95",
"templateCredsSetupCompleted": true
},
"name": "Generate SEO content from trends spreadsheet to storage (SharePoint/Drive/Dropbox)",
"tags": [
{
"id": "wpMIpESnBZpdPCpj",
"name": "Marketing",
"createdAt": "2025-06-03T11:38:37.020Z",
"updatedAt": "2025-06-03T11:38:37.020Z"
}
],
"nodes": [
{
"id": "5a9c11b3-a0d8-419f-a447-828ca7908f0a",
"name": "Leer datos de tendencias",
"type": "n8n-nodes-base.spreadsheetFile",
"position": [
-4288,
-2048
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "9988898b-23ab-4b37-8bc2-76a97f96c669",
"name": "Seleccionar tema de tendencias",
"type": "n8n-nodes-base.code",
"position": [
-4016,
-2048
],
"parameters": {
"jsCode": "// Get all trends from the spreadsheet\nconst trends = $('Read Trends Data').all().map(item => item.json.Trend).filter(trend => trend);\n\n// Random selection\nconst randomTopic = trends[Math.floor(Math.random() * trends.length)];\n\n// For cyclic selection, you could implement a counter mechanism\n// This is a simplified version using random selection\n\nreturn {\n json: {\n Selected_Topic: randomTopic,\n Available_Trends: trends,\n Selection_Method: 'Random'\n }\n};"
},
"typeVersion": 1
},
{
"id": "362b5cd0-5253-4ffe-84dc-d1c286977b7d",
"name": "Construir boletín",
"type": "n8n-nodes-base.code",
"position": [
-2608,
-2512
],
"parameters": {
"jsCode": "// Get the raw AI output (string with possible markdown)\nlet rawOutput = $node[\"Prepare Newsletter Data\"].json.output;\n\n// Strip markdown code block if present (```json ... ```)\nrawOutput = rawOutput.replace(/```json|```/g, '').trim();\n\n// Parse cleaned JSON string\nconst aiContent = JSON.parse(rawOutput);\n\n// Get template and selected topic\nconst templateContent = $node[\"Extract from Text File\"].json.data;\nconst selectedTopic = $json.Selected_Topic || 'Thema fehlt';\n\n// Helper for safe replacements\nconst getSafe = (obj, key) => obj?.[key] ?? 'undefined';\n\n// Replace placeholders for German content\nlet newsletterContent = templateContent;\nnewsletterContent = newsletterContent.replace(/\\{\\{INTRODUCTION_DE\\}\\}/g, getSafe(aiContent, 'INTRODUCTION_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TOPIC_DE\\}\\}/g, getSafe(aiContent, 'TOPIC_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{DESCRIPTION_DE\\}\\}/g, getSafe(aiContent, 'DESCRIPTION_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TEASER1_DE\\}\\}/g, getSafe(aiContent, 'TEASER1_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TEASER2_DE\\}\\}/g, getSafe(aiContent, 'TEASER2_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TEASER3_DE\\}\\}/g, getSafe(aiContent, 'TEASER3_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{CTA_DE\\}\\}/g, getSafe(aiContent, 'CTA_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{FOOTER_TEXT_DE\\}\\}/g, getSafe(aiContent, 'FOOTER_TEXT_DE'));\nnewsletterContent = newsletterContent.replace(/\\{\\{FOOTER_NAME_DE\\}\\}/g, getSafe(aiContent, 'FOOTER_NAME_DE'));\n\n// Replace placeholders for English content\nnewsletterContent = newsletterContent.replace(/\\{\\{TOPIC_TITLE_EN\\}\\}/g, getSafe(aiContent, 'TOPIC_TITLE_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{INTRODUCTION_EN\\}\\}/g, getSafe(aiContent, 'INTRODUCTION_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TOPIC_EN\\}\\}/g, getSafe(aiContent, 'TOPIC_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{DESCRIPTION_EN\\}\\}/g, getSafe(aiContent, 'DESCRIPTION_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TEASER1_EN\\}\\}/g, getSafe(aiContent, 'TEASER1_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TEASER2_EN\\}\\}/g, getSafe(aiContent, 'TEASER2_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{TEASER3_EN\\}\\}/g, getSafe(aiContent, 'TEASER3_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{CTA_EN\\}\\}/g, getSafe(aiContent, 'CTA_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{FOOTER_TEXT_EN\\}\\}/g, getSafe(aiContent, 'FOOTER_TEXT_EN'));\nnewsletterContent = newsletterContent.replace(/\\{\\{FOOTER_NAME_EN\\}\\}/g, getSafe(aiContent, 'FOOTER_NAME_EN'));\n\n// Add date if needed (you can add this to template if required)\nnewsletterContent = newsletterContent.replace(/\\{\\{DATE\\}\\}/g, new Date().toLocaleDateString('de-DE'));\n\n// Return final output\nreturn {\n json: {\n newsletter_content: newsletterContent,\n topic: selectedTopic,\n topic_de: getSafe(aiContent, 'TOPIC_DE'),\n topic_en: getSafe(aiContent, 'TOPIC_EN'),\n generated_date: new Date().toISOString(),\n // Include all generated content for debugging/reference\n ai_content: aiContent\n }\n}; "
},
"typeVersion": 1
},
{
"id": "7e3d41de-6fdd-4b7d-8e56-2f967108dad2",
"name": "Verificar estado de aprobación",
"type": "n8n-nodes-base.if",
"position": [
624,
-2144
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.data.approved }}",
"value2": "true",
"operation": "contains"
}
]
}
},
"typeVersion": 1
},
{
"id": "85b0946e-4df0-43e5-9615-020b326b85c0",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-3424,
-2320
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "E4PFATctY0kV00hl",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "dca2ef6d-5179-46a4-b916-5f2bfcf79d1e",
"name": "Obtener XLSX de tendencias",
"type": "n8n-nodes-base.microsoftSharePoint",
"position": [
-4512,
-2048
],
"parameters": {
"file": {
"__rl": true,
"mode": "list",
"value": "01M45PWA7UGSM3K5CVPFDYJROPHJOTUYP5",
"cachedResultName": "social-media-trends.xls"
},
"site": {
"__rl": true,
"mode": "list",
"value": "plemeo.sharepoint.com,f304c34c-1252-4b99-a852-059c2036c718,c3bf26ab-bf44-4334-8e5b-e8b680bb9e1d",
"cachedResultName": "plemeo"
},
"folder": {
"__rl": true,
"mode": "list",
"value": "01M45PWAZCILJ3WHMIXBGZA2UP2JMQ5CXO",
"cachedResultName": "Newsletter Workflow"
},
"requestOptions": {}
},
"credentials": {
"microsoftSharePointOAuth2Api": {
"id": "jZkLTQXyVEzxtmp3",
"name": "Microsoft SharePoint account"
}
},
"typeVersion": 1
},
{
"id": "c8d706a3-3bad-4686-a712-350b49314935",
"name": "Obtener plantilla de boletín",
"type": "n8n-nodes-base.microsoftSharePoint",
"position": [
-3024,
-2512
],
"parameters": {
"file": {
"__rl": true,
"mode": "list",
"value": "01M45PWAZJXIV2AOHITFCL5DPA4QV764XS",
"cachedResultName": "newsletter_template.html"
},
"site": {
"__rl": true,
"mode": "list",
"value": "plemeo.sharepoint.com,f304c34c-1252-4b99-a852-059c2036c718,c3bf26ab-bf44-4334-8e5b-e8b680bb9e1d",
"cachedResultName": "plemeo"
},
"folder": {
"__rl": true,
"mode": "list",
"value": "01M45PWAZCILJ3WHMIXBGZA2UP2JMQ5CXO",
"cachedResultName": "Newsletter Workflow"
},
"requestOptions": {}
},
"credentials": {
"microsoftSharePointOAuth2Api": {
"id": "jZkLTQXyVEzxtmp3",
"name": "Microsoft SharePoint account"
}
},
"typeVersion": 1
},
{
"id": "d1466c51-eb0b-4994-ac1a-e234821de281",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
-2688,
-1760
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0de41f03-c4cc-45d8-bb11-0458995cdb2d",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $('Configuration Settings').first().json.ENV_INCLUDE_VIDEO }}",
"rightValue": "true"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "9ebba67d-70fb-4fcd-b62a-5ea6d97a0a3c",
"operator": {
"type": "boolean",
"operation": "false",
"singleValue": true
},
"leftValue": "={{ $('Configuration Settings').first().json.ENV_INCLUDE_VIDEO }}",
"rightValue": "false"
}
]
}
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "0b9a10a8-c84a-47ba-bd8f-0d01d86f013f",
"name": "Obtener video",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-1824,
-1824
],
"parameters": {
"url": "=https://queue.fal.run/fal-ai/kling-video/requests/{{ $('Create FAL Video').item.json.request_id }}",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "logs",
"value": "true"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Key {{ $('Configuration Settings').first().json.ENV_FALAI_APIKEY }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "db8e8f18-f2d8-476f-ac83-b365aa67451c",
"name": "Crear video FAL",
"type": "n8n-nodes-base.httpRequest",
"position": [
-2320,
-1760
],
"parameters": {
"url": "https://queue.fal.run/fal-ai/kling-video/v2/master/image-to-video",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "prompt",
"value": "={{ $('Parse Fields').item.json.video_prompt }}"
},
{
"name": "image_url",
"value": "={{ $('Switch').item.json.downloadUrl }}"
},
{
"name": "duration",
"value": "={{ $('Configuration Settings').first().json.ENV_FALAI_VIDEO_DURATION }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Key {{ $('Configuration Settings').first().json.ENV_FALAI_APIKEY }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "2a729954-8812-473e-a0be-0c9399a4c454",
"name": "Crear audio",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1376,
-1760
],
"parameters": {
"url": "https://queue.fal.run/fal-ai/lyria2",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "prompt",
"value": "={{ $('Parse Fields').item.json.audio_prompt }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Key {{ $('Configuration Settings').first().json.ENV_FALAI_APIKEY }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "6984c8c5-0f4c-4881-85fd-782b848ca5f6",
"name": "Esperar por audio",
"type": "n8n-nodes-base.wait",
"position": [
-1152,
-1760
],
"webhookId": "ddffe40c-99fa-4a7d-a626-902d8dd363d9",
"parameters": {
"amount": 59
},
"typeVersion": 1.1
},
{
"id": "a172b117-221e-4707-a213-f70397e70418",
"name": "Obtener audio",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-944,
-1824
],
"parameters": {
"url": "=https://queue.fal.run/fal-ai/lyria2/requests/{{ $('Create Audio').item.json.request_id }}",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Key {{ $('Configuration Settings').first().json.ENV_FALAI_APIKEY }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "f4b95592-3803-4dca-a41d-71bd20746cb4",
"name": "Crear solicitud de fusión",
"type": "n8n-nodes-base.httpRequest",
"position": [
-496,
-1760
],
"parameters": {
"url": "https://queue.fal.run/fal-ai/ffmpeg-api/merge-audio-video",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "video_url",
"value": "={{ $('Get Video').first().json.video.url }}"
},
{
"name": "audio_url",
"value": "={{ $json.audio.url }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Key {{ $('Configuration Settings').first().json.ENV_FALAI_APIKEY }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "f419cf55-ca78-4beb-b62d-910e1db9e841",
"name": "Esperar por fusión",
"type": "n8n-nodes-base.wait",
"position": [
-272,
-1760
],
"webhookId": "ffb62d76-30ac-49b9-a29e-f2ff100522b9",
"parameters": {
"amount": 50
},
"typeVersion": 1.1
},
{
"id": "336374fa-8e2d-4402-b152-d68fc407a885",
"name": "Obtener video fusionado",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-64,
-1760
],
"parameters": {
"url": "=https://queue.fal.run/fal-ai/ffmpeg-api/requests/{{ $('Create Merge Request').item.json.request_id }}",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Key {{ $('Configuration Settings').first().json.ENV_FALAI_APIKEY }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "d4449512-70d3-4856-b5fc-606b7b505ff0",
"name": "Merge1",
"type": "n8n-nodes-base.merge",
"position": [
128,
-2192
],
"parameters": {
"mode": "combine",
"options": {
"includeUnpaired": true
},
"combineBy": "combineByPosition",
"numberInputs": 5
},
"typeVersion": 3
},
{
"id": "90347ce0-1238-448d-abf2-96ecb228b8e0",
"name": "Configuración de ajustes",
"type": "n8n-nodes-base.set",
"position": [
-4752,
-2048
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e7c84a97-6018-4a2d-a4fa-e7565c5cd063",
"name": "ENV_FALAI_VIDEO_DURATION",
"type": "string",
"value": "={{ $json.video_duration }}"
},
{
"id": "431d7768-f55f-4ea8-b5db-0ca5f90b87ae",
"name": "ENV_APPROVER_EMAIL",
"type": "string",
"value": "test@mail.com"
},
{
"id": "5b27d8be-cf58-481d-bf03-7298f532a250",
"name": "ENV_USECASE",
"type": "string",
"value": "={{ $json.usecase }}"
},
{
"id": "f59f8ef5-853f-4457-a3e1-458f270d1955",
"name": "ENV_INCLUDE_VIDEO",
"type": "boolean",
"value": "={{ $json.include_video }}"
},
{
"id": "aef0d1ef-731d-4b18-b144-c810e33295fe",
"name": "ENV_FALAI_APIKEY",
"type": "string",
"value": "<YOUR_API_KEY>"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5a58eb7e-1993-4a8e-9d66-53b33b3d11de",
"name": "OpenAI Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-3408,
-1856
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "chatgpt-4o-latest"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "E4PFATctY0kV00hl",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "fdb7ef7c-f900-4374-b65e-eb14f5c9f4a6",
"name": "Generar prompt de video y audio",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-3392,
-2064
],
"parameters": {
"text": "=You are a Social Media Content Creator. The goal is to create a video, audio and image that will get posted along with a blog text as a blog post to the website.\nCreate a Prompt for video generation, audio generation and image generation that is in line with the usecase and the topic. The prompt should be maximum 1 sentence (short to medium length). The image should not contain any text or images that have text in it (i.e. computer screen with text). The image prompt should maximum have 110 characters.\n\n** USE-CASE ***\n{{ $('Configuration Settings').first().json.ENV_USECASE }}\n\n** BLOG POST TOPIC ***\n{{ $('Select Topic from Trends').first().json.Selected_Topic }}\n\nOutput the 3 fields in a json format with \"video_prompt\" and \"audio_prompt\" and \"image _prompt\".",
"options": {},
"promptType": "define"
},
"typeVersion": 2
},
{
"id": "0639f081-0402-4534-b448-d23e45032037",
"name": "Determinar intención",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-5392,
-2048
],
"parameters": {
"text": "=Please extract 3 fields out of the following query. Respond with a valid JSON object.\n1) \"usecase\" - string\n2) \"include_video\" - boolean, if not determined \"false\"\n3) \"video_duration\" - string, if not determined \"5\". If user wants more than 5, set it to \"10\". Possible values: either \"5\" or \"10\". If the user wants less than 5, set it to \"5\".\n\n** USER QUERY ***\n{{$('Receive Request').first().json.body.text }}\n",
"options": {},
"promptType": "define"
},
"typeVersion": 2
},
{
"id": "a6f8688e-95a7-4169-9224-682762a8372b",
"name": "OpenAI Chat Model2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-5312,
-1824
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "chatgpt-4o-latest"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "E4PFATctY0kV00hl",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "aa3ab2ba-e08b-49cf-ac57-3789107435c2",
"name": "Analizar campos",
"type": "n8n-nodes-base.code",
"position": [
-3024,
-2064
],
"parameters": {
"jsCode": "const item = $input.first();\nlet raw = item.json.output;\n\n// Remove markdown code block wrapper if present\nraw = raw.replace(/```json\\s*|\\s*```/g, \"\");\n\n// Now parse as JSON\nconst prompts = JSON.parse(raw);\n\n// Assign as fields\nitem.json.video_prompt = prompts.video_prompt;\nitem.json.audio_prompt = prompts.audio_prompt;\nitem.json.image_prompt = prompts.image_prompt;\n// Create random 8-character filename\nitem.json.random_filename = Math.random().toString(36).substring(2, 10);\n\nreturn [item];\n"
},
"typeVersion": 2
},
{
"id": "38f5414a-7e8b-4350-8c15-474d44453602",
"name": "Analizar campos de intención",
"type": "n8n-nodes-base.code",
"position": [
-4992,
-2048
],
"parameters": {
"jsCode": "const item = $input.first();\nlet raw = item.json.output;\n\n// Remove markdown code block wrapper if present\nraw = raw.replace(/```json\\s*|\\s*```/g, \"\");\n\n// Now parse as JSON\nconst prompts = JSON.parse(raw);\n\n// Assign as fields\nitem.json.usecase = prompts.usecase;\nitem.json.include_video = prompts.include_video;\nitem.json.video_duration = prompts.video_duration;\n\nreturn [item];\n"
},
"typeVersion": 2
},
{
"id": "50c07304-8521-43f7-9e0c-16fe48ed90e2",
"name": "HTML a binario",
"type": "n8n-nodes-base.code",
"position": [
832,
-2144
],
"parameters": {
"jsCode": "// Convert HTML content into binary buffer\nconst html = $('Build Newsletter').first().json.newsletter_content;\nconst fileName = \"test\"\n\nreturn [{\n binary: {\n data: {\n data: Buffer.from(html, 'utf8'),\n mimeType: \"text/html\",\n fileName: `${fileName}.html`\n }\n }\n}];\n"
},
"typeVersion": 2
},
{
"id": "da4da730-32f9-47e8-92a8-2ad2651376eb",
"name": "TXT a binario",
"type": "n8n-nodes-base.code",
"position": [
2048,
-2144
],
"parameters": {
"jsCode": "const url = $('Get Merged Video').first().json.video.url;\nconst fileName = \"video_url\";\n\nreturn [{\n binary: {\n data: {\n data: Buffer.from(url, 'utf8'),\n mimeType: \"text/plain\", // ✅ correct MIME type for .txt\n fileName: `${fileName}.txt`\n }\n }\n}];\n"
},
"typeVersion": 2
},
{
"id": "ac207979-019c-47fe-a7a1-d53d70afbb35",
"name": "JPG a binario",
"type": "n8n-nodes-base.code",
"position": [
1280,
-2144
],
"parameters": {
"jsCode": "const source = $('Generate Image').first();\n\nreturn [{\n binary: {\n data: source.binary.data\n }\n}];\n"
},
"typeVersion": 2
},
{
"id": "c8684458-4bb9-45ee-af72-adea5b174168",
"name": "Guardar URL de video si existe",
"type": "n8n-nodes-base.if",
"position": [
1760,
-2128
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "21f6961e-0671-4a85-bddf-939dab2e8cb0",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $('Configuration Settings').first().json.ENV_INCLUDE_VIDEO }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "cdbc12f2-d5f3-4236-a136-b8259f3d12ee",
"name": "Subir HTML",
"type": "n8n-nodes-base.microsoftSharePoint",
"position": [
1056,
-2144
],
"parameters": {
"site": {
"__rl": true,
"mode": "list",
"value": "plemeo.sharepoint.com,f304c34c-1252-4b99-a852-059c2036c718,c3bf26ab-bf44-4334-8e5b-e8b680bb9e1d",
"cachedResultName": "plemeo"
},
"folder": {
"__rl": true,
"mode": "list",
"value": "01M45PWA2FV7FHIIDJBFFLKUYMZUSLERBQ",
"cachedResultName": "SEO Workflow"
},
"fileName": "=/{{ $('Parse Fields').first().json.random_filename }}.html",
"operation": "upload",
"fileContents": "=data",
"requestOptions": {}
},
"credentials": {
"microsoftSharePointOAuth2Api": {
"id": "jZkLTQXyVEzxtmp3",
"name": "Microsoft SharePoint account"
}
},
"typeVersion": 1
},
{
"id": "270a6ba6-83cd-45fd-a733-7799f787b244",
"name": "Subir JPG",
"type": "n8n-nodes-base.microsoftSharePoint",
"position": [
1504,
-2144
],
"parameters": {
"site": {
"__rl": true,
"mode": "list",
"value": "plemeo.sharepoint.com,f304c34c-1252-4b99-a852-059c2036c718,c3bf26ab-bf44-4334-8e5b-e8b680bb9e1d",
"cachedResultName": "plemeo"
},
"folder": {
"__rl": true,
"mode": "list",
"value": "01M45PWA2FV7FHIIDJBFFLKUYMZUSLERBQ",
"cachedResultName": "SEO Workflow"
},
"fileName": "=/{{ $('Parse Fields').first().json.random_filename }}.jpg",
"operation": "upload",
"fileContents": "=data",
"requestOptions": {}
},
"credentials": {
"microsoftSharePointOAuth2Api": {
"id": "jZkLTQXyVEzxtmp3",
"name": "Microsoft SharePoint account"
}
},
"typeVersion": 1
},
{
"id": "61ea58e5-8cf7-40fe-b67b-1f7faa81dcf3",
"name": "Subir URL de video",
"type": "n8n-nodes-base.microsoftSharePoint",
"position": [
2304,
-2144
],
"parameters": {
"site": {
"__rl": true,
"mode": "list",
"value": "plemeo.sharepoint.com,f304c34c-1252-4b99-a852-059c2036c718,c3bf26ab-bf44-4334-8e5b-e8b680bb9e1d",
"cachedResultName": "plemeo"
},
"folder": {
"__rl": true,
"mode": "list",
"value": "01M45PWA2FV7FHIIDJBFFLKUYMZUSLERBQ",
"cachedResultName": "SEO Workflow"
},
"fileName": "={{ $('Parse Fields').first().json.random_filename }}.txt",
"operation": "upload",
"fileContents": "=data",
"requestOptions": {}
},
"credentials": {
"microsoftSharePointOAuth2Api": {
"id": "jZkLTQXyVEzxtmp3",
"name": "Microsoft SharePoint account"
}
},
"typeVersion": 1
},
{
"id": "9ae9a529-370b-4d2d-acb8-ad3e3f1d3913",
"name": "Enviar mensaje y esperar respuesta",
"type": "n8n-nodes-base.gmail",
"position": [
400,
-2144
],
"webhookId": "28fef477-06b8-4ddf-b656-23e09ba021f5",
"parameters": {
"sendTo": "={{$('Configuration Settings').first().json.ENV_APPROVER_EMAIL}}",
"message": "={{ $json.newsletter_content }}\n\n<div style=\"margin-top:32px; text-align:center;\">\n <img src=\"{{ $('Switch').item.json.downloadUrl }}\" style=\"max-width:100%; height:auto;\">\n</div>\n\n\n{{ $json.video?.url ? `\n <div style=\"margin-top:24px; text-align:center;\">\n <a href=\"${$json.video.url}\" target=\"_blank\" style=\"font-size:18px; color:#1276d3;\">\n ▶ Watch Video\n </a>\n </div>\n` : '' }}\n",
"options": {},
"subject": "SEO Content Approval",
"operation": "sendAndWait",
"approvalOptions": {
"values": {
"approvalType": "double"
}
}
},
"credentials": {
"gmailOAuth2": {
"id": "fBvSTCpGJatuzJAy",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "c3910d9b-81af-40c2-a0ef-e7953c265d9f",
"name": "Establecer campo Base64",
"type": "n8n-nodes-base.set",
"position": [
-2512,
-2064
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "7ba2499f-53d2-4f5c-9a4a-ee8b61a97d5b",
"name": "base64",
"type": "string",
"value": "={{ $('Generate Image').item.binary.data.data }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "efeefb3f-4856-4136-a230-af280b346468",
"name": "Convertir Base64 a archivo",
"type": "n8n-nodes-base.convertToFile",
"position": [
-2288,
-2064
],
"parameters": {
"options": {},
"operation": "toBinary",
"sourceProperty": "base64"
},
"typeVersion": 1.1
},
{
"id": "e493b67f-360c-464c-a8b7-dae374751da7",
"name": "Recibir solicitud",
"type": "n8n-nodes-base.webhook",
"position": [
-5616,
-2048
],
"webhookId": "ff9c853e-f76e-4722-ba37-433ad1750e6b",
"parameters": {
"path": "ff9c853e-f76e-4722-ba37-433ad1750e6b",
"options": {
"rawBody": true
},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "ef936c7c-c40d-450c-9dda-5cf55dac2027",
"name": "Preparar datos del boletín",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-3408,
-2512
],
"parameters": {
"text": "=You are a marketing copywriter tasked with creating content for a B2B newsletter on the topic: \"{{ $('Select Topic from Trends').first().json.Selected_Topic }}\".\n\nThe newsletter template uses the following structure for BOTH German and English versions:\n\n**German Content:**\n- {INTRODUCTION_DE}: A 2–3 sentence engaging intro that outlines why the topic is relevant now\n- {TOPIC_DE}: The main topic/headline for the section (max. 8 words)\n- {DESCRIPTION_DE}: A detailed description of what's new or important about this topic (3-4 sentences)\n- {TEASER1_DE}, {TEASER2_DE}, {TEASER3_DE}: Three highlight points showcasing key benefits, insights, or developments (1-2 sentences each)\n- {CTA_DE}: A compelling call-to-action encouraging engagement (max. 20 words)\n- {FOOTER_TEXT_DE}: Professional closing message (1-2 sentences)\n- {FOOTER_NAME_DE}: Sender name/signature\n\n**English Content:**\n- {TOPIC_TITLE_EN}: Main newsletter title in English (max. 8 words)\n- {INTRODUCTION_EN}: English version of the engaging intro (2–3 sentences)\n- {TOPIC_EN}: English version of the main topic/headline (max. 8 words)\n- {DESCRIPTION_EN}: English version of the detailed description (3-4 sentences)\n- {TEASER1_EN}, {TEASER2_EN}, {TEASER3_EN}: English versions of the three highlight points (1-2 sentences each)\n- {CTA_EN}: English version of the call-to-action (max. 20 words)\n- {FOOTER_TEXT_EN}: English version of professional closing message (1-2 sentences)\n- {FOOTER_NAME_EN}: English version sender name/signature\n\nTone: professional but accessible, informative, slightly optimistic \nAudience: decision-makers and professionals in marketing, tech, and innovation roles \nCompany Context: plemeo.ai (AI-powered marketing solutions)\n\nPlease return the result as structured JSON in this format:\n\n```json\n{\n \"INTRODUCTION_DE\": \"\",\n \"TOPIC_DE\": \"\",\n \"DESCRIPTION_DE\": \"\",\n \"TEASER1_DE\": \"\",\n \"TEASER2_DE\": \"\",\n \"TEASER3_DE\": \"\",\n \"CTA_DE\": \"\",\n \"FOOTER_TEXT_DE\": \"\",\n \"FOOTER_NAME_DE\": \"\",\n \"TOPIC_TITLE_EN\": \"\",\n \"INTRODUCTION_EN\": \"\",\n \"TOPIC_EN\": \"\",\n \"DESCRIPTION_EN\": \"\",\n \"TEASER1_EN\": \"\",\n \"TEASER2_EN\": \"\",\n \"TEASER3_EN\": \"\",\n \"CTA_EN\": \"\",\n \"FOOTER_TEXT_EN\": \"\",\n \"FOOTER_NAME_EN\": \"\"\n}\n```",
"options": {},
"promptType": "define"
},
"typeVersion": 2
},
{
"id": "b20d69ab-97c5-4a2e-9926-77252b735ab3",
"name": "Extraer de archivo de texto",
"type": "n8n-nodes-base.extractFromFile",
"position": [
-2816,
-2512
],
"parameters": {
"options": {},
"operation": "text"
},
"typeVersion": 1
},
{
"id": "3a93f461-3ad3-4cd3-923c-4e04e1b8fd92",
"name": "Generar imagen",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueErrorOutput",
"maxTries": 5,
"position": [
-2800,
-2064
],
"parameters": {
"url": "=https://image.pollinations.ai/prompt/{{ $json.image_prompt.replaceAll(' ','-').replaceAll(',','').replaceAll('.','').slice(0,100) }}?width=1080&height=1350&model=flux&nologo=true",
"options": {}
},
"retryOnFail": true,
"typeVersion": 4.2
},
{
"id": "5cfef6a7-5f21-4493-89df-c699bf927116",
"name": "Enviar datos al servicio de descarga",
"type": "n8n-nodes-base.httpRequest",
"position": [
-2944,
-1760
],
"parameters": {
"url": "https://operator.velvetsyndicate.de:8090/api/upload-image",
"method": "POST",
"options": {
"allowUnauthorizedCerts": true
},
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "image",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "83cc9e0a-71cc-43a2-97d2-ecb92aca6fa0",
"name": "Esperar por video",
"type": "n8n-nodes-base.wait",
"position": [
-2032,
-1760
],
"webhookId": "153655c9-2cb6-4f82-a497-7233abc21b04",
"parameters": {
"amount": 30
},
"typeVersion": 1.1
},
{
"id": "a4149035-a9f4-4d19-ac57-49b5bac89ed6",
"name": "Video aún procesando",
"type": "n8n-nodes-base.if",
"position": [
-1600,
-1760
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ab7cdeb1-40bf-4cc0-bfe6-ccf9a7ee1d1d",
"operator": {
"type": "boolean",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.error.name.toBoolean() }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "23060783-5d2f-4a2e-89fc-3138f0c8d681",
"name": "Audio aún procesando",
"type": "n8n-nodes-base.if",
"position": [
-720,
-1760
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "4369b67d-7975-419a-84b2-acfe4e78bc28",
"operator": {
"type": "boolean",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.error.name.toBoolean() }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "8c4e8075-1c2f-4fa2-a1ab-f858ff9bc426",
"name": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-4912,
-2432
],
"parameters": {
"width": 496,
"height": 288,
"content": "### Trends Input Branch \n**What it does** \n• Downloads a trends spreadsheet from SharePoint. \n• Randomly selects one trending topic for content generation.\n\n**Credentials needed** \nMicrosoft SharePoint OAuth2 (for **Get Trends XLSX**).\n\n**User tweaks** \n• Change the spreadsheet file location in **Get Trends XLSX**. \n• Modify selection logic in **Select Topic from Trends** (currently random; could be weighted, chronological, etc.)."
},
"typeVersion": 1
},
{
"id": "ff1a4101-c39d-418d-a6e4-9f893dabed74",
"name": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3408,
-3008
],
"parameters": {
"width": 592,
"height": 368,
"content": "### Newsletter Template Branch \n**What it does** \n• Downloads your HTML template from SharePoint. \n• **Extract from Text File → Build Newsletter** replaces placeholders with AI-generated content.\n\n**Credentials needed** \nMicrosoft SharePoint OAuth2 (for **Get Newsletter Template**).\n\n**User must provide** \n• Your own HTML template with these exact placeholders: \n `{{INTRODUCTION_DE}} {{TOPIC_DE}} {{DESCRIPTION_DE}} {{TEASER1_DE}} {{TEASER2_DE}} {{TEASER3_DE}} {{CTA_DE}} {{FOOTER_TEXT_DE}} {{FOOTER_NAME_DE}} {{TOPIC_TITLE_EN}} {{INTRODUCTION_EN}} {{TOPIC_EN}} {{DESCRIPTION_EN}} {{TEASER1_EN}} {{TEASER2_EN}} {{TEASER3_EN}} {{CTA_EN}} {{FOOTER_TEXT_EN}} {{FOOTER_NAME_EN}}` \n• Upload this template to the SharePoint folder referenced in **Get Newsletter Template**."
},
"typeVersion": 1
},
{
"id": "a0ac2239-2eae-4100-bb03-99b8365a038e",
"name": "Nota adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3856,
-1696
],
"parameters": {
"width": 688,
"height": 288,
"content": "### Image Assets Branch \n**What it does** \n• Uses Pollinations AI to create a 1080 × 1350 image from the AI-generated `image_prompt`. \n• Converts to binary and uploads to Velvet Syndicate (optional CDN).\n\n**Credentials needed** \nNone (Pollinations & Velvet accept unauthenticated requests).\n\n**User tweaks** \n• Edit the prompt in **Generate Video and Audio Prompt** to change image style. \n• Replace Velvet Syndicate URL in **Send Data to Download Service** if using another CDN."
},
"typeVersion": 1
},
{
"id": "93b1ab5a-e522-48b0-9208-41bda43cfb7b",
"name": "Nota adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2688,
-1488
],
"parameters": {
"width": 624,
"height": 304,
"content": "### Video Assets Branch \n**What it does** \n• **FAL AI (kling-video)** creates a short video from the generated image. \n• **FAL AI (lyria2)** generates background music. \n• FFmpeg API merges video + audio → returns a public `video.url`.\n\n**Credentials needed** \n`ENV_FALAI_APIKEY` (stored in **Configuration Settings**).\n\n**User tweaks** \n• Set `include_video` and `video_duration` via webhook request. \n• Edit `video_prompt` & `audio_prompt` generation in **Generate Video and Audio Prompt**."
},
"typeVersion": 1
},
{
"id": "65ebb1ee-baa2-4dae-a780-f3a0b51836e0",
"name": "Nota adhesiva4",
"type": "n8n-nodes-base.stickyNote",
"position": [
832,
-1952
],
"parameters": {
"width": 608,
"height": 272,
"content": "### Storage Branch \n**What it does** \n• Converts newsletter HTML, generated JPG, and video URL into binary files. \n• Uploads all three files to SharePoint (or your chosen storage).\n\n**Credentials needed** \nMicrosoft SharePoint OAuth2 (for all three **Upload …** nodes).\n\n**User tweaks** \n• Change target folder IDs in each upload node. \n• Replace SharePoint nodes with Google Drive, Dropbox, S3, etc. \n• Modify filename pattern (currently `${random_filename}.html/.jpg/.txt`)."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "18a250cb-ac2d-4101-a49a-400be7b37f7f",
"connections": {
"d4449512-70d3-4856-b5fc-606b7b505ff0": {
"main": [
[
{
"node": "9ae9a529-370b-4d2d-acb8-ad3e3f1d3913",
"type": "main",
"index": 0
}
]
]
},
"d1466c51-eb0b-4994-ac1a-e234821de281": {
"main": [
[
{
"node": "db8e8f18-f2d8-476f-ac83-b365aa67451c",
"type": "main",
"index": 0
}
],
[
{
"node": "d4449512-70d3-4856-b5fc-606b7b505ff0",
"type": "main",
"index": 0
}
]
]
},
"a172b117-221e-4707-a213-f70397e70418": {
"main": [
[
{
"node": "23060783-5d2f-4a2e-89fc-3138f0c8d681",
"type": "main",
"index": 0
}
]
]
},
"0b9a10a8-c84a-47ba-bd8f-0d01d86f013f": {
"main": [
[
{
"node": "a4149035-a9f4-4d19-ac57-49b5bac89ed6",
"type": "main",
"index": 0
}
]
]
},
"270a6ba6-83cd-45fd-a733-7799f787b244": {
"main": [
[
{
"node": "c8684458-4bb9-45ee-af72-adea5b174168",
"type": "main",
"index": 0
}
]
]
},
"cdbc12f2-d5f3-4236-a136-b8259f3d12ee": {
"main": [
[
{
"node": "ac207979-019c-47fe-a7a1-d53d70afbb35",
"type": "main",
"index": 0
}
]
]
},
"2a729954-8812-473e-a0be-0c9399a4c454": {
"main": [
[
{
"node": "6984c8c5-0f4c-4881-85fd-782b848ca5f6",
"type": "main",
"index": 0
}
]
]
},
"aa3ab2ba-e08b-49cf-ac57-3789107435c2": {
"main": [
[
{
"node": "3a93f461-3ad3-4cd3-923c-4e04e1b8fd92",
"type": "main",
"index": 0
}
]
]
},
"ac207979-019c-47fe-a7a1-d53d70afbb35": {
"main": [
[
{
"node": "270a6ba6-83cd-45fd-a733-7799f787b244",
"type": "main",
"index": 0
}
]
]
},
"da4da730-32f9-47e8-92a8-2ad2651376eb": {
"main": [
[
{
"node": "61ea58e5-8cf7-40fe-b67b-1f7faa81dcf3",
"type": "main",
"index": 0
}
]
]
},
"3a93f461-3ad3-4cd3-923c-4e04e1b8fd92": {
"main": [
[
{
"node": "c3910d9b-81af-40c2-a0ef-e7953c265d9f",
"type": "main",
"index": 0
}
],
[]
]
},
"50c07304-8521-43f7-9e0c-16fe48ed90e2": {
"main": [
[
{
"node": "cdbc12f2-d5f3-4236-a136-b8259f3d12ee",
"type": "main",
"index": 0
}
]
]
},
"83cc9e0a-71cc-43a2-97d2-ecb92aca6fa0": {
"main": [
[
{
"node": "0b9a10a8-c84a-47ba-bd8f-0d01d86f013f",
"type": "main",
"index": 0
}
]
]
},
"6984c8c5-0f4c-4881-85fd-782b848ca5f6": {
"main": [
[
{
"node": "a172b117-221e-4707-a213-f70397e70418",
"type": "main",
"index": 0
}
]
]
},
"f419cf55-ca78-4beb-b62d-910e1db9e841": {
"main": [
[
{
"node": "336374fa-8e2d-4402-b152-d68fc407a885",
"type": "main",
"index": 0
}
]
]
},
"dca2ef6d-5179-46a4-b916-5f2bfcf79d1e": {
"main": [
[
{
"node": "5a9c11b3-a0d8-419f-a447-828ca7908f0a",
"type": "main",
"index": 0
}
]
]
},
"e493b67f-360c-464c-a8b7-dae374751da7": {
"main": [
[
{
"node": "0639f081-0402-4534-b448-d23e45032037",
"type": "main",
"index": 0
}
]
]
},
"362b5cd0-5253-4ffe-84dc-d1c286977b7d": {
"main": [
[
{
"node": "d4449512-70d3-4856-b5fc-606b7b505ff0",
"type": "main",
"index": 4
}
]
]
},
"db8e8f18-f2d8-476f-ac83-b365aa67451c": {
"main": [
[
{
"node": "83cc9e0a-71cc-43a2-97d2-ecb92aca6fa0",
"type": "main",
"index": 0
}
]
]
},
"0639f081-0402-4534-b448-d23e45032037": {
"main": [
[
{
"node": "38f5414a-7e8b-4350-8c15-474d44453602",
"type": "main",
"index": 0
}
]
]
},
"336374fa-8e2d-4402-b152-d68fc407a885": {
"main": [
[
{
"node": "d4449512-70d3-4856-b5fc-606b7b505ff0",
"type": "main",
"index": 3
}
]
]
},
"5a9c11b3-a0d8-419f-a447-828ca7908f0a": {
"main": [
[
{
"node": "9988898b-23ab-4b37-8bc2-76a97f96c669",
"type": "main",
"index": 0
}
]
]
},
"c3910d9b-81af-40c2-a0ef-e7953c265d9f": {
"main": [
[
{
"node": "efeefb3f-4856-4136-a230-af280b346468",
"type": "main",
"index": 0
}
]
]
},
"61ea58e5-8cf7-40fe-b67b-1f7faa81dcf3": {
"main": [
[]
]
},
"85b0946e-4df0-43e5-9615-020b326b85c0": {
"ai_languageModel": [
[
{
"node": "ef936c7c-c40d-450c-9dda-5cf55dac2027",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"5a58eb7e-1993-4a8e-9d66-53b33b3d11de": {
"ai_languageModel": [
[
{
"node": "fdb7ef7c-f900-4374-b65e-eb14f5c9f4a6",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"a6f8688e-95a7-4169-9224-682762a8372b": {
"ai_languageModel": [
[
{
"node": "0639f081-0402-4534-b448-d23e45032037",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"38f5414a-7e8b-4350-8c15-474d44453602": {
"main": [
[
{
"node": "90347ce0-1238-448d-abf2-96ecb228b8e0",
"type": "main",
"index": 0
}
]
]
},
"f4b95592-3803-4dca-a41d-71bd20746cb4": {
"main": [
[
{
"node": "f419cf55-ca78-4beb-b62d-910e1db9e841",
"type": "main",
"index": 0
}
]
]
},
"7e3d41de-6fdd-4b7d-8e56-2f967108dad2": {
"main": [
[
{
"node": "50c07304-8521-43f7-9e0c-16fe48ed90e2",
"type": "main",
"index": 0
}
],
[]
]
},
"23060783-5d2f-4a2e-89fc-3138f0c8d681": {
"main": [
[
{
"node": "6984c8c5-0f4c-4881-85fd-782b848ca5f6",
"type": "main",
"index": 0
}
],
[
{
"node": "f4b95592-3803-4dca-a41d-71bd20746cb4",
"type": "main",
"index": 0
}
]
]
},
"90347ce0-1238-448d-abf2-96ecb228b8e0": {
"main": [
[
{
"node": "dca2ef6d-5179-46a4-b916-5f2bfcf79d1e",
"type": "main",
"index": 0
}
]
]
},
"efeefb3f-4856-4136-a230-af280b346468": {
"main": [
[
{
"node": "d4449512-70d3-4856-b5fc-606b7b505ff0",
"type": "main",
"index": 1
},
{
"node": "d4449512-70d3-4856-b5fc-606b7b505ff0",
"type": "main",
"index": 2
},
{
"node": "5cfef6a7-5f21-4493-89df-c699bf927116",
"type": "main",
"index": 0
}
]
]
},
"b20d69ab-97c5-4a2e-9926-77252b735ab3": {
"main": [
[
{
"node": "362b5cd0-5253-4ffe-84dc-d1c286977b7d",
"type": "main",
"index": 0
}
]
]
},
"a4149035-a9f4-4d19-ac57-49b5bac89ed6": {
"main": [
[
{
"node": "83cc9e0a-71cc-43a2-97d2-ecb92aca6fa0",
"type": "main",
"index": 0
}
],
[
{
"node": "2a729954-8812-473e-a0be-0c9399a4c454",
"type": "main",
"index": 0
}
]
]
},
"c8d706a3-3bad-4686-a712-350b49314935": {
"main": [
[
{
"node": "b20d69ab-97c5-4a2e-9926-77252b735ab3",
"type": "main",
"index": 0
}
]
]
},
"ef936c7c-c40d-450c-9dda-5cf55dac2027": {
"main": [
[
{
"node": "c8d706a3-3bad-4686-a712-350b49314935",
"type": "main",
"index": 0
}
]
]
},
"c8684458-4bb9-45ee-af72-adea5b174168": {
"main": [
[
{
"node": "da4da730-32f9-47e8-92a8-2ad2651376eb",
"type": "main",
"index": 0
}
]
]
},
"9988898b-23ab-4b37-8bc2-76a97f96c669": {
"main": [
[
{
"node": "ef936c7c-c40d-450c-9dda-5cf55dac2027",
"type": "main",
"index": 0
},
{
"node": "fdb7ef7c-f900-4374-b65e-eb14f5c9f4a6",
"type": "main",
"index": 0
}
]
]
},
"5cfef6a7-5f21-4493-89df-c699bf927116": {
"main": [
[
{
"node": "d1466c51-eb0b-4994-ac1a-e234821de281",
"type": "main",
"index": 0
}
]
]
},
"fdb7ef7c-f900-4374-b65e-eb14f5c9f4a6": {
"main": [
[
{
"node": "aa3ab2ba-e08b-49cf-ac57-3789107435c2",
"type": "main",
"index": 0
}
]
]
},
"9ae9a529-370b-4d2d-acb8-ad3e3f1d3913": {
"main": [
[
{
"node": "7e3d41de-6fdd-4b7d-8e56-2f967108dad2",
"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 - Creación de contenido, IA Multimodal
¿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
plemeo
@plemeoCompartir este flujo de trabajo