WordPress와 ChatGPT를 활용한 블로그 글 자동 생성
고급
이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 19개의 노드를 포함합니다.주로 Xml, Code, Wordpress, HttpRequest, ScheduleTrigger 등의 노드를 사용하며. 예약 또는 트리거 방식으로 WordPress 콘텐츠를 생성하는 AI 블로그 글 생성기
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "kT6Enn9B13D5YHX8",
"meta": {
"instanceId": "0aa128a42ecb7507b467e5a40bd7404c487cacc38f4e5db3c23146b9172660bf",
"templateId": "3018",
"templateCredsSetupCompleted": true
},
"name": "Autogenerate Blog Posts using Wordpress and ChatGPT",
"tags": [],
"nodes": [
{
"id": "52911348-2e1a-4cb6-af35-c245e2402f25",
"name": "스케줄 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
784,
320
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "6063c151-0c5c-4f6a-89cc-821be284f634",
"name": "채팅 메시지",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
784,
544
],
"webhookId": "f23328b1-5498-43a4-aed3-2bd0337d29e3",
"parameters": {
"options": {
"allowFileUploads": false
}
},
"typeVersion": 1.1
},
{
"id": "65399934-119e-4f3d-ac0a-9354d2feaa1c",
"name": "올바른 항목 선택",
"type": "n8n-nodes-base.code",
"position": [
1616,
544
],
"parameters": {
"jsCode": "// Verifica se `chatInput` existe no JSON\nif ($json.chatInput) {\n return [{ json: { result: $json.chatInput } }];\n} \n// Caso contrário, verifica se `message.content` existe no JSON\nelse if ($json.message && $json.message.content) {\n return [{ json: { result: $json.message.content } }];\n}\n// Caso nenhum dos dois existam, retorna um valor padrão (opcional)\nelse {\n return [{ json: { result: 'Nenhuma entrada encontrada' } }];\n}\n"
},
"typeVersion": 2
},
{
"id": "993dc632-d742-4357-9446-cc075d8ff396",
"name": "[CHAT] 슬러그 정렬",
"type": "n8n-nodes-base.code",
"position": [
1328,
544
],
"parameters": {
"jsCode": "// Acessa o array de URLs do JSON\nconst urls = items[0].json.urlset.url;\n\n// Extrai os slugs das URLs\nconst slugs = urls.map(url => {\n const urlString = url.loc; // Pega o valor da tag <loc>\n const slug = urlString.split('/').filter(Boolean).pop(); // Extrai a última parte da URL\n return slug;\n});\n\n// Retorna os slugs de forma correta, dentro do formato esperado pelo n8n\nreturn [\n {\n json: {\n slugs: slugs // Aqui a chave 'slugs' é um array de slugs extraídos\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "46e54e20-4292-4e00-8531-c7930d616111",
"name": "[CHAT] 사이트맵을 Json으로 변환",
"type": "n8n-nodes-base.xml",
"position": [
1136,
544
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "508fe15b-f0f7-4cbf-9d17-0b67794c43cf",
"name": "[CHAT] 사이트맵 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
960,
544
],
"parameters": {
"url": "https://bruzzi.online/sitemap.xml",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "861bbd03-9f34-4c00-9df5-344a009e4634",
"name": "[SCHEDULE] 사이트맵 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
960,
320
],
"parameters": {
"url": "https://bruzzi.online/sitemap.xml",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "775fe67d-1146-45a8-ad06-15ce3c0dfed8",
"name": "[SCHEDULE] 사이트맵을 Json으로 변환",
"type": "n8n-nodes-base.xml",
"position": [
1136,
320
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "ac79601b-bb46-4b5b-b6b0-781cdd929b13",
"name": "[SCHEDULE] 슬러그 정렬",
"type": "n8n-nodes-base.code",
"position": [
1328,
320
],
"parameters": {
"jsCode": "// Acessa o array de URLs do JSON\nconst urls = items[0].json.urlset.url;\n\n// Extrai os slugs das URLs\nconst slugs = urls.map(url => {\n const urlString = url.loc; // Pega o valor da tag <loc>\n const slug = urlString.split('/').filter(Boolean).pop(); // Extrai a última parte da URL\n return slug;\n});\n\n// Retorna os slugs de forma correta, dentro do formato esperado pelo n8n\nreturn [\n {\n json: {\n slugs: slugs // Aqui a chave 'slugs' é um array de slugs extraídos\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "0cdf1e26-abf1-43dc-973d-21c4c77e3262",
"name": "[SCHEDULE] 새 블로그 글 테마",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1504,
320
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-5-nano",
"cachedResultName": "GPT-5-NANO"
},
"options": {},
"messages": {
"values": [
{
"content": "=Give me a relevant topic for my blog. I want only the topic. I have a [area] blog for [your persona], and I want something relevant for this audience. Return only the topic.\n\nDo not repeat topics. Below is the list of current topics on my blog. Always focus on a new area/subarea when a topic already exists.\n\nList of existing topics (in slug): {{ $json.slugs }}\n\nReturn only one sentence, without - or other symbols. This will be our topic. Do not send it in slug form.\n"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "Tf4ac3A66loxAGyo",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "27b5d043-7dff-4b5a-984c-cc1ddb66c536",
"name": "글 생성",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
992,
752
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini-search-preview",
"cachedResultName": "GPT-4O-MINI-SEARCH-PREVIEW"
},
"options": {},
"messages": {
"values": [
{
"content": "=You are a generator of deep and comprehensive content for a [area] blog. The blog is focused on [your persona]\n\nFrom the provided topic ({{ $('Choose Right One').item.json.result }}), you will write a title, and from that title, you will write a complete blog post. The title must have up to 12 words and up to 60 characters, including spaces.\n\nEnsure the content is highly accurate. It will be read and reviewed by other professionals.\n\nThe current blog topics (slugs) are: {{ $json.slugs }} — use them throughout the text, along with external links, to increase the reliability of my site. Do not use “openai referrer” or relative links; always use the original link and nothing else. Understand whether I’m sending you a complete piece of content or a specific topic. Feel free to create, recreate, or adjust it according to a relevant, current, and sensible blog theme. The content to be developed in the post is\n\nEnsure you provide the most up-to-date information from guidelines, protocols, directives, articles, and similar relevant online publications when relevant for building this content.\n\nKeywords must be specific objects, places, or atmospheres—not abstract concepts.\n\n**Article Formatting Requirements**\n\n1️⃣ **Title (H1):** Ensure unique and assertive titles aligned with user search intent.\n2️⃣ **Subtitles (H2 / H3):** Structure the content for SEO optimization.\n3️⃣ **Article Structure (Enhanced Readability):**\n\n**Introduction**\nGo straight to the point, avoiding long or generic introductions.\nUse engaging questions or market trend data to capture the reader’s attention.\n\n**Main Content**\nInclude at least three key knowledge points for depth.\nBalance short and long sentences for fluent reading.\nBe thorough, accurate, and descriptive. Ensure the content is extremely relevant and complete, aiming for 3,000–7,000 words.\n\nInclude internal links to similar posts distributed throughout the text. \n\nThe base URL for my blog posts is [https://yourblog.com/blog/[slug](https://yourblog.com/blog/[slug)]. Insert 1–5 internal links, always matching keywords meaningfully.\n\n**Final Section**\nAvoid generic AI-style summaries; instead, provide insights or practical actions. Do not use the word “conclusion” or similar terms—just complete your reasoning naturally.\n\n**HTML Formatting**\nEnsure the article is properly structured in HTML format:\n\n* Titles: Use <h1>, <h2>, <h3> appropriately.\n* Paragraphs: Wrap text in <p>.\n* Highlighted Words: Use <strong> to emphasize important terms.\n* Lists: Use <ul> and <li> for bullet points.\n Keep the output clean and well-structured, avoiding plain text. Never include suggestions or comments in your responses.\n\n**Final JSON Format**\n\n```json\n{\n \"title\": \"{Generate an H1 title aligned with market trends, with high click potential, following the keyword strategy. The title should use capitalization only for the first word or proper nouns'}\",\n \"content\": \"{Generate a complete article in HTML including H1, H2, H3 titles, paragraphs, lists, etc.}\",\n \"slug\": \"{Generate a unique, SEO-friendly slug with as few words as possible (minimum of 2), separated by hyphens, such as gina-2025 or 10-better-choices. Do not use accents or similar characters, as they cause issues in some browsers.}\"\n}\n```\n"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "Tf4ac3A66loxAGyo",
"name": "OpenAi account"
}
},
"typeVersion": 1.6
},
{
"id": "c89b3836-c12d-49fc-8855-d32d4e220069",
"name": "글 검토",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1280,
752
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-5-mini",
"cachedResultName": "GPT-5-MINI"
},
"options": {},
"messages": {
"values": [
{
"content": "=You are a WRITER AND EDITOR of content for a [area] blog. The blog is focused on [your persona]\n\nYou will not receive the title, content, or slug — you will create them to be read by either professionals or laypeople.\n\nYour task is to receive the inputs and return a title, content, and slug, in the provided format.\n\nThe content must be well-written, following correct spelling, grammar, and syntax rules.\n\nIt should be relevant, written by a professional in accessible yet professional language. Ensure the SEO is extremely strong and relevant to the keywords covered in the topic.\n\nThe content must include at least three related keywords throughout the post. Never mention the term “keywords” or related expressions. They must be inserted contextually and naturally within the text.\n\nThe title should use capitalization only for the first word or proper nouns.\n\nThe post must go straight to the point — do not use terms like “Main Content,” “Content,” or similar. Always use H2 and H3 for referencing the keyword(s) of the post. The same applies to the conclusion: avoid terms like “Conclusion,” “Closing,” or related words. Go directly to your final reasoning. Insert relevant keywords only within the text, in a valid and meaningful context. Never insert them at the end of the text. The post body must contain only the title, slug, and content.\n\nReview and edit all internal links in the post. Consider removing them if they are poorly placed, out of context, or inserted mechanically (for example, “Useful links already inserted in the original text” or “Relevant links I’ve selected for you”). These should be corrected.\n\nEnsure the post contains at least three internal links from my site (formatted as https://yoursite.com/blog/[slug]) in relevant keyword contexts. The available internal link slugs are:\n{{ $('[CHAT] Order Slugs').item.json.slugs }}\n\nCheck all internal links carefully. Maintain a balance between internal and external links received in your input (minimum of 3 internal and 3 external) to guarantee educational continuity and article reliability, based on both internal and external sources. Never cite any of them in isolation or without context — they must appear only within meaningful sentences, never as standalone paragraphs for the final reader (whether a medical professional or layperson).\n\nBelow is the complete content of the post to be written, already including external link references:\n{{ $json.message.content }}\n\nReturn the post in HTML format, including title, body, and slug to be used on my blog."
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "Tf4ac3A66loxAGyo",
"name": "OpenAi account"
}
},
"typeVersion": 1.6
},
{
"id": "ee68bb1b-22a1-4a78-8afd-e72961f078d3",
"name": "Wordpress로 전송",
"type": "n8n-nodes-base.wordpress",
"position": [
1616,
752
],
"parameters": {
"title": "={{ $json.message.content.title }}",
"additionalFields": {
"slug": "={{ $json.message.content.slug }}",
"status": "publish",
"content": "={{ $json.message.content.content }}"
}
},
"credentials": {
"wordpressApi": {
"id": "m0QzeTPR7r2IgjIz",
"name": "Wordpress account"
}
},
"typeVersion": 1,
"alwaysOutputData": false
},
{
"id": "33b4a5ea-7e3a-4b34-a767-a20f84a94b10",
"name": "스티커 메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
304,
304
],
"parameters": {
"color": 4,
"width": 400,
"height": 576,
"content": "## Starting\n\nOn this template, you can easily get all your posts from your blog (WordPress) and create new ones basead on them.\n\n### Fisrt of All\n\nSet up your credentials: you'll need 2 of them set up: **OpenAI API Key** and **WP User API Key**\n\n*You also can schedule the workflow to run on specific dates, dites or so; or you can just enter a new theme, and that will be generated and posted on your blog.*\n\n### 2. Go to Sitemaps\n\nChange your sitemap URL on both nodes \"Get Sitemap\"\n\n### OpenAI Nodes\n\nAdjust the prompt to your blog data: blog theme, also known as [area], blog public, also known as [your persona] and blog url, so you'll receive correct internal links to your blog."
},
"typeVersion": 1
},
{
"id": "cd19392e-3219-4361-a493-dcc61b041198",
"name": "스티커 메모1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1856,
320
],
"parameters": {
"color": 5,
"width": 256,
"height": 192,
"content": "## ⬅️ Scheduled Auto Post Generator\n\n*Remenber to change the [area] and [your persona] on the OpenAI node with your blog theme and persona*"
},
"typeVersion": 1
},
{
"id": "46cc2f32-8a48-4077-b28f-889c5b7edfd3",
"name": "스티커 메모2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1856,
544
],
"parameters": {
"color": 5,
"width": 256,
"height": 96,
"content": "## ⬅️ Chat-Based Auto Post Generator"
},
"typeVersion": 1
},
{
"id": "9cb3c530-a205-4053-8ddc-46e4fad683c2",
"name": "스티커 메모3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1856,
672
],
"parameters": {
"color": 3,
"width": 256,
"height": 224,
"content": "## Important!\n\nRemember to change every OpenAI interaction, changing [area] or [your persona] with the real ones you want to use.\n\nAlso, remember to change the blog URL on the OpenAI nodes"
},
"typeVersion": 1
},
{
"id": "993d972f-9dab-4fa9-a010-9674ca49a3cd",
"name": "스티커 메모4",
"type": "n8n-nodes-base.stickyNote",
"position": [
960,
144
],
"parameters": {
"width": 464,
"height": 144,
"content": "## Sitemaps\n\nAlways change the sitemap URL to tour own, so it'll work properly.\n\nYou can do it on the \"Get Sitemaps\" Nodes"
},
"typeVersion": 1
},
{
"id": "93697b6c-29e3-49dc-a5f4-b95f9d12a127",
"name": "스티커 메모5",
"type": "n8n-nodes-base.stickyNote",
"position": [
304,
80
],
"parameters": {
"color": 6,
"width": 400,
"height": 208,
"content": "### About this Workflow\n\nThis workflow is designed for those who don't want to spend so many time writing posts for their blogs, but still know the power of SEO.\n\nIt syncs OpenAI and Wordpress, so you can Schedule your posts (AI creates themes) or creating posts by one or two word sentences"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "d30cfd85-835d-4a13-8f46-d87581b4f1d3",
"connections": {
"27b5d043-7dff-4b5a-984c-cc1ddb66c536": {
"main": [
[
{
"node": "c89b3836-c12d-49fc-8855-d32d4e220069",
"type": "main",
"index": 0
}
]
]
},
"c89b3836-c12d-49fc-8855-d32d4e220069": {
"main": [
[
{
"node": "ee68bb1b-22a1-4a78-8afd-e72961f078d3",
"type": "main",
"index": 0
}
]
]
},
"6063c151-0c5c-4f6a-89cc-821be284f634": {
"main": [
[
{
"node": "508fe15b-f0f7-4cbf-9d17-0b67794c43cf",
"type": "main",
"index": 0
}
]
]
},
"65399934-119e-4f3d-ac0a-9354d2feaa1c": {
"main": [
[
{
"node": "27b5d043-7dff-4b5a-984c-cc1ddb66c536",
"type": "main",
"index": 0
}
]
]
},
"52911348-2e1a-4cb6-af35-c245e2402f25": {
"main": [
[
{
"node": "861bbd03-9f34-4c00-9df5-344a009e4634",
"type": "main",
"index": 0
}
]
]
},
"ee68bb1b-22a1-4a78-8afd-e72961f078d3": {
"main": [
[]
]
},
"508fe15b-f0f7-4cbf-9d17-0b67794c43cf": {
"main": [
[
{
"node": "46e54e20-4292-4e00-8531-c7930d616111",
"type": "main",
"index": 0
}
]
]
},
"993dc632-d742-4357-9446-cc075d8ff396": {
"main": [
[
{
"node": "65399934-119e-4f3d-ac0a-9354d2feaa1c",
"type": "main",
"index": 0
}
]
]
},
"46e54e20-4292-4e00-8531-c7930d616111": {
"main": [
[
{
"node": "993dc632-d742-4357-9446-cc075d8ff396",
"type": "main",
"index": 0
}
]
]
},
"861bbd03-9f34-4c00-9df5-344a009e4634": {
"main": [
[
{
"node": "775fe67d-1146-45a8-ad06-15ce3c0dfed8",
"type": "main",
"index": 0
}
]
]
},
"ac79601b-bb46-4b5b-b6b0-781cdd929b13": {
"main": [
[
{
"node": "0cdf1e26-abf1-43dc-973d-21c4c77e3262",
"type": "main",
"index": 0
}
]
]
},
"775fe67d-1146-45a8-ad06-15ce3c0dfed8": {
"main": [
[
{
"node": "ac79601b-bb46-4b5b-b6b0-781cdd929b13",
"type": "main",
"index": 0
}
]
]
},
"0cdf1e26-abf1-43dc-973d-21c4c77e3262": {
"main": [
[
{
"node": "65399934-119e-4f3d-ac0a-9354d2feaa1c",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 콘텐츠 제작, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
GPT-5와 fal.ai 이미지를 사용한 키워드에서 WordPress까지 자동화 SEO 블로그 프로세스
GPT-5 및 fal.ai 이미지를 사용한 키워드 to WordPress SEO 블로그 프로세스 자동화
Set
Code
Wait
+
Set
Code
Wait
96 노드Paul
콘텐츠 제작
OpenAI와 WordPress를 사용한 SEO 블로그 게시물 생성 및 게시 자동화
OpenAI 및 WordPress를 사용한 SEO 블로그 글 생성 및 발행 자동화
If
Set
Code
+
If
Set
Code
22 노드Khaisa Studio
콘텐츠 제작
WordPress 블로그 자동화 프로페셔널 에디션(심층 연구) v2.1 마켓
GPT-4o, Perplexity AI 및 다국어 지원을 사용한 SEO 최적화 블로그 생성 자동화
If
Set
Xml
+
If
Set
Xml
125 노드Daniel Ng
콘텐츠 제작
OpenAI를 사용한 WordPress 및 WooCommerce 콘텐츠 자동화: 리뷰, 방명록 및 업데이트
OpenAI를 사용한 WordPress 및 WooCommerce 콘텐츠 자동화: 리뷰, 방명록 및 업데이트
Set
Code
Wordpress
+
Set
Code
Wordpress
38 노드Ali Khosravani
콘텐츠 제작
YouTube 비디오 기반 자율 블로그 게시
ChatGPT, Sheets, Apify, Pexels, WordPress를 사용하여 YouTube 비디오를 자동으로 블로그에 게시합니다.
If
Set
Code
+
If
Set
Code
80 노드Oriol Seguí
콘텐츠 제작
Perplexity와 GPT를 사용하여 WordPress에 SEO 최적화 블로그 생성, 키워드와 미디어 포함
Perplexity와 GPT를 사용하여 WordPress에 SEO 최적화 블로그를 만들어 키워드와 미디어 포함
Set
Code
Limit
+
Set
Code
Limit
124 노드Paul
콘텐츠 제작