从Monday.com和Jira到Outlook的AI驱动反馈分类与报告
高级
这是一个自动化工作流,包含 27 个节点。主要使用 Set, Code, Jira, Gmail, Merge 等节点。 使用Azure GPT-4、Jira任务和Outlook报告分析来自Monday.com的客户反馈
前置要求
- •Google 账号和 Gmail API 凭证
- •Google Sheets API 凭证
- •OpenAI API Key
使用的节点 (27)
分类
-
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "lgj2XcZly50vMqKU",
"meta": {
"instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
"templateCredsSetupCompleted": true
},
"name": "从 Monday.com 和 Jira 到 Outlook 的 AI 驱动反馈分类与报告",
"tags": [],
"nodes": [
{
"id": "74675c08-9d89-4a2d-a36d-59c167bb42e1",
"name": "工作流概览",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2448,
-528
],
"parameters": {
"color": 4,
"width": 450,
"height": 661,
"content": "## 📊 客户反馈智能工作流"
},
"typeVersion": 1
},
{
"id": "47e27d91-6cc5-44cd-9374-f4b0c10188b1",
"name": "设置:数据源",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1792,
32
],
"parameters": {
"width": 344,
"height": 259,
"content": "## 步骤 1:获取反馈数据"
},
"typeVersion": 1
},
{
"id": "553ce617-8fcc-4f94-a7b1-b5d76ebdd215",
"name": "获取 Monday.com 反馈",
"type": "n8n-nodes-base.mondayCom",
"position": [
-1648,
-160
],
"parameters": {
"boardId": "YOUR_BOARD_ID",
"groupId": "topics",
"resource": "boardItem",
"operation": "getAll",
"returnAll": true
},
"credentials": {
"mondayComApi": {
"id": "v9QkK1x0MHK2ULvk",
"name": "Monday.com account ch"
}
},
"typeVersion": 1
},
{
"id": "c9de6225-3282-49ca-9db4-8bb10fd80aab",
"name": "设置:数据规范化",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1552,
-496
],
"parameters": {
"width": 344,
"height": 312,
"content": "## 步骤 2:规范化数据"
},
"typeVersion": 1
},
{
"id": "73233e74-bcb5-47d7-87d1-4848d10e0268",
"name": "规范化反馈字段",
"type": "n8n-nodes-base.set",
"position": [
-1424,
-160
],
"parameters": {
"fields": {
"values": [
{
"name": "Title",
"stringValue": "={{ $json.name }}"
},
{
"name": "Account Name",
"stringValue": "={{ $json.column_values[1].text }}"
},
{
"name": "ARR(USD)",
"stringValue": "={{ $json.column_values[2].text }}"
},
{
"name": "NPS Before",
"stringValue": "={{ $json.column_values[3].text }}"
},
{
"name": "NPS After",
"stringValue": "={{ $json.column_values[4].text }}"
},
{
"name": "FeedBack Type",
"stringValue": "={{ $json.column_values[5].text }}"
},
{
"name": "Contact Email",
"stringValue": "={{ $json.column_values[6].text }}"
},
{
"name": "Submitted On",
"stringValue": "={{ $json.column_values[7].text }}"
}
]
},
"include": "selected",
"options": {}
},
"typeVersion": 3
},
{
"id": "c101c93b-0b00-4734-8247-27f90ef3297f",
"name": "设置:AI 分析",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1120,
-656
],
"parameters": {
"width": 344,
"height": 355,
"content": "## 步骤 3:AI 主题分类"
},
"typeVersion": 1
},
{
"id": "cbd79e63-6ef3-4de3-8e93-5d3825865ac0",
"name": "合并 AI 结果与反馈",
"type": "n8n-nodes-base.merge",
"position": [
-848,
-160
],
"parameters": {
"mode": "combine",
"options": {},
"combinationMode": "mergeByPosition"
},
"typeVersion": 2.1
},
{
"id": "7fa77a1a-b1e4-4c0b-803f-41688c7662ea",
"name": "设置:Jira 集成",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
-544
],
"parameters": {
"width": 343.81788385280146,
"height": 308.6359741062274,
"content": "## 步骤 4:创建 Jira 问题"
},
"typeVersion": 1
},
{
"id": "22662502-fdce-4ab1-85e5-32196d570fda",
"name": "为反馈创建 Jira 任务",
"type": "n8n-nodes-base.jira",
"position": [
-176,
-352
],
"parameters": {
"project": {
"__rl": true,
"mode": "list",
"value": "YOUR_PROJECT_ID",
"cachedResultName": "Your Project Name"
},
"summary": "=Theme: {{$json[\"theme_label\"]}} ({{$json[\"theme_key\"]}})",
"issueType": {
"__rl": true,
"mode": "list",
"value": "10006",
"cachedResultName": "Task"
},
"additionalFields": {
"description": "=💬 Feedback: {{$json[\"feedback\"]}}\n\n💰 ARR Impact: ${{$json[\"arr_usd\"]}}\n😐 Sentiment: {{$json[\"sentiment\"]}}\n📊 NPS Before → {{$json[\"nps_before\"]}} | After → {{$json[\"nps_after\"]}}\n⚡ Impact Score: {{$json[\"impact_score\"]}}\n\nLabels: feedback, {{$json[\"theme_key\"]}}\n"
}
},
"credentials": {
"jiraSoftwareCloudApi": {
"id": "Q6d7sLBVOfGWmaLw",
"name": "Jira SW Cloud account vivek"
}
},
"typeVersion": 1
},
{
"id": "d0084ad1-e8ad-4802-b560-74f997c365cb",
"name": "设置:数据记录",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
-208
],
"parameters": {
"width": 343.81788385280146,
"height": 288.6362189310366,
"content": "## 步骤 5:记录到 Google Sheets"
},
"typeVersion": 1
},
{
"id": "f95ddd6f-e581-4a8a-8321-74b50c183ebf",
"name": "记录到Google表格",
"type": "n8n-nodes-base.googleSheets",
"position": [
-176,
-160
],
"parameters": {
"columns": {
"mappingMode": "autoMapInputData",
"matchingColumns": [
"theme_key"
]
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultName": "Customer Feedback"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_SHEET_ID",
"cachedResultName": "Your Feedback Sheet"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "kpPEOLCGn963qpoh",
"name": "automations@techdome.ai"
}
},
"typeVersion": 4.4
},
{
"id": "2abb077d-0419-4693-a3bf-782d9f0e92b1",
"name": "设置:错误警报",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2240,
304
],
"parameters": {
"width": 344,
"height": 369,
"content": "## 错误处理"
},
"typeVersion": 1
},
{
"id": "1dc8d357-370c-4db4-bf62-c0fc90a03300",
"name": "工作流出错时",
"type": "n8n-nodes-base.errorTrigger",
"position": [
-1872,
464
],
"parameters": {},
"typeVersion": 1
},
{
"id": "022da409-d000-44e8-85a1-21bce519482d",
"name": "发送错误警报邮件",
"type": "n8n-nodes-base.gmail",
"position": [
-1648,
464
],
"webhookId": "f19b5216-ea1f-4483-acbd-3d46469a6d5f",
"parameters": {
"sendTo": "={{ $env.ERROR_ALERT_EMAIL }}",
"message": "=Workflow Execution Failed\n\nWorkflow: {{ $workflow.name }}\nExecution ID: {{ $execution.id }}\nFailed Node: {{ $json.node?.name || 'Unknown' }}\nError: {{ $json.error?.message || 'No error message' }}\nTimestamp: {{ $now.toISO() }}",
"options": {},
"subject": "=n8n Workflow Error: {{ $workflow.name }}"
},
"credentials": {
"gmailOAuth2": {
"id": "70f5n8rPahCANHs7",
"name": "jyothi"
}
},
"typeVersion": 2.1
},
{
"id": "a037a368-1d36-4771-993f-7770ce89ba17",
"name": "每周计划触发器",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1872,
-160
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 9 * * 1"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "4018a5de-0860-49f3-8db0-d97bf7bf88c8",
"name": "设置:计划",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1984,
-448
],
"parameters": {
"width": 343.8178838528013,
"height": 280,
"content": "## 触发器:每周计划"
},
"typeVersion": 1
},
{
"id": "640ed7b7-7acf-4a89-9f7f-da1a0747e0c6",
"name": "结构化 JSON 输出解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-976,
-16
],
"parameters": {
"jsonSchemaExample": "{\n \"theme_key\": \"\",\n \"theme_label\": \"\",\n \"sentiment\": \"\"\n}"
},
"typeVersion": 1.3
},
{
"id": "b2997445-aefe-4bfa-ad21-7754b2c6d498",
"name": "AI 主题分类器",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-1200,
-284
],
"parameters": {
"text": "=Analyze the following customer feedback record and return structured JSON.\n\nFeedback data:\n{{ JSON.stringify($json) }}\n\nReturn JSON in this exact schema:\n{\n \"theme_key\": \"short-keyword-style category (lowercase, kebab-case)\",\n \"theme_label\": \"concise readable label (2-5 words)\",\n \"sentiment\": \"positive | neutral | negative\"\n}\n\nExamples:\nInput: \"App crashes when submitting reports.\"\nOutput: {\"theme_key\":\"app-crash\",\"theme_label\":\"App Stability\",\"sentiment\":\"negative\"}\n\nInput: \"Love the new dashboard design!\"\nOutput: {\"theme_key\":\"ui-design\",\"theme_label\":\"Dashboard Design\",\"sentiment\":\"positive\"}\n\nNow analyze this feedback and respond only with JSON.",
"options": {
"systemMessage": "=You are an intelligent product feedback classifier. \nYour job is to analyze each feedback text and extract structured insights.\n\nFollow these strict rules:\n- Output must be valid JSON only (no markdown, no explanations).\n- Identify the underlying theme or category of the feedback.\n- Create a short, human-readable label for that theme.\n- Detect overall sentiment (positive, neutral, negative).\n- Do not repeat the full feedback text in output."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "ae2b52c2-9be1-4d8e-9b72-6dcff9b948f4",
"name": "对话记忆缓冲区",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-1104,
-80
],
"parameters": {
"sessionKey": "=\"feedback_classification_\" + $now.format('yyyy-MM-dd')",
"sessionIdType": "customKey",
"contextWindowLength": 7
},
"typeVersion": 1.3
},
{
"id": "78abb932-8eb0-407f-b059-ed2285778f71",
"name": "设置:数据结构化",
"type": "n8n-nodes-base.stickyNote",
"position": [
-848,
32
],
"parameters": {
"width": 343.81788385280146,
"height": 270.78228621783586,
"content": "## 步骤 3b:结构化 AI 输出"
},
"typeVersion": 1
},
{
"id": "f90ec364-b556-47f3-8250-e93938a4455b",
"name": "结构化 AI 分类输出",
"type": "n8n-nodes-base.set",
"position": [
-624,
-160
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "={\n \"arr_usd\": {{ Number($json['ARR(USD)']) }},\n \"nps_before\": {{ Number($json['NPS Before']) }},\n \"nps_after\": {{ Number($json['NPS After']) }},\n \"theme_key\": \"{{ $json.output.theme_key }}\",\n \"theme_label\": \"{{ $json.output.theme_label }}\",\n \"sentiment\": \"{{ $json.output.sentiment }}\",\n \"feedback\": \"{{ $json['Title'] }}\"\n}"
},
"typeVersion": 3.4
},
{
"id": "9395692c-3e78-4266-b45f-4ce4eba5739d",
"name": "设置:影响评分",
"type": "n8n-nodes-base.stickyNote",
"position": [
-672,
-432
],
"parameters": {
"width": 343.81788385280146,
"height": 250.78228621783586,
"content": "## 步骤 3c:计算影响分数"
},
"typeVersion": 1
},
{
"id": "ceceb3a5-ba7a-4b90-a4d8-248ac18abe4f",
"name": "计算业务影响分数",
"type": "n8n-nodes-base.set",
"position": [
-400,
-160
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "impact-score-calc",
"name": "impact_score",
"type": "number",
"value": "={{ (0.5 * ($json.arr_usd / 50000)) + (0.3 * ((10 - Math.abs($json.nps_after - $json.nps_before)) / 10)) + (0.2 * ($json.sentiment === 'negative' ? 1 : $json.sentiment === 'neutral' ? 0.5 : 0.2)) }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "be4e3188-2f09-4490-ac95-c32a372b2ec5",
"name": "设置:邮件报告",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
192
],
"parameters": {
"width": 343.81788385280146,
"height": 310.78228621783586,
"content": "## 步骤 6:每周邮件报告"
},
"typeVersion": 1
},
{
"id": "08498f99-f113-4b02-8716-0091a04f7b2b",
"name": "生成HTML报告",
"type": "n8n-nodes-base.code",
"position": [
-176,
32
],
"parameters": {
"jsCode": "// Weekly Feedback Report Formatter\n// Generates Outlook-compatible HTML email\n\nconst feedbackData = $input.all();\n\n// Calculate summary metrics\nlet totalARR = 0;\nlet positiveCount = 0;\nlet negativeCount = 0;\nlet neutralCount = 0;\nlet npsImproved = 0;\nlet npsDeclined = 0;\nlet totalNPSChange = 0;\n\nconst criticalIssues = [];\nconst wins = [];\n\nfeedbackData.forEach(item => {\n const arr = parseFloat(item.json.arr_usd) || 0;\n const npsBefore = parseFloat(item.json.nps_before) || 0;\n const npsAfter = parseFloat(item.json.nps_after) || 0;\n const npsChange = npsAfter - npsBefore;\n \n totalARR += arr;\n totalNPSChange += npsChange;\n \n // Count sentiments\n if (item.json.sentiment === 'positive') positiveCount++;\n else if (item.json.sentiment === 'negative') negativeCount++;\n else neutralCount++;\n \n // Track NPS changes\n if (npsChange > 0) npsImproved++;\n else if (npsChange < 0) npsDeclined++;\n \n // Identify critical issues\n if (item.json.sentiment === 'negative' && (arr > 20000 || npsChange <= -2)) {\n criticalIssues.push({ ...item.json, arr, npsChange });\n }\n \n // Identify wins\n if (item.json.sentiment === 'positive' && npsChange > 0) {\n wins.push({ ...item.json, arr, npsChange });\n }\n});\n\ncriticalIssues.sort((a, b) => b.arr - a.arr);\nwins.sort((a, b) => b.npsChange - a.npsChange);\n\nconst today = new Date();\nconst weekStart = new Date(today);\nweekStart.setDate(today.getDate() - 7);\n\nconst formatDate = (date) => {\n return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });\n};\n\nconst subject = `Customer Feedback Weekly Report - ${formatDate(weekStart)} to ${formatDate(today)}`;\n\nconst htmlBody = `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n</head>\n<body style=\"margin: 0; padding: 0; background-color: #f4f4f4; font-family: Arial, sans-serif;\">\n <table role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" style=\"background-color: #f4f4f4;\">\n <tr>\n <td style=\"padding: 20px 0;\">\n <table role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"600\" style=\"margin: 0 auto; background-color: #ffffff; border-radius: 8px;\">\n <tr>\n <td style=\"padding: 30px;\">\n <h1 style=\"margin: 0 0 10px 0; font-size: 24px; color: #2c3e50; border-bottom: 3px solid #3498db; padding-bottom: 10px;\">📊 Customer Feedback Weekly Report</h1>\n <p style=\"margin: 0; color: #7f8c8d; font-size: 14px;\">Report Period: <strong>${formatDate(weekStart)}</strong> to <strong>${formatDate(today)}</strong></p>\n </td>\n </tr>\n <tr>\n <td style=\"padding: 0 30px 20px 30px;\">\n <table role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" style=\"background-color: #e8f4f8; border-radius: 6px;\">\n <tr>\n <td style=\"padding: 20px;\">\n <h2 style=\"margin: 0 0 12px 0; font-size: 18px; color: #34495e;\">📈 Executive Summary</h2>\n <p style=\"margin: 0; color: #555555; font-size: 14px; line-height: 1.6;\">\n This week we collected <strong>${feedbackData.length} feedback responses</strong> from customers representing \n <strong>$${totalARR.toLocaleString()}</strong> in total ARR. Overall NPS movement shows \n <strong>${npsImproved} accounts improved</strong> and <strong>${npsDeclined} declined</strong>.\n </p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td style=\"padding: 0 30px 20px 30px;\">\n <h2 style=\"margin: 0 0 15px 0; font-size: 18px; color: #34495e;\">🎯 Key Metrics</h2>\n <table role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\">\n <tr>\n <td width=\"33%\" style=\"padding: 5px;\">\n <table role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" style=\"background-color: #667eea; border-radius: 6px;\">\n <tr>\n <td style=\"padding: 20px; text-align: center;\">\n <div style=\"font-size: 11px; color: #ffffff; text-transform: uppercase; margin-bottom: 5px;\">Total Feedback</div>\n <div style=\"font-size: 32px; font-weight: bold; color: #ffffff;\">${feedbackData.length}</div>\n </td>\n </tr>\n </table>\n </td>\n <td width=\"33%\" style=\"padding: 5px;\">\n <table role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" style=\"background-color: #2ecc71; border-radius: 6px;\">\n <tr>\n <td style=\"padding: 20px; text-align: center;\">\n <div style=\"font-size: 11px; color: #ffffff; text-transform: uppercase; margin-bottom: 5px;\">Positive</div>\n <div style=\"font-size: 32px; font-weight: bold; color: #ffffff;\">${positiveCount}</div>\n </td>\n </tr>\n </table>\n </td>\n <td width=\"33%\" style=\"padding: 5px;\">\n <table role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" style=\"background-color: #e74c3c; border-radius: 6px;\">\n <tr>\n <td style=\"padding: 20px; text-align: center;\">\n <div style=\"font-size: 11px; color: #ffffff; text-transform: uppercase; margin-bottom: 5px;\">Negative</div>\n <div style=\"font-size: 32px; font-weight: bold; color: #ffffff;\">${negativeCount}</div>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n ${criticalIssues.length > 0 ? `\n <tr>\n <td style=\"padding: 0 30px 20px 30px;\">\n <h2 style=\"margin: 0 0 10px 0; font-size: 18px; color: #34495e;\">🚨 Critical Issues</h2>\n ${criticalIssues.slice(0, 5).map(issue => `\n <table role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" style=\"background-color: #fee; border-left: 4px solid #e74c3c; border-radius: 4px; margin-bottom: 10px;\">\n <tr>\n <td style=\"padding: 15px;\">\n <strong style=\"color: #2c3e50;\">${issue.theme_label}</strong>\n <span style=\"background-color: #e74c3c; color: #fff; padding: 2px 6px; border-radius: 3px; font-size: 10px; margin-left: 8px;\">CRITICAL</span>\n <br>\n <span style=\"font-size: 12px; color: #666;\">ARR: ${issue.arr.toLocaleString()} | NPS: ${issue.nps_before} → ${issue.nps_after}</span>\n <p style=\"margin: 8px 0 0 0; color: #555; font-style: italic; font-size: 13px;\">${issue.feedback}</p>\n </td>\n </tr>\n </table>\n `).join('')}\n </td>\n </tr>\n ` : ''}\n ${wins.length > 0 ? `\n <tr>\n <td style=\"padding: 0 30px 20px 30px;\">\n <h2 style=\"margin: 0 0 10px 0; font-size: 18px; color: #34495e;\">🎉 Customer Wins</h2>\n ${wins.slice(0, 5).map(win => `\n <table role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\" style=\"background-color: #efe; border-left: 4px solid #2ecc71; border-radius: 4px; margin-bottom: 10px;\">\n <tr>\n <td style=\"padding: 15px;\">\n <strong style=\"color: #2c3e50;\">${win.theme_label}</strong>\n <span style=\"background-color: #2ecc71; color: #fff; padding: 2px 6px; border-radius: 3px; font-size: 10px; margin-left: 8px;\">WIN</span>\n <br>\n <span style=\"font-size: 12px; color: #666;\">ARR: ${win.arr.toLocaleString()} | NPS: ${win.nps_before} → ${win.nps_after}</span>\n <p style=\"margin: 8px 0 0 0; color: #555; font-style: italic; font-size: 13px;\">${win.feedback}</p>\n </td>\n </tr>\n </table>\n `).join('')}\n </td>\n </tr>\n ` : ''}\n <tr>\n <td style=\"padding: 20px 30px; border-top: 1px solid #ddd;\">\n <p style=\"margin: 0; text-align: center; color: #7f8c8d; font-size: 12px;\">\n Automated by n8n | Generated on ${formatDate(today)}\n </p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n</body>\n</html>`;\n\nreturn [{\n json: {\n subject: subject,\n body: htmlBody,\n summary: {\n total_feedback: feedbackData.length,\n total_arr: totalARR,\n positive_count: positiveCount,\n negative_count: negativeCount,\n neutral_count: neutralCount,\n nps_improved: npsImproved,\n nps_declined: npsDeclined,\n critical_issues_count: criticalIssues.length,\n wins_count: wins.length\n }\n }\n}];"
},
"typeVersion": 2
},
{
"id": "9856c766-0c69-4720-835d-a485927fbb69",
"name": "发送消息",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
48,
32
],
"webhookId": "bac58a25-de50-4bca-a6cc-5d35012c67cb",
"parameters": {
"subject": "={{ $json.subject }}",
"bodyContent": "={{ $json.body }}",
"toRecipients": "YOUR_EMAIL@example.com",
"additionalFields": {
"bodyContentType": "html"
}
},
"credentials": {
"microsoftOutlookOAuth2Api": {
"id": "dVY4LPJeMsLJMtJZ",
"name": "Microsoft Outlook account"
}
},
"typeVersion": 2
},
{
"id": "836e0820-15a8-4938-a4ff-d59fd0c93050",
"name": "Azure OpenAI 聊天模型1",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
-1248,
32
],
"parameters": {
"model": "gpt-4o",
"options": {}
},
"credentials": {
"azureOpenAiApi": {
"id": "C3WzT18XqF8OdVM6",
"name": "Azure Open AI account"
}
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "c7cc5d75-cfd8-430e-b300-69f53c5881b3",
"connections": {
"On Workflow Error": {
"main": [
[
{
"node": "Send Error Alert Email",
"type": "main",
"index": 0
}
]
]
},
"AI Theme Classifier": {
"main": [
[
{
"node": "Merge AI Results with Feedback",
"type": "main",
"index": 0
}
]
]
},
"Generate HTML Report": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"Weekly Schedule Trigger": {
"main": [
[
{
"node": "Fetch Monday.com Feedback",
"type": "main",
"index": 0
}
]
]
},
"Azure OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "AI Theme Classifier",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Fetch Monday.com Feedback": {
"main": [
[
{
"node": "Normalize Feedback Fields",
"type": "main",
"index": 0
}
]
]
},
"Normalize Feedback Fields": {
"main": [
[
{
"node": "AI Theme Classifier",
"type": "main",
"index": 0
},
{
"node": "Merge AI Results with Feedback",
"type": "main",
"index": 1
}
]
]
},
"Conversation Memory Buffer": {
"ai_memory": [
[
{
"node": "AI Theme Classifier",
"type": "ai_memory",
"index": 0
}
]
]
},
"Structured JSON Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Theme Classifier",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Merge AI Results with Feedback": {
"main": [
[
{
"node": "Structure AI Classification Output",
"type": "main",
"index": 0
}
]
]
},
"Calculate Business Impact Score": {
"main": [
[
{
"node": "Create Jira Task for Feedback",
"type": "main",
"index": 0
},
{
"node": "Log to Google Sheets",
"type": "main",
"index": 0
},
{
"node": "Generate HTML Report",
"type": "main",
"index": 0
}
]
]
},
"Structure AI Classification Output": {
"main": [
[
{
"node": "Calculate Business Impact Score",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用 Slack、Gmail 和 AI 自动化 Jira 待办事项整理和报告
通过 Slack、Gmail 和 GPT-4 实现 Jira 待办事项整理与报告的自动化
If
Set
Jira
+9
31 节点Rahul Joshi
从 Stripe 支付自动交付模板给客户
使用Stripe、GPT-4o和Gmail的自动化模板交付系统
If
Code
Gmail
+12
44 节点Rahul Joshi
客户关系管理
使用GPT-4自动化从ClickUp到Slack和Gmail的每日晨报生成
使用GPT-4o从ClickUp生成AI驱动的晨报并发送至Slack和Gmail
If
Code
Gmail
+9
27 节点Rahul Joshi
使用 Azure OpenAI (GPT-4o-mini) 和 Gmail 生成 Jira 日终摘要与周报
使用 Azure OpenAI 和 Gmail 生成每日 Jira 摘要和每周报告
Code
Jira
Gmail
+6
26 节点Rahul Joshi
新开发人员入职自动化
使用 GPT-4o 实现员工入职自动化:Jira、Notion 和 Gmail 集成
If
Set
Code
+9
21 节点Rahul Joshi
人力资源
潜在客户意图分类与自动任务创建器
使用 Azure GPT-4 从 Google Sheets 到 ClickUp 自动进行潜在客户意图分类
Set
Switch
Click Up
+9
32 节点Rahul Joshi
内容创作
工作流信息
难度等级
高级
节点数量27
分类-
节点类型15
作者
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 查看 →
分享此工作流