8
n8n 中文网amn8n.com

从Google Drive生成n8n模板描述

高级

这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 27 个节点。主要使用 Code, Gmail, GoogleDrive, GoogleSheets, ManualTrigger 等节点。 使用Azure GPT-4从Google Drive生成模板描述

前置要求
  • Google 账号和 Gmail API 凭证
  • Google Drive API 凭证
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "zX0SNUBqlonCm9UQ",
  "meta": {
    "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
    "templateCredsSetupCompleted": true
  },
  "name": "从Google Drive生成n8n模板描述",
  "tags": [],
  "nodes": [
    {
      "id": "ddb41538-8446-4938-9233-7475b5a63fbb",
      "name": "当点击\"执行工作流\"时",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -688,
        -64
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "7c0fd462-7b25-4e1f-852d-5b526f16de0f",
      "name": "从文件提取",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        208,
        -192
      ],
      "parameters": {
        "options": {},
        "operation": "fromJson"
      },
      "typeVersion": 1
    },
    {
      "id": "5e02aa21-b341-489c-82fb-feacb0747b13",
      "name": "下载文件",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -16,
        -192
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{$json[\"id\"]}}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "E7nEqUL27GUx1xHa",
          "name": "Techdome Account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "016bff72-bd86-4eba-9c10-86853cd102cc",
      "name": "搜索文件和文件夹",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -464,
        -64
      ],
      "parameters": {
        "filter": {
          "folderId": {
            "__rl": true,
            "mode": "list",
            "value": "1HP3LnTPLwe81xUrp0P6aV2nJKdX6BIcM",
            "cachedResultUrl": "https://drive.google.com/drive/folders/1HP3LnTPLwe81xUrp0P6aV2nJKdX6BIcM",
            "cachedResultName": "n8n json checker"
          }
        },
        "options": {},
        "resource": "fileFolder",
        "returnAll": true
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "E7nEqUL27GUx1xHa",
          "name": "Techdome Account"
        }
      },
      "typeVersion": 3,
      "alwaysOutputData": true
    },
    {
      "id": "eca112e7-3b66-455e-8086-2d3bf701cd3b",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -832,
        -320
      ],
      "parameters": {
        "height": 192,
        "content": "## ⚙️ 步骤1:手动触发器"
      },
      "typeVersion": 1
    },
    {
      "id": "7e6d213b-112d-4759-bc8d-2d5f675a1098",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -544,
        96
      ],
      "parameters": {
        "width": 288,
        "height": 320,
        "content": "## 📂 步骤2:搜索文件和文件夹"
      },
      "typeVersion": 1
    },
    {
      "id": "e51a77b0-95e8-418a-89d3-2e610c6cac7d",
      "name": "便签 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        496,
        208
      ],
      "parameters": {
        "height": 304,
        "content": "## 🧠 步骤8:存储AI上下文 (LangChain Memory)"
      },
      "typeVersion": 1
    },
    {
      "id": "8ff67280-778b-4de1-86d2-82905c3ed3e4",
      "name": "便签 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1184,
        -496
      ],
      "parameters": {
        "height": 288,
        "content": "## ✨ 步骤11:格式化HTML电子邮件"
      },
      "typeVersion": 1
    },
    {
      "id": "e8695343-49c0-4cf3-b0b0-305b36c5a450",
      "name": "便签 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        816,
        -592
      ],
      "parameters": {
        "height": 368,
        "content": "## 🧾 步骤10:格式化Markdown描述"
      },
      "typeVersion": 1
    },
    {
      "id": "453d0845-afca-4018-a7be-b464150598d9",
      "name": "便签 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        160
      ],
      "parameters": {
        "height": 288,
        "content": "## 🧩 步骤9:将AI响应解析为结构化JSON"
      },
      "typeVersion": 1
    },
    {
      "id": "af7d1723-3163-4083-857a-d3367b9cbd79",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        192,
        176
      ],
      "parameters": {
        "height": 320,
        "content": "## 💬 步骤7:连接到Azure OpenAI GPT模型"
      },
      "typeVersion": 1
    },
    {
      "id": "205d405d-85ff-4ee8-be90-31df1da4f56a",
      "name": "便签7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        -688
      ],
      "parameters": {
        "height": 448,
        "content": "## 🤖 步骤6:AI代理"
      },
      "typeVersion": 1
    },
    {
      "id": "6181afda-2715-438e-8a4a-4233ef3b824b",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        -400
      ],
      "parameters": {
        "height": 192,
        "content": "## 📦 步骤5:提取JSON数据"
      },
      "typeVersion": 1
    },
    {
      "id": "da26533d-f55d-4e7c-b97a-1d7be91897f8",
      "name": "### 替换 Airtable 连接",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -528
      ],
      "parameters": {
        "height": 320,
        "content": "## ⬇️ 步骤4:下载文件"
      },
      "typeVersion": 1
    },
    {
      "id": "129b4156-d3ec-4528-9be9-743dc3371fc1",
      "name": "便签10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        -352
      ],
      "parameters": {
        "height": 240,
        "content": "## 🔁 步骤3:循环处理JSON"
      },
      "typeVersion": 1
    },
    {
      "id": "c51e2df4-3e5a-4f65-b77f-24d6ce7dcec2",
      "name": "便签11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1728,
        -240
      ],
      "parameters": {
        "height": 368,
        "content": "## 📧 步骤13:发送带描述的电子邮件"
      },
      "typeVersion": 1
    },
    {
      "id": "68f7f509-ebe2-45f1-a4d7-a3f306222dc4",
      "name": "便签13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1360,
        -352
      ],
      "parameters": {
        "width": 384,
        "height": 448,
        "content": "## 🟨 工作流概述"
      },
      "typeVersion": 1
    },
    {
      "id": "35a62d62-6ede-4b06-8d04-a4d3760e220f",
      "name": "循环处理JSON",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -240,
        -64
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "77e3adc9-3c23-4eb8-8c29-0cd630ccb8cc",
      "name": "AI 代理",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        496,
        -192
      ],
      "parameters": {
        "text": "=You are given this n8n workflow JSON:\n\n{{ JSON.stringify($json) }}\n\nGenerate the **best possible template title** and a **structured description** following the rules.  \nMake sure the title matches the format (Action verb + thing being manipulated + to/on/in/from + where).  \nThe description must follow the defined section structure and highlight actual logic from the workflow.\n",
        "options": {
          "systemMessage": "=You are an **expert n8n template description generator**.  \nYour role is to analyze a provided workflow JSON and generate both a **precise template title** and a **structured description** suitable for n8n’s Template Publishing Guidelines.  \n\n---\n\n### 🔑 Title Rules\n- Format: **Action verb** + **thing being manipulated** + **to/on/in/from** + **where**  \n  - Example: “One-way contact sync from Pipedrive to HubSpot”  \n- The title must:  \n  - Be **short (≤10 words)**, with no filler.  \n  - Use **active verbs** (Automate, Sync, Track, Re-engage, Generate, etc.).  \n  - Clearly name the **services, apps, or data being connected**.  \n  - Indicate **directionality** where applicable (from → to).  \n\n---\n\n### 📝 Description Style Guidelines\n- Write in **professional, user-friendly language**.  \n- Use **light emoji markers** (📊, ⚡, 🚀, 📧) to improve readability.  \n- Avoid generic filler — **every point must reflect actual workflow logic**.  \n- Keep explanations **short, direct, and clear**.  \n- Structure content in **bulleted lists** under clear section headers.  \n- Ensure **accuracy to the JSON nodes and connections**.  \n- Use an **automation-savvy tone** (confident, helpful, concise).  \n\n---\n\n### 📦 Output Sections (Always in This Order)\n\n1. **title**  \n   - A concise workflow title that follows the naming convention above.  \n\n2. **overview**  \n   - A one-line, catchy summary of the workflow’s purpose.  \n\n3. **what_this_template_does**  \n   - Step-by-step, **chronological explanation** of the workflow.  \n   - Mention triggers, actions, and end results in plain English.  \n\n4. **key_benefits**  \n   - 4–6 **outcome-focused benefits** (time saved, efficiency, error reduction).  \n\n5. **features**  \n   - Breakdown of **nodes, triggers, filters, and integrations**.  \n\n6. **requirements**  \n   - List of **services, credentials, or accounts** needed.  \n\n7. **target_audience**  \n   - Who the workflow is most useful for (teams, roles, industries).  \n\n8. **setup_instructions**  \n   - Practical, **step-by-step setup guidance** (credentials, environment variables, import, testing, activation).  \n\n---\n\n### ⚠️ Critical Rules\n- Do **not** invent steps or tools not present in the JSON.  \n- If a section has no applicable content, **omit gracefully** (do not fill with placeholders).  \n- Ensure consistency: every bullet point must tie back to actual workflow logic.  \n- Avoid redundancy — keep the flow **concise but complete**.  \n\n---\n\n### ✅ Example Output Format (for clarity)\n\n**title:**  \nOne-way contact sync from Pipedrive to HubSpot  \n\n**overview:**  \nAutomatically sync new contacts from Pipedrive into HubSpot CRM to keep sales and marketing aligned. 🔄  \n\n**what_this_template_does:**  \n- Runs every hour via schedule trigger ⏰  \n- Fetches new contacts from Pipedrive 📥  \n- Creates or updates matching contacts in HubSpot CRM 📊  \n\n**key_benefits:**  \n- ✅ No more manual contact transfers  \n- ✅ Keeps CRM records consistent  \n- ✅ Saves time for sales teams  \n\n**features:**  \n- Hourly schedule trigger  \n- Pipedrive API integration  \n- HubSpot CRM integration  \n\n**requirements:**  \n- Pipedrive OAuth2 credentials  \n- HubSpot OAuth2 credentials  \n\n**target_audience:**  \n- Sales teams managing dual CRMs  \n- Agencies working with multiple clients  \n\n**setup_instructions:**  \n- Connect Pipedrive and HubSpot accounts 🔑  \n- Import the workflow JSON 📦  \n- Adjust sync interval if needed 🕒  \n- Activate workflow 🚀  \n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.1
    },
    {
      "id": "c3f2e1e9-69db-4ccb-9022-2ebc4b45e88d",
      "name": "格式化Markdown描述",
      "type": "n8n-nodes-base.code",
      "position": [
        896,
        -192
      ],
      "parameters": {
        "jsCode": "// Get input data\nconst inputData = $input.all();\n\n// Function to convert array to numbered list with emojis\nfunction formatList(items, emoji = '') {\n  return items.map((item, index) => `${index + 1}. ${item} ${emoji}`).join('\\n');\n}\n\n// Function to convert array to bullet list with checkmarks\nfunction formatBenefits(items) {\n  return items.map(item => `✅ ${item}`).join('\\n');\n}\n\n// Function to convert array to bullet list with asterisks\nfunction formatFeatures(items) {\n  return items.map(item => `* ${item}`).join('\\n');\n}\n\n// Function to convert array to bullet list with emojis\nfunction formatAudience(items) {\n  const emojis = ['👩‍💼', '🔄', '🏢', '🌐', '📊'];\n  return items.map((item, index) => `* ${item} ${emojis[index] || '✨'}`).join('\\n');\n}\n\n// Function to convert setup instructions\nfunction formatSetup(items) {\n  const emojis = ['🔑', '⚙️', '🕒', '📦', '✅', '🚀'];\n  return items.map((item, index) => `${index + 1}. ${item} ${emojis[index] || '📌'}`).join('\\n');\n}\n\n// Process each item in the input\nconst results = inputData.map(item => {\n  const data = item.json.output;\n  \n  // Build the formatted output\n  let formattedOutput = `**Description**\\n`;\n  formattedOutput += `${data.overview} 💌📊💬\\n\\n`;\n  \n  formattedOutput += `**What This Template Does**\\n`;\n  formattedOutput += formatList(data.what_this_template_does, '') + '\\n\\n';\n  \n  formattedOutput += `**Key Benefits**\\n`;\n  formattedOutput += formatBenefits(data.key_benefits) + '\\n\\n';\n  \n  formattedOutput += `**Features**\\n`;\n  formattedOutput += formatFeatures(data.features) + '\\n\\n';\n  \n  formattedOutput += `**Requirements**\\n`;\n  formattedOutput += data.requirements.map(item => `* ${item}`).join('\\n') + '\\n\\n';\n  \n  formattedOutput += `**Target Audience**\\n`;\n  formattedOutput += formatAudience(data.target_audience) + '\\n\\n';\n  \n  formattedOutput += `**Step-by-Step Setup Instructions**\\n`;\n  formattedOutput += formatSetup(data.setup_instructions);\n  \n  return {\n    json: {\n      title: data.title,\n      formatted_description: formattedOutput\n    }\n  };\n});\n\nreturn results;"
      },
      "typeVersion": 2
    },
    {
      "id": "11f7b052-0cb4-4cfe-8aae-bf933d797a5a",
      "name": "格式化HTML电子邮件",
      "type": "n8n-nodes-base.code",
      "position": [
        1344,
        -192
      ],
      "parameters": {
        "jsCode": "// Get input data\nconst inputData = $input.all();\n\nconst results = inputData.map(item => {\n  const data = item.json;\n  const description = data.formatted_description || '';\n\n  // Parse sections\n  const sections = {\n    overview: description.match(/\\*\\*Description\\*\\*\\n(.*?)\\n\\n/s)?.[1]?.trim() || '',\n    what_does: description.match(/\\*\\*What This Template Does\\*\\*\\n(.*?)\\n\\n/s)?.[1]?.trim() || '',\n    benefits: description.match(/\\*\\*Key Benefits\\*\\*\\n(.*?)\\n\\n/s)?.[1]?.trim() || '',\n    features: description.match(/\\*\\*Features\\*\\*\\n(.*?)\\n\\n/s)?.[1]?.trim() || '',\n    requirements: description.match(/\\*\\*Requirements\\*\\*\\n(.*?)\\n\\n/s)?.[1]?.trim() || '',\n    audience: description.match(/\\*\\*Target Audience\\*\\*\\n(.*?)\\n\\n/s)?.[1]?.trim() || '',\n    setup: description.match(/\\*\\*Step-by-Step Setup Instructions\\*\\*\\n(.*?)$/s)?.[1]?.trim() || ''\n  };\n\n  // 🧾 Plain text version for Google Sheets logging\n  const plainText = `\n${data.title}\n\n📋 Overview:\n${sections.overview}\n\n⚙️ What This Template Does:\n${sections.what_does}\n\n🚀 Key Benefits:\n${sections.benefits}\n\n✨ Features:\n${sections.features}\n\n🔐 Requirements:\n${sections.requirements}\n\n🎯 Target Audience:\n${sections.audience}\n\n📝 Step-by-Step Setup Instructions:\n${sections.setup}\n\n🎯 Ready to automate? Import this template into your n8n instance and get started!\n  `.trim();\n\n  // 💌 HTML version for Email\n  const htmlEmail = `\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>${data.title}</title>\n<style>\n  body {font-family: 'Segoe UI', Arial, sans-serif; line-height:1.6; color:#333; background:#f5f5f5; padding:30px;}\n  .container {background:#fff; border-radius:10px; padding:40px; max-width:800px; margin:auto; box-shadow:0 2px 8px rgba(0,0,0,0.1);}\n  h1 {color:#1f2937;}\n  h2 {color:#4f46e5; border-bottom:2px solid #eee; padding-bottom:6px;}\n  .section {margin-bottom:30px;}\n  .highlight {background:#eef2ff; padding:15px; border-radius:6px;}\n  .benefit {background:#ecfdf5; padding:10px; border-left:4px solid #22c55e; margin-bottom:10px;}\n  .feature {background:#eff6ff; padding:10px; border-left:4px solid #3b82f6; margin-bottom:10px;}\n  .requirement {background:#fef3c7; padding:10px; border-left:4px solid #f59e0b; margin-bottom:10px;}\n  .audience {background:#fce7f3; padding:10px; border-left:4px solid #ec4899; margin-bottom:10px;}\n  .setup {background:#f9fafb; padding:10px; border-left:4px solid #6366f1; margin-bottom:10px;}\n  .footer {text-align:center; color:#888; font-size:14px; margin-top:30px;}\n</style>\n</head>\n<body>\n  <div class=\"container\">\n    <h1>${data.title}</h1>\n    <div class=\"section\"><h2>📋 Overview</h2><div class=\"highlight\">${sections.overview}</div></div>\n    <div class=\"section\"><h2>⚙️ What This Template Does</h2>${sections.what_does.split('\\n').map(l => `<div class=\"setup\">${l}</div>`).join('')}</div>\n    <div class=\"section\"><h2>🚀 Key Benefits</h2>${sections.benefits.split('\\n').map(l => `<div class=\"benefit\">${l}</div>`).join('')}</div>\n    <div class=\"section\"><h2>✨ Features</h2>${sections.features.split('\\n').map(l => `<div class=\"feature\">${l}</div>`).join('')}</div>\n    <div class=\"section\"><h2>🔐 Requirements</h2>${sections.requirements.split('\\n').map(l => `<div class=\"requirement\">${l}</div>`).join('')}</div>\n    <div class=\"section\"><h2>🎯 Target Audience</h2>${sections.audience.split('\\n').map(l => `<div class=\"audience\">${l}</div>`).join('')}</div>\n    <div class=\"section\"><h2>📝 Step-by-Step Setup Instructions</h2>${sections.setup.split('\\n').map(l => `<div class=\"setup\">${l}</div>`).join('')}</div>\n    <div class=\"footer\">🎯 Ready to automate? Import this template into your n8n instance and start building magic!</div>\n  </div>\n</body>\n</html>\n  `.trim();\n\n  // Return both\n  return {\n    json: {\n      title: data.title,\n      formatted_description: data.formatted_description,\n      html_email: htmlEmail,     // for Gmail\n      plain_text_email: plainText, // for Sheets\n      subject: `n8n Template: ${data.title}`,\n      preview_text: sections.overview.substring(0, 100) + '...'\n    }\n  };\n});\n\nreturn results;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "36faaf0f-90a2-42c8-909a-8544a48d621b",
      "name": "便签14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1088,
        -16
      ],
      "parameters": {
        "height": 192,
        "content": "## 🧾 步骤12:保存到Google Sheets"
      },
      "typeVersion": 1
    },
    {
      "id": "61d49f4e-e961-4359-8735-925a55eaa7f8",
      "name": "保存到Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1120,
        -192
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "title",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "formatted_description",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "formatted_description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u_PoDeJHJnMyocSXmGH0sO9ybo5LrUszTkU6p3KzYAg/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1u_PoDeJHJnMyocSXmGH0sO9ybo5LrUszTkU6p3KzYAg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u_PoDeJHJnMyocSXmGH0sO9ybo5LrUszTkU6p3KzYAg/edit?usp=drivesdk",
          "cachedResultName": "JSON Data with Description"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "kpPEOLCGn963qpoh",
          "name": "automations@techdome.ai"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "d031644e-84ea-4121-84d2-41e9d05207b5",
      "name": "发送带描述的电子邮件",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1568,
        -64
      ],
      "webhookId": "0f500fb4-094e-48b6-a98e-da066652481b",
      "parameters": {
        "sendTo": "your-email@example.com",
        "message": "={{ $json.html_email }}",
        "options": {},
        "subject": "={{ $json.subject }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "gEIaWCTvGfYjMSb3",
          "name": "Gmail credentials"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "8d655ca0-13d7-41ab-b3cf-e1387cdb61d0",
      "name": "存储AI上下文 (LangChain Memory)",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        560,
        32
      ],
      "parameters": {
        "sessionKey": "\"json_review\"",
        "sessionIdType": "customKey",
        "contextWindowLength": 7
      },
      "typeVersion": 1.3
    },
    {
      "id": "3064a4d2-4329-4371-bc5d-47ee568205ef",
      "name": "连接到Azure OpenAI GPT模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
      "position": [
        432,
        32
      ],
      "parameters": {
        "model": "gpt-4o",
        "options": {}
      },
      "credentials": {
        "azureOpenAiApi": {
          "id": "C3WzT18XqF8OdVM6",
          "name": "Azure Open AI account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ad5ee442-1644-4ab2-bdf9-cbf84447a5ff",
      "name": "将AI响应解析为结构化JSON",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        688,
        32
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"title\": \"string\",\n  \"overview\": \"string\",\n  \"what_this_template_does\": [\"step1\", \"step2\", \"step3\"],\n  \"key_benefits\": [\"benefit1\", \"benefit2\", \"benefit3\"],\n  \"features\": [\"feature1\", \"feature2\", \"feature3\"],\n  \"requirements\": [\"requirement1\", \"requirement2\"],\n  \"target_audience\": [\"audience1\", \"audience2\"],\n  \"setup_instructions\": [\"instruction1\", \"instruction2\", \"instruction3\"]\n}\n"
      },
      "typeVersion": 1.3
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "f22edb61-a906-4778-9a79-8d50a8fb1b2d",
  "connections": {
    "AI Agent": {
      "main": [
        [
          {
            "node": "Format Markdown Description",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download file": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over JSONS": {
      "main": [
        [],
        [
          {
            "node": "Download file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format HTML Email": {
      "main": [
        [
          {
            "node": "Send Email  With Description",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save To Google Sheets": {
      "main": [
        [
          {
            "node": "Format HTML Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search files and folders": {
      "main": [
        [
          {
            "node": "Loop Over JSONS",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Markdown Description": {
      "main": [
        [
          {
            "node": "Save To Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Email  With Description": {
      "main": [
        [
          {
            "node": "Loop Over JSONS",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Connect to Azure OpenAI GPT Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Store AI Context (LangChain Memory)": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "Search files and folders",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Response into Structured JSON": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

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

需要付费吗?

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

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

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

作者
Rahul Joshi

Rahul Joshi

@rahul08

Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.

外部链接
在 n8n.io 查看

分享此工作流