블로그 게시물: 생태계 트렌드
고급
이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 19개의 노드를 포함합니다.주로 If, Code, Wait, HttpRequest, GoogleSheets 등의 노드를 사용하며. Perplexity, GPT, Leonardo 및 WordPress를 사용하여 SEO 블로그 게시물 자동 생성
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
- •OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "OcdRRO25OfTnrILJ",
"meta": {
"instanceId": "d97a35efa9230ba825e389dcf8247ce5a77a88f4113df9825ba41d6ce9398085",
"templateId": "4352",
"templateCredsSetupCompleted": true
},
"name": "Blog Post : Tendencias Ecosistema",
"tags": [],
"nodes": [
{
"id": "cc9b1e41-aaeb-43fb-a283-e3faf397cc73",
"name": "스케줄 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1480,
610
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 6 * * 1"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "01d0a3b7-66db-4032-b7d7-7a7b273920a7",
"name": "주제 연구 - Perplexity",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1260,
610
],
"parameters": {
"url": "https://api.perplexity.ai/chat/completions",
"method": "POST",
"options": {},
"jsonBody": "={\n \"model\": \"sonar-pro\",\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"Eres un asistente experto en generar artículos SEO en español neutro sobre startups tecnológicas. El tono debe ser educativo, práctico, reflexivo e inspirador.\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Redacta un artículo basado en la tendencia más relevante del ecosistema de startups tecnológicas hispanohablantes del día.\\n\\nDevuelve la respuesta estrictamente en formato JSON con esta estructura:\\n{\\n \\\"title\\\": \\\"[título atractivo en una sola línea]\\\",\\n \\\"content\\\": \\\"[cuerpo del artículo en HTML limpio, sin caracteres escapados, sin markdown, sin saltos \\\\n, y sin comentarios externos. Usar solo etiquetas estándar de HTML como <p>, <h2>, <ul>, <li>, <strong> y <em>. No uses etiquetas personalizadas ni scripts.]\\\"\\n}\\n\\nEl artículo debe:\\n- Tener entre 1000 y 1500 palabras.\\n- Incluir subtítulos usando <h2>.\\n- Iniciar con un gancho atractivo de máximo 3 frases dentro de <p>.\\n- Incluir al menos 2 datos estadísticos actuales con fuente (en texto).\\n- Ofrecer mínimo 3 consejos útiles, en formato de lista con <ul> y <li>.\\n- Terminar con una reflexión motivadora e invitación a sumarse a la comunidad (sin enlaces).\\n- Usar naturalmente palabras clave como: startups tecnológicas, innovación, emprendimiento, inversión, comunidad.\\n\\nNo agregues ningún texto ni explicación fuera del objeto JSON.\"\n }\n ]\n}\n",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "perplexityApi"
},
"credentials": {
"perplexityApi": {
"id": "mq8RUNimEAzTbApC",
"name": "Perplexity account"
},
"httpHeaderAuth": {
"id": "nXLy55sVzgMHDbHR",
"name": "Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "f70d8187-0f57-4680-8155-420d060536f0",
"name": "Wordpress에 게시물 생성",
"type": "n8n-nodes-base.httpRequest",
"position": [
860,
760
],
"parameters": {
"url": "https://cristiantala.com/wp-json/wp/v2/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"title\": \"{{ $('Get Title, Content, and Image FileName').item.json.title }}\",\n \"content\": \"{{ $('Get Title, Content, and Image FileName').item.json.content }}\",\n \"status\": \"publish\",\n \"categories\": [\n 916\n ],\n \"featured_media\": {{ $('Upload Image to Wordpress').item.json.id }}\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpBasicAuth"
},
"credentials": {
"httpBasicAuth": {
"id": "atshoATHWCYP6uAv",
"name": "WP CTala"
}
},
"retryOnFail": true,
"typeVersion": 4.2
},
{
"id": "b306aff7-c8b0-4bf7-9eb1-d8eeee45da6e",
"name": "모델에 메시지 보내기",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-820,
610
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "GPT-4.1-MINI"
},
"options": {},
"messages": {
"values": [
{
"content": "=Generate a single-line English description of an editorial-style image to visually represent the following article.\n\nThe image must follow these rules:\n- Cinematic, editorial look (not cartoonish or abstract).\n- No visible text or logos.\n- Must work for a blog post featured image in Google News and Discover (ideal size: 1200x628 px).\n- The article title is: \"{{ $json.title }}\"\n- Article content: {{ $json.content }}.\n\nOutput just the English prompt, without quotes or formatting."
},
{
"role": "system",
"content": "You are an expert in crafting AI image generation prompts for editorial and news images. You help generate cinematic, editorial-style prompts for blog images that perform well in Google News and Google Discover. Avoid any text or logos in the result."
}
]
}
},
"credentials": {
"openAiApi": {
"id": "gaxCelkF84KGUr4n",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "e3786cd7-baac-4e9e-bd45-63ec3b5cfd5e",
"name": "Wordpress에 이미지 업로드",
"type": "n8n-nodes-base.httpRequest",
"position": [
420,
760
],
"parameters": {
"url": "https://cristiantala.com/wp-json/wp/v2/media",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "binaryData",
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpBasicAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Disposition",
"value": "=attachment; filename=\"{{ $('Get Title, Content, and Image FileName').item.json.image_filename }}\""
},
{
"name": "Content-Type",
"value": "image/jpeg"
}
]
},
"inputDataFieldName": "data"
},
"credentials": {
"httpBasicAuth": {
"id": "atshoATHWCYP6uAv",
"name": "WP CTala"
}
},
"retryOnFail": true,
"typeVersion": 4.2
},
{
"id": "bd779c40-a90d-4412-935a-7adc30e431fc",
"name": "조건문",
"type": "n8n-nodes-base.if",
"position": [
-20,
560
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "132de601-8ca1-46b4-9ae3-67baa33f28ad",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.generations_by_pk.status }}",
"rightValue": "COMPLETE"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "24b8ff73-0eff-41ce-b99b-27d4210838ac",
"name": "대기",
"type": "n8n-nodes-base.wait",
"position": [
200,
560
],
"webhookId": "d14af83a-15dc-4387-adf9-0f8b785faa0c",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "072b61c5-7494-42cd-808f-bb311605f4a3",
"name": "Leonardo 이미지 상태 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
-240,
610
],
"parameters": {
"url": "=https://cloud.leonardo.ai/api/rest/v1/generations/{{ $json.sdGenerationJob.generationId }}",
"options": {},
"sendHeaders": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
}
]
}
},
"credentials": {
"httpBearerAuth": {
"id": "LjE8BhoG7Ai8SXvB",
"name": "Bearer LeonardoAI"
}
},
"retryOnFail": true,
"typeVersion": 4.2
},
{
"id": "da14ecc4-ca0f-445e-9c87-0148a602bfc2",
"name": "Leonardo 이미지 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
200,
760
],
"parameters": {
"url": "={{ $json.generations_by_pk.generated_images[0].url }}",
"options": {}
},
"retryOnFail": true,
"typeVersion": 4.2
},
{
"id": "02b052f2-0771-42b3-b4e8-526375654118",
"name": "이미지에 ALT 추가",
"type": "n8n-nodes-base.httpRequest",
"position": [
640,
760
],
"parameters": {
"url": "=https://cristiantala.com/wp-json/wp/v2/media/{{ $json.id }}",
"method": "PUT",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "alt_text",
"value": "={{ $('Message a model').item.json.message.content }}"
}
]
},
"genericAuthType": "httpBasicAuth"
},
"credentials": {
"httpBasicAuth": {
"id": "atshoATHWCYP6uAv",
"name": "WP CTala"
}
},
"retryOnFail": true,
"typeVersion": 4.2
},
{
"id": "07078bdd-6d8e-485e-9581-e359361feba9",
"name": "WordPress 스타트업 및 기술 게시물",
"type": "n8n-nodes-base.googleSheets",
"position": [
1080,
760
],
"parameters": {
"columns": {
"value": {
"URL": "={{ $json.guid.raw }}",
"Tipo": "Post WP",
"Topic": "={{ $json.title.rendered }}",
"Status": "Posted",
"URL Imagen": "={{ $('Upload Image to Wordpress').item.json.guid.rendered }}",
"Contenido AI": "={{ $json.content.raw }}",
"Fecha del Posteo": "={{ $json.date }}"
},
"schema": [
{
"id": "Topic",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Topic",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Tipo",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Tipo",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Contenido AI",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Contenido AI",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Fecha del Posteo",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Fecha del Posteo",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "URL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "URL Imagen",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "URL Imagen",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Topic"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1s3HKV8M3U8NvOp1CxERz8tnC9ibYmnB4Pztgv1ZjkOQ/edit#gid=0",
"cachedResultName": "Hoja 1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1s3HKV8M3U8NvOp1CxERz8tnC9ibYmnB4Pztgv1ZjkOQ",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1s3HKV8M3U8NvOp1CxERz8tnC9ibYmnB4Pztgv1ZjkOQ/edit?usp=drivesdk",
"cachedResultName": "Publicaciones RRSS"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "qz04WB2vwS3Lcxwc",
"name": "IAM - Google Sheets"
}
},
"typeVersion": 4.5
},
{
"id": "ce87f8ee-3d53-462c-9df5-921fdc42d17c",
"name": "Leonardo: 게시물 이미지 생성",
"type": "n8n-nodes-base.httpRequest",
"position": [
-460,
610
],
"parameters": {
"url": "https://cloud.leonardo.ai/api/rest/v1/generations",
"method": "POST",
"options": {},
"jsonBody": "={\n \"prompt\": \"{{ $json.message.content }}\",\n \"modelId\": \"6bef9f1b-29cb-40c7-b9df-32b51c1f67d3\",\n \"width\": 1280,\n \"height\": 720,\n \"sd_version\": \"v2\",\n \"num_images\": 1,\n \"promptMagic\": true,\n \"promptMagicStrength\": 0.5,\n \"public\": false,\n \"scheduler\": \"LEONARDO\",\n \"guidance_scale\": 7\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
}
]
}
},
"credentials": {
"httpBearerAuth": {
"id": "LjE8BhoG7Ai8SXvB",
"name": "Bearer LeonardoAI"
}
},
"retryOnFail": true,
"typeVersion": 4.2
},
{
"id": "c8e83410-b334-4c2e-8095-0d424dd8455f",
"name": "제목, 내용 및 이미지 파일 이름 가져오기",
"type": "n8n-nodes-base.code",
"position": [
-1040,
610
],
"parameters": {
"jsCode": "const data = JSON.parse($input.first().json.choices[0].message.content);\n\n// Función para generar slug SEO-friendly\nfunction toSlug(text) {\n return text\n .toLowerCase()\n .normalize(\"NFD\") // elimina acentos\n .replace(/[\\u0300-\\u036f]/g, \"\") // elimina diacríticos\n .replace(/[^a-z0-9\\s-]/g, \"\") // elimina caracteres especiales\n .replace(/\\s+/g, \"-\") // reemplaza espacios por guiones\n .replace(/-+/g, \"-\") // evita guiones dobles\n .replace(/^-|-$/g, \"\"); // quita guiones iniciales y finales\n}\n\nconst imageName = toSlug(data.title) + \".jpg\";\n\nreturn [\n {\n json: {\n title: data.title,\n content: data.content,\n image_filename: imageName\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "611ebda2-da9a-4104-9888-5934afbfbe3d",
"name": "스티커 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1100,
800
],
"parameters": {
"height": 260,
"content": "## Problem in node ‘Get Title, Content, and Image FileName‘\nIf this happens, is because the Json file was not created successfully before on Perplexity. IA Models still struggles with this."
},
"typeVersion": 1
},
{
"id": "0f807531-ad62-40a8-8778-a4f7dcfc3c63",
"name": "스티커 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
960
],
"parameters": {
"content": "## ALT Images \nALT sigue siendo una de las características seo Importantes, junto al nombre del archivo de la imagen."
},
"typeVersion": 1
},
{
"id": "23f62c23-08c5-4da9-8579-a4b1077b43e1",
"name": "스티커 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-240,
980
],
"parameters": {
"width": 540,
"height": 120,
"content": "## Generación de Imagen con LeonardoAI\nEl proceso de generación de la imagen es asincrono, por lo que debemos preguntar si está listo cada cierto tiempo. % segundos son más que suficientes, y menos puede bloquearte el API."
},
"typeVersion": 1
},
{
"id": "56512471-538c-478f-9406-685f8501a8aa",
"name": "스티커 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-800,
840
],
"parameters": {
"height": 200,
"content": "## Image Prompt\nLe pedimos a ChaGPT que nos ayude a generar el prompt que usaremos en LeonardoAI para la imagen. Si bien podemos ocupar OpenAI para la imagen, Leonardo es considerablemente más económico."
},
"typeVersion": 1
},
{
"id": "24dd4040-a12b-4edc-a36f-668b1e4b6ab4",
"name": "스티커 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
560
],
"parameters": {
"content": "## Publicamos\nSe genera la publicación incluyendo la imagen y la categoría."
},
"typeVersion": 1
},
{
"id": "4dee076b-728a-42eb-b1ba-a8adfae043b5",
"name": "스티커 노트5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1060,
960
],
"parameters": {
"content": "## Journal\nGeneramos una lista de las publicaciones que hemos hecho a través de este flujo"
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "5ff0e3cd-00ad-4e8f-99a4-cd67ae531778",
"connections": {
"bd779c40-a90d-4412-935a-7adc30e431fc": {
"main": [
[
{
"node": "da14ecc4-ca0f-445e-9c87-0148a602bfc2",
"type": "main",
"index": 0
}
],
[
{
"node": "24b8ff73-0eff-41ce-b99b-27d4210838ac",
"type": "main",
"index": 0
}
]
]
},
"24b8ff73-0eff-41ce-b99b-27d4210838ac": {
"main": [
[
{
"node": "072b61c5-7494-42cd-808f-bb311605f4a3",
"type": "main",
"index": 0
}
]
]
},
"b306aff7-c8b0-4bf7-9eb1-d8eeee45da6e": {
"main": [
[
{
"node": "ce87f8ee-3d53-462c-9df5-921fdc42d17c",
"type": "main",
"index": 0
}
]
]
},
"cc9b1e41-aaeb-43fb-a283-e3faf397cc73": {
"main": [
[
{
"node": "01d0a3b7-66db-4032-b7d7-7a7b273920a7",
"type": "main",
"index": 0
}
]
]
},
"da14ecc4-ca0f-445e-9c87-0148a602bfc2": {
"main": [
[
{
"node": "e3786cd7-baac-4e9e-bd45-63ec3b5cfd5e",
"type": "main",
"index": 0
}
]
]
},
"02b052f2-0771-42b3-b4e8-526375654118": {
"main": [
[
{
"node": "f70d8187-0f57-4680-8155-420d060536f0",
"type": "main",
"index": 0
}
]
]
},
"f70d8187-0f57-4680-8155-420d060536f0": {
"main": [
[
{
"node": "07078bdd-6d8e-485e-9581-e359361feba9",
"type": "main",
"index": 0
}
]
]
},
"072b61c5-7494-42cd-808f-bb311605f4a3": {
"main": [
[
{
"node": "bd779c40-a90d-4412-935a-7adc30e431fc",
"type": "main",
"index": 0
}
]
]
},
"e3786cd7-baac-4e9e-bd45-63ec3b5cfd5e": {
"main": [
[
{
"node": "02b052f2-0771-42b3-b4e8-526375654118",
"type": "main",
"index": 0
}
]
]
},
"01d0a3b7-66db-4032-b7d7-7a7b273920a7": {
"main": [
[
{
"node": "c8e83410-b334-4c2e-8095-0d424dd8455f",
"type": "main",
"index": 0
}
]
]
},
"ce87f8ee-3d53-462c-9df5-921fdc42d17c": {
"main": [
[
{
"node": "072b61c5-7494-42cd-808f-bb311605f4a3",
"type": "main",
"index": 0
}
]
]
},
"c8e83410-b334-4c2e-8095-0d424dd8455f": {
"main": [
[
{
"node": "b306aff7-c8b0-4bf7-9eb1-d8eeee45da6e",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 콘텐츠 제작, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
AI 기반 동영상 제작 및 Instagram, TikTok, YouTube 업로드
클라우드 드라이브 기반 AI 기반 비디오 제작 및 Instagram, TikTok, YouTube 업로드
If
Set
Code
+
If
Set
Code
53 노드DevCode Journey
콘텐츠 제작
批量 SEO 콘텐츠 생성 및 AI 이미지 포함 Webflow 드래그 앤 드롭 생성 (템플릿)
GPT, Gemini 이미지, Webflow 드라フト를 사용하여 대량 SEO 콘텐츠 생성
If
Set
Code
+
If
Set
Code
54 노드Dahiana
콘텐츠 제작
1. 플레이리스트 상세 설정 로봇 복사본
Suno, GPT-4, Runway, Creatomate로 AI 생성 YouTube 음악 플레이리스트 생성
If
Set
Code
+
If
Set
Code
203 노드Joseph
콘텐츠 제작
blog_workflow_template_n8n
Claude AI를 사용하여 뉴스에서 WordPress 기사 자동 생성 및 LinkedIn에 공유
If
Code
Wait
+
If
Code
Wait
23 노드Marco Venturi
콘텐츠 제작
TikTok 캐러셀 복제기 및 번역기
Gemini Vision 및 Midjourney를 사용하여 TikTok 캐러셀 콘텐츠 자동 번역 및 재생성
If
Wait
Gmail
+
If
Wait
Gmail
21 노드Xavier Tai
콘텐츠 제작
Apollo 데이터 스크래핑 및 리치 프로세스 1 ✅
Apollo, AI 파싱 및 예정 이메일 후속 조치를 사용한 잠재 고객 자동 생성
If
Code
Wait
+
If
Code
Wait
39 노드Deniz
콘텐츠 제작