8
n8n 中文网amn8n.com

使用AI Tool Node和GPT-4、DALL-E的多智能体图书创作工作流

高级

这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 25 个节点。主要使用 Set, AwsS3, Markdown, GoogleDrive, HttpRequest 等节点。 使用GPT-4.1-mini、DALL-E、Google Drive和AWS S3创建AI生成图书

前置要求
  • AWS Access Key 和 Secret
  • Google Drive API 凭证
  • 可能需要目标 API 的认证凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "Dzkcrsp1EXXItaYc",
  "meta": {
    "instanceId": "4a2e6764ba7a6bc9890d9225f4b21d570ce88fc9bd57549c89057fcee58fed0f",
    "templateCredsSetupCompleted": true
  },
  "name": "Multi-Agent Book Creation Workflow with AI Tool Node and GPT-4, DALL-E",
  "tags": [],
  "nodes": [
    {
      "id": "8186d3a3-15f5-456b-8ba4-d62ea9ea1bd4",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -528,
        -432
      ],
      "webhookId": "d41b30e6-1c2d-4d84-8bcc-bb47a361e608",
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "582637d7-5961-463c-bf35-d4172eceec30",
      "name": "Designer Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        224,
        -208
      ],
      "parameters": {
        "text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Prompt__User_Message_', ``, 'string') }}",
        "options": {},
        "toolDescription": "You are Designer Agent, your job is to generate the prompt to create the book cover\n\nThe prompt must be ready for DALL·E 2 and include:\n- focal motif(s) matching brief.visual_motifs (1–3)\n- composition with clean top third for title; safe margins\n- style/medium; lighting; background texture/gradient\n- color direction (brief.color_palette)\n- typography guidance: “bold sans-serif title, high contrast”\n- aspect ratio mention: “aspect ratio 1:1.6”\n\nDo NOT generate images, return the prompt only, nothing else Do NOT return anything else."
      },
      "typeVersion": 2.2
    },
    {
      "id": "1508974a-2b9d-41de-bea8-6b69f52ec91a",
      "name": "Content Writer Agent",
      "type": "@n8n/n8n-nodes-langchain.agentTool",
      "position": [
        544,
        -208
      ],
      "parameters": {
        "text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Prompt__User_Message_', ``, 'string') }}",
        "options": {},
        "toolDescription": "You are a Book Writer Agent\nYour task is to write the entire book in Markdown format following the provided writing_brief.\n\nOutput Rules\n\t•\tFormat strictly in Markdown\n\t•\tNo extra text, no explanations, no keys, no JSON\n\t•\tNo fabricated citations\n\nStructure\n\t•\t# Title page with title, subtitle, author\n\t•\t## Table of Contents listing all chapters\n\t•\t## Chapters (match chapter_count), use ## for chapter titles and ### for sections\n\t•\tInclude practical sections, examples, and brief checklists where relevant\n\t•\tEnd with:\n\t•\t## Conclusion / Key Takeaways\n\t•\t## Next Steps / Further Reading (if applicable)\n\nConstraints\n\t•\tRespect language, tone, target_word_count (±15%), and chapter_count.\nDo not add break line between chapter, each chapter should be long and informative.\nReturn in markdown only, nothing else."
      },
      "typeVersion": 2.2
    },
    {
      "id": "8a921536-1306-456a-a606-bed24c4a96ed",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -144,
        -208
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"book_brief\": {\n    \"working_title\": \"Navigating AI Automation\",\n    \"subtitle\": \"A Practical Guide for Busy Teams\",\n    \"topic\": \"AI automation for SMEs\",\n    \"audience\": \"General readers with interest in the topic.\",\n    \"goals\": \"Teach a simple, repeatable automation playbook.\",\n    \"tone\": \"Clear, practical, friendly\",\n    \"language\": \"English\",\n    \"keywords\": [\"automation\",\"AI\",\"workflows\",\"n8n\"],\n    \"target_word_count\": 4000,\n    \"chapter_count\": 6\n  },\n  \"cover_design_brief\": {\n    \"title\": \"Navigating AI Automation\",\n    \"subtitle\": \"A Practical Guide for Busy Teams\",\n    \"author\": \"Anonymous\",\n    \"language\": \"English\",\n    \"style_descriptors\": [\"minimalist\",\"bold typography\",\"clean vector\",\"subtle texture\"],\n    \"visual_motifs\": [\"compass\",\"grid\",\"workflow nodes\"],\n    \"avoid\": [\"logos\",\"trademarked characters\",\"NSFW\"],\n    \"color_palette\": \"High-contrast, modern\",\n    \"composition_notes\": \"Leave top third clean for bold title\",\n    \"aspect_ratio\": \"1:1.6\"\n  },\n  \"writing_brief\": {\n    \"title\": \"Navigating AI Automation\",\n    \"subtitle\": \"A Practical Guide for Busy Teams\",\n    \"author\": \"Anonymous\",\n    \"language\": \"English\",\n    \"tone\": \"Clear, practical, friendly\",\n    \"target_word_count\": 4000,\n    \"chapter_count\": 6,\n    \"outline\": [\"Intro\",\"Foundations\",\"Core Concepts\",\"Workflow\",\"Case Study\",\"Pitfalls & Next Steps\"],\n    \"include_front_matter\": true,\n    \"include_back_matter\": true,\n    \"image_placeholders\": true,\n    \"citations_policy\": \"none unless sources provided\"\n  }\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "700133ce-dbda-4f44-99d4-eef15c49e96c",
      "name": "Book Brief Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -304,
        -432
      ],
      "parameters": {
        "text": "=Create a short book brief from this request:\n- Topic: {{ $json.chatInput }}\n- Audience (optional): Kid\n- Language (optional): English\n- Target word count (optional): 10000\n- Chapter count (optional): 5\n- Author (optional): Trung Tran",
        "options": {
          "systemMessage": "You are General Agent. Your ONLY job in this call: return a single planning JSON object with keys\n{ book_brief, cover_design_brief, writing_brief }.\n\nHard rules:\n- Return EXACTLY one JSON object. No arrays, no markdown, no prose, no notes, no explanations.\n- If a field is missing, FILL a sensible default. Do NOT ask follow-ups or add “please provide”.\n- Top-level keys MUST be exactly: book_brief, cover_design_brief, writing_brief.\n- All arrays MUST be arrays of strings/integers as appropriate (no objects unless specified).\n- Language must mirror the request or default to \"English\".\n- Audience/tone defaults: audience=\"General readers with interest in the topic.\", tone=\"Clear, practical, friendly\".\n- Numbers are integers (e.g., target_word_count, chapter_count).\n\nSchema (shape, not instructions):\n{\n  \"book_brief\": {\n    \"working_title\": \"string\",\n    \"subtitle\": \"string\",\n    \"topic\": \"string\",\n    \"audience\": \"string\",\n    \"goals\": \"string\",\n    \"tone\": \"string\",\n    \"language\": \"string\",\n    \"keywords\": [\"string\"],\n    \"target_word_count\": 4000,\n    \"chapter_count\": 6,\n    \"author\": \"string\"\n  },\n  \"cover_design_brief\": {\n    \"title\": \"string\",\n    \"subtitle\": \"string\",\n    \"author\": \"string\",\n    \"language\": \"string\",\n    \"style_descriptors\": [\"string\"],\n    \"visual_motifs\": [\"string\"],\n    \"avoid\": [\"string\"],\n    \"color_palette\": \"string\",\n    \"composition_notes\": \"string\",\n    \"aspect_ratio\": \"1:1.6\"\n  },\n  \"writing_brief\": {\n    \"title\": \"string\",\n    \"subtitle\": \"string\",\n    \"author\": \"string\",\n    \"language\": \"string\",\n    \"tone\": \"string\",\n    \"target_word_count\": 4000,\n    \"chapter_count\": 6,\n    \"outline\": [\"string\"],\n    \"include_front_matter\": true,\n    \"include_back_matter\": true,\n    \"image_placeholders\": true,\n    \"citations_policy\": \"string\"\n  }\n}"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.1
    },
    {
      "id": "b8def711-2648-4065-adaf-e1d7265050ca",
      "name": "Book Writer Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        384,
        -432
      ],
      "parameters": {
        "text": "=Given the following input:\n{{ $json.output.toJsonString() }}\nUse the Designer Agent and Content Writer Agent to produce the final JSON output with:\n1.\tcover_prompt: a DALL·E input prompt generated from cover_design_brief.\n2.\tbook_content_markdown: the full book content in markdow (must be markdown format) generated from writing_brief.",
        "options": {
          "systemMessage": "You are the Orchestration Agent responsible for managing two specialized tool agents to create a children-friendly book project. Your job is to:\n\t1.\tAnalyze the input JSON which contains:\n\t•\tbook_brief: metadata about the book project\n\t•\tcover_design_brief: instructions for designing the book cover\n\t•\twriting_brief: instructions for writing the book content\n\t2.\tCoordinate two tool agents:\n\t•\tDesigner Agent → Generate a DALL·E-compatible prompt using cover_design_brief.\n\t•\tContent Writer Agent → Generate full book content in Markdown format using writing_brief.\n\t3.\tFinal Output:\n\t•\tA cover prompt (string) to be used later with DALL·E for cover creation.\n\t•\tThe full book manuscript in Markdown format, including front matter, chapters, image placeholders, and back matter as specified.\n\t4.\tConstraints & Style:\n\t•\tThe book should follow the tone, audience, and structure defined in the input.\n\t•\tThe Designer prompt must be visual, concise, and descriptive.\n\t•\tThe book content must be clear, practical, friendly, and suitable for kids.\n\t•\tReturn the results in JSON format with two fields:\n\t•\tcover_prompt\n\t•\tbook_content_markdown (must be markdown format)"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.1
    },
    {
      "id": "74667209-1051-4390-a98d-8c1b3cf3e281",
      "name": "gpt-4.1-mini",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -272,
        -208
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a4ca95db-4b95-4e60-881e-9007443b049d",
      "name": "gpt-4.1-mini1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        96,
        -208
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5bdcf76c-a163-4ff8-aa6a-38c282ccc479",
      "name": "gpt-4.1-mini2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        640,
        0
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "52af3ecd-4d98-4553-becb-1dfc09860bf0",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        864,
        -208
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"bookCoverPrompt\": \"prompt\",\n  \"bookContentMarkdown\": \"markdown\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "04bc9c11-9816-4d26-b3da-9f92559d1f67",
      "name": "Configure metadata ",
      "type": "n8n-nodes-base.set",
      "position": [
        1520,
        -432
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1ff0b9a4-7d60-44ec-b047-e49252f1ace9",
              "name": "Drive Folder ID",
              "type": "string",
              "value": "your_folder_id"
            },
            {
              "id": "523998b6-631e-484e-bb78-fb0b38f00184",
              "name": "S3BaseURL",
              "type": "string",
              "value": "https://your_bucket_name.s3.ap-southeast-1.amazonaws.com/"
            },
            {
              "id": "630ed341-4064-4ae1-b3e1-cf36555bb04c",
              "name": "=PictureURL",
              "type": "string",
              "value": "=https://your_bucket_name.s3.ap-southeast-1.amazonaws.com/{{ $('Book Brief Agent').item.json.output.book_brief.working_title.replaceAll(\" \",'')}}-{{ $workflow.id }}.png"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "770f93e9-f4b7-4d08-861c-5d89de5fa601",
      "name": "Convert document to PDF",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2192,
        -432
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {
          "googleFileConversion": {
            "conversion": {
              "docsToFormat": "application/pdf"
            }
          }
        },
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "fC471es5gk5Mm900",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "8688f126-e490-49e5-9a15-a1f80e999389",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        320,
        0
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "0a085c77-8a24-4297-8b42-de7bfbb64a11",
      "name": "Generate cover image",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1072,
        -432
      ],
      "parameters": {
        "model": "dall-e-2",
        "prompt": "={{ $json.output.bookCoverPrompt }}",
        "options": {},
        "resource": "image"
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "d7705daf-bf94-40a9-8358-661c7617583b",
      "name": "Upload to AWS S3",
      "type": "n8n-nodes-base.awsS3",
      "position": [
        1296,
        -432
      ],
      "parameters": {
        "fileName": "={{ $('Book Brief Agent').item.json.output.book_brief.working_title.replaceAll(\" \",'')}}-{{ $workflow.id }}.{{ $json.fileExtension }}",
        "operation": "upload",
        "bucketName": "wisestackai",
        "additionalFields": {
          "acl": "publicRead",
          "grantRead": true,
          "grantReadAcp": true
        }
      },
      "credentials": {
        "aws": {
          "id": "IZYsJuHhfVJ3PIrC",
          "name": "AWS account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "b0dd7e17-b059-4ac2-bde6-ed3b15dc270a",
      "name": "Build book html",
      "type": "n8n-nodes-base.markdown",
      "position": [
        1744,
        -432
      ],
      "parameters": {
        "mode": "markdownToHtml",
        "options": {},
        "markdown": "=![Alt text]({{ $json.PictureURL }})\n\n{{ $('Book Writer Agent').item.json.output.bookContentMarkdown.replaceAll(\"---\",'/n') }}"
      },
      "typeVersion": 1
    },
    {
      "id": "2254d49e-29c7-4e06-ac75-f4c4c0b60f02",
      "name": "Upload to Google Drive",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1968,
        -432
      ],
      "parameters": {
        "url": "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&supportsAllDrives=true",
        "body": "=--foo_bar_baz\nContent-Type: application/json; charset=UTF-8\n\n{\n  \"name\": \"{{ $('Book Brief Agent').item.json.output.book_brief.working_title }}: {{ $('Book Brief Agent').item.json.output.book_brief.subtitle }}\",\n  \"mimeType\": \"application/vnd.google-apps.document\",\n  \"parents\": [\"{{ $json['Drive Folder ID'] }}\"]\n}\n\n--foo_bar_baz\nContent-Type: text/html; charset=UTF-8\n\n{{ $json.data }}\n--foo_bar_baz--",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendQuery": true,
        "contentType": "raw",
        "sendHeaders": true,
        "authentication": "predefinedCredentialType",
        "rawContentType": "multipart/related; boundary=foo_bar_baz",
        "queryParameters": {
          "parameters": [
            {
              "name": "uploadType",
              "value": "multipart"
            },
            {
              "name": "supportsAllDrives",
              "value": "true"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "boundary",
              "value": "foo_bar_baz"
            }
          ]
        },
        "nodeCredentialType": "googleDriveOAuth2Api"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "fC471es5gk5Mm900",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "53f746bb-13f6-4807-9bc8-154f546da928",
      "name": "Archive to Drive Folder",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2416,
        -432
      ],
      "parameters": {
        "name": "={{ $json.name }}.pdf",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1IPcko8bzogO3W4mxhrW2Q017QA0Lc5MI",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1IPcko8bzogO3W4mxhrW2Q017QA0Lc5MI",
          "cachedResultName": "SmartSales"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "fC471es5gk5Mm900",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "45fd8cf7-c850-4c7a-bb7a-af78cf6fd675",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1584,
        -1008
      ],
      "parameters": {
        "width": 992,
        "height": 1920,
        "content": "# Multi-Agent Book Creation Workflow with AI Tool Node and GPT-4, DALL-E\n[![Watch the video](https://wisestackai.s3.ap-southeast-1.amazonaws.com/multi-agent-book-creation-workflow-with-ai-tool-node-and-gpt-4-dall-e.jpg)](https://www.youtube.com/watch?v=o1x8Tw_7FwQ)\n\n## **Who’s it for**\nThis workflow is designed for:\n- **Content creators** who want to generate books or structured documents automatically.  \n- **Educators and trainers** who need quick course materials, eBooks, or study guides.  \n- **Automation enthusiasts** exploring **multi-agent systems** using the newly released **AI Tool Node** in n8n.  \n- **Developers** looking for a reference template to understand **orchestration of multiple AI agents** with structured output.  \n\n## **How it works / What it does**\nThis template demonstrates a **multi-agent orchestration system** powered by AI Tool Nodes:  \n1. **Trigger**: Workflow starts when a chat message is received.  \n2. **Book Brief Agent**: Generates the initial book concept (title, subtitle, and outline).  \n3. **Book Writer Agent**: Expands the outline into full content by collaborating with two sub-agents:  \n   - **Designer Agent** → Provides layout/design suggestions.  \n   - **Content Writer Agent** → Drafts and refines chapters.  \n4. **Generate Cover Image**: AI generates a custom book cover image.  \n5. **Upload to AWS S3**: Stores the cover image securely.  \n6. **Configure Metadata**: Adds metadata for title, author, and description.  \n7. **Build Book HTML**: Converts markdown-based content into HTML format.  \n8. **Upload to Google Drive**: Saves the HTML content for processing.  \n9. **Convert to PDF**: Transforms the book into a professional PDF.  \n10. **Archive to Google Drive**: Final version is archived for safe storage.  \n\nThis workflow showcases **multi-agent coordination, structured parsing, and seamless integration** with cloud storage services.  \n\n## **How to set up**\n1. **Import the workflow** into n8n.  \n2. Configure the following connections:  \n   - **OpenAI** (for Book Brief, Book Writer, Designer, and Content Writer Agents).  \n   - **AWS S3** (for image storage).  \n   - **Google Drive** (for document storage & archiving).  \n3. Add your API keys and credentials in **n8n credentials manager**.  \n4. Test the workflow by sending a sample chat message (e.g., *“Write a book about AI in education”*).  \n5. Verify outputs in Google Drive (HTML + PDF) and AWS S3 (cover image).  \n\n## **Requirements**\n- **n8n** (latest version with **AI Tool Node** support).  \n- **OpenAI API key** (to power multi-agent models).  \n- **AWS account** (with S3 bucket for storing images).  \n- **Google Drive integration** (for document storage and archiving).  \n- Basic familiarity with **workflow setup in n8n**.  \n\n## **How to customize the workflow**\n- **Switch Models**: Replace `gpt-4.1-mini` with other models (faster, cheaper, or more powerful).  \n- **Add More Agents**: Introduce agents for **editing, fact-checking, or translation**.  \n- **Change Output Format**: Export to **EPUB, DOCX, or Markdown** instead of PDF.  \n- **Branding Options**: Modify the **cover generation prompt** to include company logos or specific style.  \n- **Extend Storage**: Add **Dropbox, OneDrive, or Notion** integration for additional archiving.  \n- **Trigger Alternatives**: Replace chat trigger with **form submission, webhook, or schedule-based runs**.  \n\n✅ This workflow acts as a **free, plug-and-play template** to showcase how **multi-agents + AI Tool Node** can work together to automate complex content creation pipelines.  "
      },
      "typeVersion": 1
    },
    {
      "id": "e9b3dc5a-aac3-4323-8071-e873c0e4dbc5",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -560,
        -608
      ],
      "parameters": {
        "height": 128,
        "content": "### 1. Trigger on Chat Message\nThe workflow begins when a chat message is received, acting as the initial input to start the automation."
      },
      "typeVersion": 1
    },
    {
      "id": "e24ae4de-8286-4b5b-a47d-296c53c065bf",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        -624
      ],
      "parameters": {
        "content": "### 2. Generate Book Brief\nThe **Book Brief Agent** creates the initial concept, including the book’s title, subtitle, and structured outline."
      },
      "typeVersion": 1
    },
    {
      "id": "e8b11622-5a76-4de4-8c93-fcdc17368d8e",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        272,
        -624
      ],
      "parameters": {
        "width": 512,
        "height": 144,
        "content": "### 3. Expand with Book Writer Agent\nThe **Book Writer Agent** takes the brief and expands it into detailed content by coordinating with sub-agents:\n- **Designer Agent** – suggests layout and design elements.  \n- **Content Writer Agent** – writes and refines chapters.  "
      },
      "typeVersion": 1
    },
    {
      "id": "1fd03f2c-4309-4ffc-96cd-aa7b3b0063d3",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        -608
      ],
      "parameters": {
        "width": 384,
        "height": 128,
        "content": "### 4. Create Book Cover Image\n- An AI model generates a custom book cover image to visually complement the content.\n- The generated cover image is securely stored in an **AWS S3 bucket**.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "0494df9e-3262-43c4-b805-1ad2523062ee",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1504,
        -608
      ],
      "parameters": {
        "width": 560,
        "height": 144,
        "content": "### 5. Build Book in HTML\n- The written content is converted from Markdown into HTML format for easier formatting and conversion.\n- The HTML book file is uploaded to **Google Drive** for storage and further processing."
      },
      "typeVersion": 1
    },
    {
      "id": "242a61f9-9867-4db4-82c7-7f1cd63555b0",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2112,
        -608
      ],
      "parameters": {
        "width": 448,
        "height": 144,
        "content": "\n### 6. Convert to PDF\n- The HTML content is transformed into a **professional PDF document**.\n- The finished PDF is archived in a specified **Google Drive folder** for safe storage and easy access."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "6b734114-8c9f-465a-a39a-dec9e185ad7e",
  "connections": {
    "74667209-1051-4390-a98d-8c1b3cf3e281": {
      "ai_languageModel": [
        [
          {
            "node": "700133ce-dbda-4f44-99d4-eef15c49e96c",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "a4ca95db-4b95-4e60-881e-9007443b049d": {
      "ai_languageModel": [
        [
          {
            "node": "b8def711-2648-4065-adaf-e1d7265050ca",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "5bdcf76c-a163-4ff8-aa6a-38c282ccc479": {
      "ai_languageModel": [
        [
          {
            "node": "1508974a-2b9d-41de-bea8-6b69f52ec91a",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "582637d7-5961-463c-bf35-d4172eceec30": {
      "ai_tool": [
        [
          {
            "node": "b8def711-2648-4065-adaf-e1d7265050ca",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "b0dd7e17-b059-4ac2-bde6-ed3b15dc270a": {
      "main": [
        [
          {
            "node": "2254d49e-29c7-4e06-ac75-f4c4c0b60f02",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "700133ce-dbda-4f44-99d4-eef15c49e96c": {
      "main": [
        [
          {
            "node": "b8def711-2648-4065-adaf-e1d7265050ca",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d7705daf-bf94-40a9-8358-661c7617583b": {
      "main": [
        [
          {
            "node": "04bc9c11-9816-4d26-b3da-9f92559d1f67",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b8def711-2648-4065-adaf-e1d7265050ca": {
      "main": [
        [
          {
            "node": "0a085c77-8a24-4297-8b42-de7bfbb64a11",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8688f126-e490-49e5-9a15-a1f80e999389": {
      "ai_languageModel": [
        [
          {
            "node": "582637d7-5961-463c-bf35-d4172eceec30",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "04bc9c11-9816-4d26-b3da-9f92559d1f67": {
      "main": [
        [
          {
            "node": "b0dd7e17-b059-4ac2-bde6-ed3b15dc270a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1508974a-2b9d-41de-bea8-6b69f52ec91a": {
      "ai_tool": [
        [
          {
            "node": "b8def711-2648-4065-adaf-e1d7265050ca",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "0a085c77-8a24-4297-8b42-de7bfbb64a11": {
      "main": [
        [
          {
            "node": "d7705daf-bf94-40a9-8358-661c7617583b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2254d49e-29c7-4e06-ac75-f4c4c0b60f02": {
      "main": [
        [
          {
            "node": "770f93e9-f4b7-4d08-861c-5d89de5fa601",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "770f93e9-f4b7-4d08-861c-5d89de5fa601": {
      "main": [
        [
          {
            "node": "53f746bb-13f6-4807-9bc8-154f546da928",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8a921536-1306-456a-a606-bed24c4a96ed": {
      "ai_outputParser": [
        [
          {
            "node": "700133ce-dbda-4f44-99d4-eef15c49e96c",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "52af3ecd-4d98-4553-becb-1dfc09860bf0": {
      "ai_outputParser": [
        [
          {
            "node": "b8def711-2648-4065-adaf-e1d7265050ca",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "8186d3a3-15f5-456b-8ba4-d62ea9ea1bd4": {
      "main": [
        [
          {
            "node": "700133ce-dbda-4f44-99d4-eef15c49e96c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 内容创作, 多模态 AI

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量25
分类2
节点类型12
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Trung Tran

Trung Tran

@trungtran

Empowering small and medium businesses with smart automation and practical AI, no big tech team required.

外部链接
在 n8n.io 查看

分享此工作流

分类

分类: 34