从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
使用的节点 (27)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 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)可能需要您自行付费。
相关工作流推荐
使用 Azure OpenAI 和 Google Workspace 自动化 DEI 资格筛选
使用Azure GPT-4o、Google云端硬盘和表格自动进行DEI资格筛选
If
Code
Gmail
+9
19 节点Rahul Joshi
内容创作
将服装图片上传到Cloudinary并使用Azure OpenAI (GPT-4o) 记录到工作表
使用GPT-4o、Cloudinary和Google Sheets处理和编目服装图片
Set
Code
Merge
+9
26 节点Rahul Joshi
内容创作
客户入职帮助请求(Typeform 到 Gmail 和 Sheets)
客户入职帮助请求(Typeform 到 Gmail 和 Sheets)
If
Code
Gmail
+10
28 节点Rahul Joshi
内容创作
人员流失风险预警工作流(Azure OpenAI + n8n)
员工流失风险检测与HR提醒,使用Azure OpenAI GPT-4o-mini和Gmail
If
Code
Gmail
+7
16 节点Rahul Joshi
内容创作
技能差距 → 培训推荐
为 HR 团队使用 GPT-4o、Google Sheets 和 Gmail 个性化候选人反馈
If
Code
Gmail
+7
27 节点Rahul Joshi
内容创作
潜在客户意图分类与自动任务创建器
使用 Azure GPT-4 从 Google Sheets 到 ClickUp 自动进行潜在客户意图分类
Set
Switch
Click Up
+9
32 节点Rahul Joshi
内容创作
工作流信息
难度等级
高级
节点数量27
分类2
节点类型12
作者
Rahul Joshi
@rahul08Rahul 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 查看 →
分享此工作流