장문의 문서 생성
중급
이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 14개의 노드를 포함합니다.주로 Set, Form, SplitOut, GoogleDocs, FormTrigger 등의 노드를 사용하며. GPT-5와 Google Docs를 통해 간단한 제목에서 장문 문서 생성
사전 요구사항
- •OpenAI API Key
사용된 노드 (14)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "TkSOqdrMsNs3WpDK",
"meta": {
"instanceId": "a0e41110bf9f611e96e18e0663d80d746aeedc58368940bfe471a8d577a5069b",
"templateCredsSetupCompleted": true
},
"name": "Generate Long Document",
"tags": [],
"nodes": [
{
"id": "60f4490d-4cb9-4cc6-bf22-cd106c3ffef2",
"name": "구조화된 출력 파서",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
496,
48
],
"parameters": {
"jsonSchemaExample": "{\n \"blogTitle\": \"How to Build an AI Automation Workflow with n8n\",\n \"sections\": [\n {\n \"sectionId\": 1,\n \"sectionTitle\": \"Introduction: Why AI Automation Matters\",\n \"sectionSummary\": \"Explain the rise of AI automation and why it's valuable for productivity.\"\n },\n {\n \"sectionId\": 2,\n \"sectionTitle\": \"Tools You Need to Get Started\",\n \"sectionSummary\": \"List and briefly describe essential tools like n8n, OpenAI API, and Supabase.\"\n },\n {\n \"sectionId\": 3,\n \"sectionTitle\": \"Step-by-Step Workflow Setup\",\n \"sectionSummary\": \"Break down how to connect nodes, triggers, and APIs to build the automation.\"\n },\n {\n \"sectionId\": 4,\n \"sectionTitle\": \"Testing and Optimization\",\n \"sectionSummary\": \"Show how to test, debug, and improve the automation workflow.\"\n },\n {\n \"sectionId\": 5,\n \"sectionTitle\": \"Conclusion and Next Steps\",\n \"sectionSummary\": \"Wrap up the article and encourage readers to experiment with AI workflows.\"\n }\n ]\n}"
},
"typeVersion": 1.3
},
{
"id": "0aa103cc-e536-4041-a546-bf2ad16cd58d",
"name": "분할 출력",
"type": "n8n-nodes-base.splitOut",
"position": [
928,
-192
],
"parameters": {
"include": "allOtherFields",
"options": {},
"fieldToSplitOut": "sections"
},
"typeVersion": 1
},
{
"id": "84a0b969-dcf6-484a-ac18-5ca1663926d0",
"name": "항목 반복",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1152,
-192
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "ad643365-42ef-4e62-9c3d-7da17915bb09",
"name": "심플 메모리",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
1520,
-80
],
"parameters": {
"sessionKey": "={{ $('GetSections').item.json.documentId }}",
"sessionIdType": "customKey",
"contextWindowLength": 30
},
"typeVersion": 1.3
},
{
"id": "69495066-646b-4cd5-8bb2-01abb95c67c7",
"name": "GetSections",
"type": "n8n-nodes-base.set",
"position": [
704,
-192
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "5b79fc5b-55ae-42ed-a138-9150a7b86c70",
"name": "sections",
"type": "array",
"value": "={{ $json.output.sections }}"
},
{
"id": "73ed193b-9d56-4229-a1da-89037a241a3e",
"name": "documentId",
"type": "string",
"value": "={{ Math.random().toString(36).substring(2, 10).toUpperCase() }}"
}
]
}
},
"notesInFlow": true,
"typeVersion": 3.4
},
{
"id": "d45e18a1-274b-42f8-a516-cdd7fa472703",
"name": "CreateDocument",
"type": "n8n-nodes-base.googleDocs",
"position": [
128,
-336
],
"parameters": {
"title": "={{ $('On form submission').item.json.Title }}",
"folderId": "default"
},
"credentials": {
"googleDocsOAuth2Api": {
"id": "ue3sXJAM99TJeGwG",
"name": "Google Docs account"
}
},
"typeVersion": 2
},
{
"id": "3da122af-c430-4dc0-a237-2fd6008f5e0c",
"name": "UpdateDocument",
"type": "n8n-nodes-base.googleDocs",
"position": [
1728,
-192
],
"parameters": {
"actionsUi": {
"actionFields": [
{
"text": "={{$json.output + \"\\n\\n\"}}\n",
"action": "insert"
}
]
},
"operation": "update",
"documentURL": "={{ $('CreateDocument').item.json.id }}"
},
"credentials": {
"googleDocsOAuth2Api": {
"id": "ue3sXJAM99TJeGwG",
"name": "Google Docs account"
}
},
"typeVersion": 2
},
{
"id": "988ad51b-7a09-4712-907e-d852a4d228ef",
"name": "gpt-5-mini",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
368,
48
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-5-mini",
"cachedResultName": "gpt-5-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "2TBvwobWbbHlIjKT",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "033dd289-00c8-4753-b0b1-0f78cdfd9e63",
"name": "gpt-5",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1392,
-80
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-5",
"cachedResultName": "gpt-5"
},
"options": {
"timeout": 600000
}
},
"credentials": {
"openAiApi": {
"id": "2TBvwobWbbHlIjKT",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "17a2ab80-75e7-4f72-92cb-c4d06b2fbf3c",
"name": "ContentWriter",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1376,
-304
],
"parameters": {
"text": "=Help write section: {{ $json.sections.sectionId }}. {{ $json.sections.sectionTitle }}",
"options": {
"systemMessage": "=You are a professional content generator and technical writer. \nYour task is to generate complete Markdown sections based on a provided JSON structure.\n\n#JSON structure:\n{{ $('ContentPlanner').item.json.output.toJsonString() }}\n\n# 🧠 Instructions\nGenerate a complete, well-structured Markdown document.\nInclude all sections in order using their **sectionId**.\nEach section should include:\n- Heading in the format: `# {sectionId}. {sectionTitle}` \n- Section must not exceed {{Math.floor($('On form submission').item.json['Word Count'] / $('GetSections').item.json.sections.length)}} words\n\n",
"passthroughBinaryImages": false
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "338f10a7-01f3-454e-bd82-4b59b2be54f3",
"name": "ContentPlanner",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
352,
-192
],
"parameters": {
"text": "={{ $('On form submission').item.json.Title }}",
"options": {
"systemMessage": "# ✍️ Prompt: Blog Outline Generator Agent\n\n## **Role**\nYou are a **professional content planner and blog strategist**.\n\n## **Goal**\nAnalyze the user’s topic or idea, then **generate a complete blog post outline** with clear structure, logical flow, and engaging section titles.\n\n## **Instructions**\n1. Read the user’s description or topic carefully. \n2. Identify the **main goal** of the article (inform, persuade, educate, or inspire). \n3. Create a **structured outline** with key sections and short explanations for each. \n4. Include **subheadings** (H2, H3) and **logical progression** from introduction to conclusion. \n5. Focus on **clarity, SEO-friendly phrasing, and reader engagement**. \n6. Do **not** write the full article — only the **outline and section summaries**."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "67ecec8d-12d3-4923-bbde-ca710d2465d4",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
-96,
-336
],
"webhookId": "9525bb2f-3046-43ee-872a-9f5ee8c32248",
"parameters": {
"options": {},
"formTitle": "Generate Long Content",
"formFields": {
"values": [
{
"fieldLabel": "Title",
"placeholder": "title or short description",
"requiredField": true
},
{
"fieldType": "number",
"fieldLabel": "Word Count",
"requiredField": true
}
]
},
"formDescription": "Help generate long document from a title"
},
"typeVersion": 2.3
},
{
"id": "6e4ebbe6-c39d-4b9a-832a-69824b207f06",
"name": "Form",
"type": "n8n-nodes-base.form",
"position": [
416,
-480
],
"webhookId": "bc18f06b-e004-4e39-b7f0-eed867ec524a",
"parameters": {
"options": {
"customCss": ":root {\n\t--font-family: 'Open Sans', sans-serif;\n\t--font-weight-normal: 400;\n\t--font-weight-bold: 600;\n\n\t/* Typography — larger & more readable */\n\t--font-size-body: 16px;\n\t--font-size-label: 15px;\n\t--font-size-test-notice: 13px;\n\t--font-size-input: 15px;\n\t--font-size-header: 24px;\n\t--font-size-paragraph: 16px;\n\t--font-size-link: 14px;\n\t--font-size-error: 13px;\n\t--font-size-html-h1: 34px;\n\t--font-size-html-h2: 26px;\n\t--font-size-html-h3: 20px;\n\t--font-size-html-h4: 18px;\n\t--font-size-html-h5: 16px;\n\t--font-size-html-h6: 14px;\n\t--font-size-subheader: 16px;\n\n\t/* Colors — higher contrast & friendlier accents */\n\t--color-background: #f7f8fc;\n\t--color-test-notice-text: #b45309; /* deeper amber for contrast */\n\t--color-test-notice-bg: #fff7ed;\n\t--color-test-notice-border: #fed7aa;\n\n\t--color-card-bg: #ffffff;\n\t--color-card-border: #e5e7eb;\n\t--color-card-shadow: rgba(31, 41, 55, 0.06);\n\n\t--color-link: #2563eb; /* accessible blue for standard links */\n\t--color-header: #1f2937; /* slate-800 */\n\t--color-label: #374151; /* slate-700 */\n\t--color-input-border: #cbd5e1; /* slate-300 */\n\t--color-input-text: #111827; /* slate-900 */\n\t--color-focus-border: #7c3aed; /* vivid violet focus ring */\n\t--color-submit-btn-bg: #ff6d5a; /* brand coral kept */\n\t--color-submit-btn-text: #ffffff;\n\t--color-error: #dc2626; /* red-600 */\n\t--color-required: #ef4444; /* red-500 */\n\t--color-clear-button-bg: #6b7280; /* slate-500 */\n\t--color-html-text: #374151; /* slate-700 */\n\t--color-html-link: #ff6d5a; /* brand accent for content links */\n\t--color-header-subtext: #6b7280; /* slate-500 */\n\n\t/* Border Radii — slightly softer */\n\t--border-radius-card: 10px;\n\t--border-radius-input: 8px;\n\t--border-radius-clear-btn: 50%;\n\t--card-border-radius: 10px;\n\n\t/* Spacing — room to breathe */\n\t--padding-container-top: 32px;\n\t--padding-card: 28px;\n\t--padding-test-notice-vertical: 12px;\n\t--padding-test-notice-horizontal: 24px;\n\t--margin-bottom-card: 20px;\n\t--padding-form-input: 14px;\n\t--card-padding: 28px;\n\t--card-margin-bottom: 20px;\n\n\t/* Dimensions — wider layout */\n\t--container-width: 720px;\n\t--submit-btn-height: 52px;\n\t--checkbox-size: 20px;\n\n\t/* Others — subtle shadow & clearer placeholders */\n\t--box-shadow-card: 0px 6px 20px 0px var(--color-card-shadow);\n\t--opacity-placeholder: 0.6;\n}\n"
},
"operation": "completion",
"completionTitle": "Generating your document… Please wait a few minutes, then access the link below",
"completionMessage": "=https://docs.google.com/document/d/{{ $('CreateDocument').item.json.id }}"
},
"typeVersion": 2.3
},
{
"id": "f3db576d-70cb-46ce-a6ec-f291c486807e",
"name": "메모4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-992,
-592
],
"parameters": {
"width": 848,
"height": 992,
"content": "# 🧭 Overview\nThis workflow takes a title and automatically creates a detailed Google Document.\nIt first builds an outline, then writes each section based on the word limit, and finally saves everything into the Google Doc.\n\n---\n\n## ⚙️ Setup\n1. Connect **Google Docs OAuth** for the `CreateDocument` and `UpdateDocument` nodes. \n2. Add your **OpenAI API Key** for `gpt-5-mini` (outline planner) and `gpt-5` (content writer). \n3. Open the public **Form URL**, submit your Title and Word Count. \n4. The generated Google Document link will appear after submission.\n\n---\n\n## 📝 How to Use\n1. Open the submission form.\n2. Enter your title and word count.\n3. Click Submit to generate your Google Document link.\n4. Wait a few minutes — the completed document will be ready at that link.\n\n---\n\n## 🎨 Customize\n- Change models in **“gpt-5-mini”** and **“gpt-5”** nodes. \n- Edit outline generation rules in the **ContentPlanner** system prompt. \n- Modify section format and word-cap logic in the **ContentWriter** system prompt. \n- Adjust document title or folder source (Form → Title or Folder ID). \n- Update CSS in the **Form node → Completion → customCss** to match your brand.\n\n---\n\n## 💰 Costs & Limits\n- **OpenAI token usage** scales with *Word Count × Number of Sections*. \n- **Execution time limit:** The `gpt-5` node has a 10-minute timeout (increase if needed). \n- For long documents, consider reducing word count per section or batching. \n- **Google Docs API** has write-rate limits — this workflow handles appends one section at a time to stay within safe limits.\n"
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "aac61755-8db8-4852-b401-a5cb8e5c21ef",
"connections": {
"033dd289-00c8-4753-b0b1-0f78cdfd9e63": {
"ai_languageModel": [
[
{
"node": "17a2ab80-75e7-4f72-92cb-c4d06b2fbf3c",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"988ad51b-7a09-4712-907e-d852a4d228ef": {
"ai_languageModel": [
[
{
"node": "338f10a7-01f3-454e-bd82-4b59b2be54f3",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"69495066-646b-4cd5-8bb2-01abb95c67c7": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"17a2ab80-75e7-4f72-92cb-c4d06b2fbf3c": {
"main": [
[
{
"node": "3da122af-c430-4dc0-a237-2fd6008f5e0c",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "17a2ab80-75e7-4f72-92cb-c4d06b2fbf3c",
"type": "ai_memory",
"index": 0
}
]
]
},
"338f10a7-01f3-454e-bd82-4b59b2be54f3": {
"main": [
[
{
"node": "69495066-646b-4cd5-8bb2-01abb95c67c7",
"type": "main",
"index": 0
}
]
]
},
"d45e18a1-274b-42f8-a516-cdd7fa472703": {
"main": [
[
{
"node": "6e4ebbe6-c39d-4b9a-832a-69824b207f06",
"type": "main",
"index": 0
},
{
"node": "338f10a7-01f3-454e-bd82-4b59b2be54f3",
"type": "main",
"index": 0
}
]
]
},
"3da122af-c430-4dc0-a237-2fd6008f5e0c": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[],
[
{
"node": "17a2ab80-75e7-4f72-92cb-c4d06b2fbf3c",
"type": "main",
"index": 0
}
]
]
},
"67ecec8d-12d3-4923-bbde-ca710d2465d4": {
"main": [
[
{
"node": "d45e18a1-274b-42f8-a516-cdd7fa472703",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "338f10a7-01f3-454e-bd82-4b59b2be54f3",
"type": "ai_outputParser",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 콘텐츠 제작, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
WordPress 블로그 자동화 프로페셔널 에디션(심층 연구) v2.1 마켓
GPT-4o, Perplexity AI 및 다국어 지원을 사용한 SEO 최적화 블로그 생성 자동화
If
Set
Xml
+
If
Set
Xml
125 노드Daniel Ng
콘텐츠 제작
AI DJ: Linkup와 GPT4 기반 텍스트-스포티파이 플레이리스트 생성기
AI DJ: Linkup와 GPT4 기반 텍스트-스포티파이 플레이리스트 생성기
Set
Form
Spotify
+
Set
Form
Spotify
17 노드Guillaume Duvernay
콘텐츠 제작
OpenAI와 Firecrawl로 제품 URL에서 AI 생성 Meta 광고 캠페인 생성
OpenAI와 Firecrawl을 통해 제품 URL로 AI 생성 Meta 광고 캠페인 생성
If
Set
Code
+
If
Set
Code
40 노드Adam Crafts
콘텐츠 제작
Alex Hormozi 스타일 고 변환율 Google Docs 판매 콘텐츠 작성 도구
사용하여 Hormozi 프레임워크, LangChain 및 Google Docs로 높은 전환율 판매 문구를 생성합니다.
If
Set
Code
+
If
Set
Code
37 노드Hunyao
콘텐츠 제작
콘텐츠생성기 v3
AI驱动블로그자동화:사용GPT-4생성并게시SEO기사至WordPress및Twitter
If
Set
Code
+
If
Set
Code
144 노드Jay Emp0
콘텐츠 제작
💥 NanoBanana, Seedream 4, ChatGPT Image 및 Veo 3를 사용한 동영상 광고 자동화 - VIDE
AI(NanoBanana, Seedream, GPT-4o, Veo 3)를 사용하여 비디오 광고 캠페인 자동화 및 게시
Set
Code
Wait
+
Set
Code
Wait
63 노드Dr. Firas
콘텐츠 제작
워크플로우 정보
난이도
중급
노드 수14
카테고리2
노드 유형11
저자
Nghia Nguyen
@nghiaaidevI am Nguyen Trung Nghia, a Software Engineer passionate about AI Automation. I build intelligent automation systems that help businesses reduce costs, increase productivity, and scale faster with the power of AI technology.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유