This workflow corresponds to n8n.io template #7482 — we link there as the canonical source.
This workflow follows the Agent → Agenttool recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "Dzkcrsp1EXXItaYc",
"meta": {
"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
],
"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\u00b7E 2 and include:\n- focal motif(s) matching brief.visual_motifs (1\u20133)\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: \u201cbold sans-serif title, high contrast\u201d\n- aspect ratio mention: \u201caspect ratio 1:1.6\u201d\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\u2022\tFormat strictly in Markdown\n\t\u2022\tNo extra text, no explanations, no keys, no JSON\n\t\u2022\tNo fabricated citations\n\nStructure\n\t\u2022\t# Title page with title, subtitle, author\n\t\u2022\t## Table of Contents listing all chapters\n\t\u2022\t## Chapters (match chapter_count), use ## for chapter titles and ### for sections\n\t\u2022\tInclude practical sections, examples, and brief checklists where relevant\n\t\u2022\tEnd with:\n\t\u2022\t## Conclusion / Key Takeaways\n\t\u2022\t## Next Steps / Further Reading (if applicable)\n\nConstraints\n\t\u2022\tRespect language, tone, target_word_count (\u00b115%), 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 \u201cplease provide\u201d.\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\u00b7E 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\u2022\tbook_brief: metadata about the book project\n\t\u2022\tcover_design_brief: instructions for designing the book cover\n\t\u2022\twriting_brief: instructions for writing the book content\n\t2.\tCoordinate two tool agents:\n\t\u2022\tDesigner Agent \u2192 Generate a DALL\u00b7E-compatible prompt using cover_design_brief.\n\t\u2022\tContent Writer Agent \u2192 Generate full book content in Markdown format using writing_brief.\n\t3.\tFinal Output:\n\t\u2022\tA cover prompt (string) to be used later with DALL\u00b7E for cover creation.\n\t\u2022\tThe full book manuscript in Markdown format, including front matter, chapters, image placeholders, and back matter as specified.\n\t4.\tConstraints & Style:\n\t\u2022\tThe book should follow the tone, audience, and structure defined in the input.\n\t\u2022\tThe Designer prompt must be visual, concise, and descriptive.\n\t\u2022\tThe book content must be clear, practical, friendly, and suitable for kids.\n\t\u2022\tReturn the results in JSON format with two fields:\n\t\u2022\tcover_prompt\n\t\u2022\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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"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": "=\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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"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[](https://www.youtube.com/watch?v=o1x8Tw_7FwQ)\n\n## **Who\u2019s 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** \u2192 Provides layout/design suggestions. \n - **Content Writer Agent** \u2192 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., *\u201cWrite a book about AI in education\u201d*). \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\u2705 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\u2019s 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** \u2013 suggests layout and design elements. \n- **Content Writer Agent** \u2013 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,
"settings": {
"executionOrder": "v1"
},
"versionId": "6b734114-8c9f-465a-a39a-dec9e185ad7e",
"connections": {
"gpt-4.1-mini": {
"ai_languageModel": [
[
{
"node": "Book Brief Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"gpt-4.1-mini1": {
"ai_languageModel": [
[
{
"node": "Book Writer Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"gpt-4.1-mini2": {
"ai_languageModel": [
[
{
"node": "Content Writer Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Designer Agent": {
"ai_tool": [
[
{
"node": "Book Writer Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Build book html": {
"main": [
[
{
"node": "Upload to Google Drive",
"type": "main",
"index": 0
}
]
]
},
"Book Brief Agent": {
"main": [
[
{
"node": "Book Writer Agent",
"type": "main",
"index": 0
}
]
]
},
"Upload to AWS S3": {
"main": [
[
{
"node": "Configure metadata ",
"type": "main",
"index": 0
}
]
]
},
"Book Writer Agent": {
"main": [
[
{
"node": "Generate cover image",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Designer Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Configure metadata ": {
"main": [
[
{
"node": "Build book html",
"type": "main",
"index": 0
}
]
]
},
"Content Writer Agent": {
"ai_tool": [
[
{
"node": "Book Writer Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Generate cover image": {
"main": [
[
{
"node": "Upload to AWS S3",
"type": "main",
"index": 0
}
]
]
},
"Upload to Google Drive": {
"main": [
[
{
"node": "Convert document to PDF",
"type": "main",
"index": 0
}
]
]
},
"Convert document to PDF": {
"main": [
[
{
"node": "Archive to Drive Folder",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Book Brief Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Structured Output Parser1": {
"ai_outputParser": [
[
{
"node": "Book Writer Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "Book Brief Agent",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
awsgoogleDriveOAuth2ApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
[](https://www.youtube.com/watch?v=o1x8Tw_7FwQ)
Source: https://n8n.io/workflows/7482/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Who’s it for Creators who want to create faceless videos automatically, while keeping human oversight and quality control.
The Best Linkedin Posting System. Uses httpRequest, lmChatOpenAi, agent, chatTrigger. Chat trigger; 49 nodes.
Who is this workflow for? This workflow is designed for SEO analysts, content creators, marketing agencies, and developers who need to index a website and then interact with its content as if it were
Categories: AI Agents, Design Automation, Business Tools
This project is an automation workflow that generates a personalized resume and cover letter for each job listing. Generates an HTML resume from your data. Hosts it live on GitHub Pages. Converts it t