使用Jotform、GPT-4.1和Google Sheets的自动化客户反馈分析与回复
高级
这是一个自动化工作流,包含 21 个节点。主要使用 If, Set, Slack, EmailSend, GoogleSheets 等节点。 使用Jotform、GPT-4.1和Google Sheets的自动化客户反馈分析与回复
前置要求
- •Slack Bot Token 或 Webhook URL
- •Google Sheets API 凭证
- •OpenAI API Key
分类
-
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "7ea3ce54fff35125cef70d7d3eb237421160deacac404433c1059018e4254496",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "7d50aea5-d58c-4a01-9964-92da5fe5031d",
"name": "Jotform — 新反馈提交",
"type": "n8n-nodes-base.jotFormTrigger",
"position": [
-128,
0
],
"webhookId": "85ddb2a9-bacb-45da-a2d2-062353bb19f1",
"parameters": {
"form": "251411842823048",
"onlyAnswers": false
},
"credentials": {
"jotFormApi": {
"id": "jXvtT52kwCnYtxyM",
"name": "JotForm account"
}
},
"typeVersion": 1
},
{
"id": "1df86418-1292-43b4-a144-1282d700f51d",
"name": "提取关键字段(规范化输入)",
"type": "n8n-nodes-base.set",
"position": [
160,
0
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "1b8cefc9-25fd-4603-88ef-787b5582660e",
"name": "submissionId",
"type": "string",
"value": "={{ $json.submissionID }}"
},
{
"id": "a4f8f6b0-9eea-422a-a02c-8db49cfbb026",
"name": "fullName",
"type": "string",
"value": "={{ $json.rawRequest[\"Full Name\"] }}"
},
{
"id": "804e4a6e-fbae-449a-a0dd-95b3c9a1cc60",
"name": "email",
"type": "string",
"value": "={{ $json.rawRequest.Email }}"
},
{
"id": "59e72537-9635-473b-9d7c-9755497cbc1f",
"name": "whatsappNumber",
"type": "string",
"value": "={{ $json.rawRequest[\"Whatsapp Number\"] }}"
},
{
"id": "ddaddc42-b043-4643-a6c7-d46bdbb3665f",
"name": "orderId",
"type": "string",
"value": "={{ $json.rawRequest[\"Order Id\"] }}"
},
{
"id": "26a71509-4fe2-4111-b206-b990c1669d54",
"name": "ratings",
"type": "string",
"value": "={{ $json.rawRequest.Ratings }}"
},
{
"id": "73ecd764-ba3b-49f4-98f4-1d0aad049c16",
"name": "experienceFeedback",
"type": "string",
"value": "={{ $json.rawRequest[\"Please describe your experience in detail.\"] }}"
},
{
"id": "1badf182-58df-4832-8153-9b7e89fe928d",
"name": "recommendUs",
"type": "string",
"value": "={{ $json.rawRequest[\"Would you recommend us to others?\"] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ba3d2aca-2377-4cad-8aac-e75f7cac07bb",
"name": "AI分析 — 情感与根本原因",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
464,
0
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "GPT-4.1-MINI"
},
"options": {
"temperature": 0.7
},
"messages": {
"values": [
{
"content": "=You are a Customer Feedback Analysis AI.\nYour job is to analyze raw customer feedback and produce structured, machine-readable insights.\n\nReturn a valid JSON object only, in the following exact format:\n\n{\n \"Sentiment\": \"Positive | Neutral | Negative\",\n \"RootCause\": \"short, human-readable explanation of the main reason behind the feedback\",\n \"RecoveryDirection\": \"concise, internal note suggesting what the company should do next\",\n \"RecoveryMessage\": \"optional draft message suggestion for the support team to consider (not to be sent automatically)\"\n}\n\nSubmission:\nRating: {{ $json.ratings }}\nExperience: {{ $json.experienceFeedback }}\nRecommendUs: {{ $json.recommendUs }}\n\nGuidelines:\n1. Be objective — classify based on sentiment and tone, not rating alone.\n2. Use \"RootCause\" to summarize the issue (e.g., “late delivery”, “rude support”, “confusing checkout”).\n3. Keep \"RecoveryDirection\" actionable (e.g., “offer compensation”, “escalate to ops”, “send apology email”).\n4. Keep \"RecoveryMessage\" short and generic (internal use only).\n5. Never include markdown, explanations, or extra text outside the JSON object."
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "DafVSGDfbwLzdqrw",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "9d427e02-2337-44eb-b074-29492fb6f5ff",
"name": "检查反馈是否为负面或评分≤3",
"type": "n8n-nodes-base.if",
"position": [
864,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "or",
"conditions": [
{
"id": "d0911e13-fee7-44ec-9c7a-dc14285d0d6b",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.message.content.Sentiment }}",
"rightValue": "=Negative"
},
{
"id": "f82433a5-15ee-46e2-bb2e-e6aaf527d2c4",
"operator": {
"type": "number",
"operation": "lte"
},
"leftValue": "={{ $('Extract Key Fields (Normalize Input)').item.json.ratings }}",
"rightValue": 3
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "61bad5e0-5b4c-463f-96de-688302bb62ea",
"name": "AI生成器 — 个性化恢复消息",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1168,
-112
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "GPT-4.1-MINI"
},
"options": {
"temperature": 0.7
},
"messages": {
"values": [
{
"content": "=You are an AI Customer Experience Writer. \nYour job is to compose personalized, empathetic recovery messages for customers based on their feedback and AI analysis results for email and whatsapp both channels.\n\nReturn a valid JSON object only, in this exact format:\n\n{\n \"Email Body\": \"string (the full customer-facing message)\",\n \"Subject\": \"string (applicable only for email),\n \"Tone\": \"Friendly | Professional | Empathetic\"\n}\n\nContext:\n- Customer Name: {{ $('Extract Key Fields (Normalize Input)').item.json.fullName }}\n- Brand Name: Your Brand Name\n- Sentiment: {{ $json.message.content.Sentiment }}\n- Root Cause: {{ $json.message.content.RootCause }}\n- Feedback Text: {{ $('Extract Key Fields (Normalize Input)').item.json.experienceFeedback }}\n- Recovery Direction: {{ $json.message.content.RecoveryDirection }}\n- Previous Recovery Message: {{$json[\"RecoveryMessage\"] || \"\"}}\n- Order ID: {{$json[\"order_id\"] || \"N/A\"}}\n- Rating: {{ $('Extract Key Fields (Normalize Input)').item.json.ratings }}\n- Recommend Us: {{ $('Extract Key Fields (Normalize Input)').item.json.recommendUs }}\n\nGuidelines:\n1. Be concise (60–100 words).\n2. Always start with the customer’s name and acknowledge their experience.\n3. Use empathy but maintain professionalism — no exaggerated apologies.\n4. Don’t overpromise — avoid mentioning refunds, compensation, or guarantees unless implied by context.\n5. End on a reassuring note and represent the brand positively.\n6. Return JSON only. No markdown or extra text."
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "DafVSGDfbwLzdqrw",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "c43ead64-eec7-4178-875f-eff6f389a769",
"name": "发送恢复邮件(负面路径)",
"type": "n8n-nodes-base.emailSend",
"position": [
2000,
-48
],
"webhookId": "2cce16b7-f70a-48bb-8d1c-4bb428d379dd",
"parameters": {
"html": "={{ $json.message.content[\"Email Body\"] }}",
"options": {},
"subject": "={{ $json.message.content.Subject }}",
"toEmail": "={{ $('Extract Key Fields (Normalize Input)').item.json.email }}",
"fromEmail": "aayushmans0411@gmail.com"
},
"credentials": {
"smtp": {
"id": "29Uh9G1RUR82SFVn",
"name": "SMTP account"
}
},
"typeVersion": 2.1
},
{
"id": "2029a509-776a-439e-976b-e435511d9ac1",
"name": "在Slack上通知客服团队",
"type": "n8n-nodes-base.slack",
"position": [
1824,
48
],
"webhookId": "d79a277d-8d4a-4815-a974-aae0165b84d0",
"parameters": {
"text": "=🚨 *Negative Feedback Alert*\n*Name:* {{ $json[\"Full Name\"] }}\n*Rating:* {{ $json.Ratings }}\n*Root Cause:* {{ $json[\"Root Cause\"] }}\n*Order ID:* {{ $json[\"Order Id\"] }}\n*Recovery Msg Sent:* ✅",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "name",
"value": "#customer_feedback"
},
"otherOptions": {}
},
"typeVersion": 2.3
},
{
"id": "cf844ac0-b5fa-4051-bc26-98b6c27f6d4e",
"name": "标记恢复消息已发送",
"type": "n8n-nodes-base.googleSheets",
"position": [
2256,
-32
],
"parameters": {
"columns": {
"value": {
"Submission Id": "={{ $('Prepare Data for Sheet & Notifications (Negative Path)').item.json[\"Submission Id\"] }}",
"Recovery Message Sent": "Yes"
},
"schema": [
{
"id": "Submission Id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Submission Id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Full Name",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Full Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Whatsapp Number",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Whatsapp Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Order Id",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Order Id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Ratings",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Ratings",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Experience Feedback",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Experience Feedback",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recommend Us",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Recommend Us",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Sentiment",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Sentiment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Root Cause",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Root Cause",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recovery Direction",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Recovery Direction",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recovery Message",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Recovery Message",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Subject",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Email Subject",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Body",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Email Body",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recovery Tone",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Recovery Tone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recovery Message Sent",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Recovery Message Sent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "createdAt",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "createdAt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Submission Id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "=gid=0"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ your_google_sheet_document }}"
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "FATfI7LIO9bsNKSj",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "3dae2739-cefe-44fa-962b-ea47c297d201",
"name": "发送感谢邮件(正面路径)",
"type": "n8n-nodes-base.emailSend",
"position": [
1472,
432
],
"webhookId": "64029ffa-e1a3-42dd-a9b7-0ff05356e79c",
"parameters": {
"html": "=<table role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#f8fafc;padding:32px 0;font-family:Helvetica,Arial,sans-serif;\">\n <tr>\n <td align=\"center\">\n <table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#ffffff;border-radius:10px;overflow:hidden;box-shadow:0 4px 10px rgba(0,0,0,0.05);\">\n \n <!-- Header -->\n <tr>\n <td style=\"background:#0b4a82;padding:20px 24px;color:#ffffff;font-size:20px;font-weight:600;\">\n Your Brand Name Team\n </td>\n </tr>\n\n <!-- Body -->\n <tr>\n <td style=\"padding:32px 40px;color:#0f172a;\">\n <h2 style=\"margin:0 0 16px 0;font-size:22px;font-weight:600;color:#111827;\">Thank you, {{$json[\"Full Name\"]}}!</h2>\n\n <p style=\"margin:0 0 16px 0;line-height:1.6;color:#334155;font-size:15px;\">\n We’re so glad you enjoyed your experience with us. Your feedback keeps our team motivated to do better every day.\n </p>\n\n <p style=\"margin:0 0 20px 0;font-size:15px;color:#334155;\">\n Would you mind sharing your experience publicly? It helps other customers discover us and keeps our small team growing!\n </p>\n\n <!-- CTA -->\n <table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin:24px 0;\">\n <tr>\n <td>\n <a href=\"Your review Page link\" style=\"background:#0b4a82;color:#ffffff;padding:12px 22px;text-decoration:none;border-radius:6px;font-size:15px;font-weight:600;display:inline-block;\">\n Leave a Review\n </a>\n </td>\n </tr>\n </table>\n\n <p style=\"margin:16px 0 0 0;font-size:13px;color:#64748b;\">\n Thanks again for being part of the Your Brand Name community 💙 \n <br><strong>— The Customer Experience Team</strong>\n </p>\n </td>\n </tr>\n\n <!-- Footer -->\n <tr>\n <td style=\"padding:16px 40px;background:#f9fafb;border-top:1px solid #e2e8f0;font-size:13px;color:#64748b;text-align:center;\">\n © 2025 Your Brand Name • <a href=\"Unsubscribe Link\" style=\"color:#94a3b8;text-decoration:none;\">Unsubscribe</a>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n</table>\n",
"options": {},
"subject": "A small favor? Share your happy experience with others!",
"toEmail": "={{ $json[\"Email\"] }}",
"fromEmail": "aayushmans0411@gmail.com"
},
"credentials": {
"smtp": {
"id": "29Uh9G1RUR82SFVn",
"name": "SMTP account"
}
},
"typeVersion": 2.1
},
{
"id": "6199baa6-140d-45f4-a786-e81f9c022771",
"name": "在Google表格中记录反馈(负面路径)",
"type": "n8n-nodes-base.googleSheets",
"position": [
1840,
-192
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "Submission Id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Submission Id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Full Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Full Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Whatsapp Number",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Whatsapp Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Order Id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Order Id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Ratings",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Ratings",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Experience Feedback",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Experience Feedback",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recommend Us",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Recommend Us",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Sentiment",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Sentiment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Root Cause",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Root Cause",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recovery Direction",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Recovery Direction",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recovery Message",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Recovery Message",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Subject",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email Subject",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Body",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email Body",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recovery Tone",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Recovery Tone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recovery Message Sent",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Recovery Message Sent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "createdAt",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "createdAt",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "=gid=0"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{your_google_sheet_document}}"
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "FATfI7LIO9bsNKSj",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "fd15071e-5b5e-4ce1-9494-9df8623950fc",
"name": "为表格和通知准备数据(负面路径)",
"type": "n8n-nodes-base.set",
"position": [
1520,
-112
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d0ecfce6-a795-4899-b8ca-61930ca608b1",
"name": "Submission Id",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.submissionId }}"
},
{
"id": "48eb542c-26eb-4bcf-99a8-b89da94b09e6",
"name": "Full Name",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.fullName }}"
},
{
"id": "0ba76f73-c547-4878-ae0d-88082ae41ffc",
"name": "Email",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.email }}"
},
{
"id": "5cb71cf8-b6ba-4b5e-a023-77572baf7f2d",
"name": "Whatsapp Number",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.whatsappNumber }}"
},
{
"id": "dbf840c6-6c5c-4ccc-945d-c9bf2666e614",
"name": "Order Id",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.orderId }}"
},
{
"id": "e801c1b2-793b-474a-91c0-be92f3474a70",
"name": "Ratings",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.ratings }}"
},
{
"id": "4ec10cde-0678-4928-a278-d71b3f9bbe8a",
"name": "Experience Feedback",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.experienceFeedback }}"
},
{
"id": "c100a63a-0971-4a00-af92-e5b735fa1682",
"name": "Recommend Us",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.recommendUs }}"
},
{
"id": "02ff8101-ddf0-4d2e-9639-ea67e6088143",
"name": "Sentiment",
"type": "string",
"value": "={{ $('AI Analysis — Sentiment & Root Cause').item.json.message.content.Sentiment }}"
},
{
"id": "ff1e1c61-57f0-4877-be1d-499ad223fbf0",
"name": "Root Cause",
"type": "string",
"value": "={{ $('AI Analysis — Sentiment & Root Cause').item.json.message.content.RootCause }}"
},
{
"id": "829756fc-5b76-4dbb-aaba-ee7fde17eaa0",
"name": "Recovery Direction",
"type": "string",
"value": "={{ $('AI Analysis — Sentiment & Root Cause').item.json.message.content.RecoveryDirection }}"
},
{
"id": "f767550e-66ba-44c0-9182-7379f12e5488",
"name": "Recovery Message",
"type": "string",
"value": "={{ $('AI Analysis — Sentiment & Root Cause').item.json.message.content.RecoveryMessage }}"
},
{
"id": "f83ac8b4-02d2-494d-a066-5c96a5ffe9ec",
"name": "Email Subject",
"type": "string",
"value": "={{ $json.message.content.Subject }}"
},
{
"id": "1f142e06-ca48-4fe6-92ac-f27e871e2721",
"name": "Email Body",
"type": "string",
"value": "={{ $json.message.content[\"Email Body\"] }}"
},
{
"id": "17c39abf-9a2d-4d1a-91fd-afa1240678c1",
"name": "Recovery Tone",
"type": "string",
"value": "={{ $json.message.content.Tone }}"
},
{
"id": "6cf5fcab-5469-4583-877b-4b801835d530",
"name": "Recovery Message Sent",
"type": "string",
"value": ""
},
{
"id": "56b12b3c-2804-4956-98d9-4ea2e42c2e21",
"name": "createdAt",
"type": "string",
"value": "={{ $now.toLocal().toMillis() }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "bdcd7bb0-8d61-4bdd-b0f3-e4ff61efb4d7",
"name": "为表格和通知准备数据(正面路径)",
"type": "n8n-nodes-base.set",
"position": [
1248,
352
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d0ecfce6-a795-4899-b8ca-61930ca608b1",
"name": "Submission Id",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.submissionId }}"
},
{
"id": "48eb542c-26eb-4bcf-99a8-b89da94b09e6",
"name": "Full Name",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.fullName }}"
},
{
"id": "0ba76f73-c547-4878-ae0d-88082ae41ffc",
"name": "Email",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.email }}"
},
{
"id": "5cb71cf8-b6ba-4b5e-a023-77572baf7f2d",
"name": "Whatsapp Number",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.whatsappNumber }}"
},
{
"id": "dbf840c6-6c5c-4ccc-945d-c9bf2666e614",
"name": "Order Id",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.orderId }}"
},
{
"id": "e801c1b2-793b-474a-91c0-be92f3474a70",
"name": "Ratings",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.ratings }}"
},
{
"id": "4ec10cde-0678-4928-a278-d71b3f9bbe8a",
"name": "Experience Feedback",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.experienceFeedback }}"
},
{
"id": "c100a63a-0971-4a00-af92-e5b735fa1682",
"name": "Recommend Us",
"type": "string",
"value": "={{ $('Extract Key Fields (Normalize Input)').item.json.recommendUs }}"
},
{
"id": "02ff8101-ddf0-4d2e-9639-ea67e6088143",
"name": "Sentiment",
"type": "string",
"value": "={{ $('AI Analysis — Sentiment & Root Cause').item.json.message.content.Sentiment }}"
},
{
"id": "ff1e1c61-57f0-4877-be1d-499ad223fbf0",
"name": "Root Cause",
"type": "string",
"value": "={{ $('AI Analysis — Sentiment & Root Cause').item.json.message.content.RootCause }}"
},
{
"id": "829756fc-5b76-4dbb-aaba-ee7fde17eaa0",
"name": "Recovery Direction",
"type": "string",
"value": "={{ $('AI Analysis — Sentiment & Root Cause').item.json.message.content.RecoveryDirection }}"
},
{
"id": "f767550e-66ba-44c0-9182-7379f12e5488",
"name": "Recovery Message",
"type": "string",
"value": "={{ $('AI Analysis — Sentiment & Root Cause').item.json.message.content.RecoveryMessage }}"
},
{
"id": "56b12b3c-2804-4956-98d9-4ea2e42c2e21",
"name": "createdAt",
"type": "string",
"value": "={{ $now.toLocal().toMillis() }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "4e18d0fb-c762-433a-9ddf-1ab13204e872",
"name": "在Google表格中记录反馈(正面路径)",
"type": "n8n-nodes-base.googleSheets",
"position": [
1456,
240
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "Submission Id",
"type": "string",
"display": true,
"required": false,
"displayName": "Submission Id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Full Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Full Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Whatsapp Number",
"type": "string",
"display": true,
"required": false,
"displayName": "Whatsapp Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Order Id",
"type": "string",
"display": true,
"required": false,
"displayName": "Order Id",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Ratings",
"type": "string",
"display": true,
"required": false,
"displayName": "Ratings",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Experience Feedback",
"type": "string",
"display": true,
"required": false,
"displayName": "Experience Feedback",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recommend Us",
"type": "string",
"display": true,
"required": false,
"displayName": "Recommend Us",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Sentiment",
"type": "string",
"display": true,
"required": false,
"displayName": "Sentiment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Root Cause",
"type": "string",
"display": true,
"required": false,
"displayName": "Root Cause",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recovery Direction",
"type": "string",
"display": true,
"required": false,
"displayName": "Recovery Direction",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recovery Message",
"type": "string",
"display": true,
"required": false,
"displayName": "Recovery Message",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Subject",
"type": "string",
"display": true,
"required": false,
"displayName": "Email Subject",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Body",
"type": "string",
"display": true,
"required": false,
"displayName": "Email Body",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recovery Tone",
"type": "string",
"display": true,
"required": false,
"displayName": "Recovery Tone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Recovery Message Sent",
"type": "string",
"display": true,
"required": false,
"displayName": "Recovery Message Sent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "createdAt",
"type": "string",
"display": true,
"required": false,
"displayName": "createdAt",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1YYmyQNTGSdBQcoHuUI1tnd081Nq-5FVcN8KWGLf0iK8/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "=1YYmyQNTGSdBQcoHuUI1tnd081Nq-5FVcN8KWGLf0iK8"
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"id": "FATfI7LIO9bsNKSj",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "e6f586ea-130e-46a6-aedd-cf9154f7f401",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-384,
-880
],
"parameters": {
"width": 400,
"height": 368,
"content": "## 🧠 工作流摘要"
},
"typeVersion": 1
},
{
"id": "fb284404-2e7a-4316-a323-5309afd80e93",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
32,
-416
],
"parameters": {
"color": 4,
"width": 352,
"height": 608,
"content": "## 清理输入数据"
},
"typeVersion": 1
},
{
"id": "8a3a00f8-9844-49c2-ab38-567b40e64e31",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
-416
],
"parameters": {
"color": 6,
"width": 320,
"height": 608,
"content": "## AI情感与根本原因检测"
},
"typeVersion": 1
},
{
"id": "3cea0b32-e8af-463e-8846-3015815f0e9a",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
736,
-416
],
"parameters": {
"color": 5,
"width": 352,
"height": 608,
"content": "## 路径路由逻辑"
},
"typeVersion": 1
},
{
"id": "0f039f93-f1db-42f6-836d-2172daeb01d7",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1104,
-848
],
"parameters": {
"color": 3,
"width": 1360,
"height": 1040,
"content": "## AI恢复消息撰写器"
},
"typeVersion": 1
},
{
"id": "82cd08d7-0913-42ea-8a4f-1aaa7a5a652f",
"name": "便签5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1120,
208
],
"parameters": {
"width": 576,
"height": 656,
"content": ""
},
"typeVersion": 1
},
{
"id": "19b6d6fc-4ef5-421b-9048-1c8504134e1e",
"name": "便签6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-384,
-496
],
"parameters": {
"width": 400,
"height": 400,
"content": "## 🔐 如何获取Jotform API凭证"
},
"typeVersion": 1
},
{
"id": "dd336412-bf91-45fd-92db-63869ff96040",
"name": "便签7",
"type": "n8n-nodes-base.stickyNote",
"position": [
32,
-880
],
"parameters": {
"width": 512,
"height": 448,
"content": "## ⚙️ Jotform配置指南(适用于n8n反馈工作流)"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"Jotform — New Feedback Submission": {
"main": [
[
{
"node": "Extract Key Fields (Normalize Input)",
"type": "main",
"index": 0
}
]
]
},
"Send Recovery Email (Negative Path)": {
"main": [
[
{
"node": "Mark Recovery Message Sent",
"type": "main",
"index": 0
}
]
]
},
"Extract Key Fields (Normalize Input)": {
"main": [
[
{
"node": "AI Analysis — Sentiment & Root Cause",
"type": "main",
"index": 0
}
]
]
},
"AI Analysis — Sentiment & Root Cause": {
"main": [
[
{
"node": "Check if Feedback is Negative or Rating ≤ 3",
"type": "main",
"index": 0
}
]
]
},
"Send Appreciation Email (Positive Path)": {
"main": [
[]
]
},
"Check if Feedback is Negative or Rating ≤ 3": {
"main": [
[
{
"node": "AI Generator — Personalized Recovery Message",
"type": "main",
"index": 0
}
],
[
{
"node": "Prepare Data for Sheet & Notifications (Positive Path)",
"type": "main",
"index": 0
}
]
]
},
"AI Generator — Personalized Recovery Message": {
"main": [
[
{
"node": "Prepare Data for Sheet & Notifications (Negative Path)",
"type": "main",
"index": 0
}
]
]
},
"Prepare Data for Sheet & Notifications (Negative Path)": {
"main": [
[
{
"node": "Log Feedback in Google Sheet (Negative Path)",
"type": "main",
"index": 0
},
{
"node": "Send Recovery Email (Negative Path)",
"type": "main",
"index": 0
},
{
"node": "Notify CX Team on Slack",
"type": "main",
"index": 0
}
]
]
},
"Prepare Data for Sheet & Notifications (Positive Path)": {
"main": [
[
{
"node": "Log Feedback in Google Sheet (Positive Path)",
"type": "main",
"index": 0
},
{
"node": "Send Appreciation Email (Positive Path)",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
AI 招聘省时助手 - 自动化筛选、评估、提醒和面试
AI 招聘省时助手 - 自动化筛选、评估、提醒和面试
If
Slack
Switch
+17
60 节点Aayushman Sharma
人力资源
使用JotForm、HubSpot、邮件和AI评分的自动化潜在客户资格认证与培育
使用JotForm、HubSpot、邮件和AI评分的自动化潜在客户资格认证与培育
If
Set
Code
+6
12 节点Daniel Shashko
AI 摘要总结
AI招生审核:论文分析、综合评分与候选人排名
GPT-4o驱动的招生审核:论文分析、综合评分与候选人排名
If
Set
Gmail
+8
22 节点Jitesh Dugar
AI 驱动的招聘:使用 Jotform 进行简历筛选和候选人路由
简历筛选与候选人路由,使用GPT-4o-mini、Jotform和Google Sheets
If
Set
Code
+10
20 节点Jitesh Dugar
AI人才筛选器 - 简历解析、职位匹配评估和邮件通知
AI人才筛选器 - 简历解析、职位匹配评估和邮件通知
If
Email Send
Form Trigger
+9
30 节点Aayushman Sharma
人力资源
YouTube评论情感分析器
🚀 YouTube评论情感分析器(使用Google Sheets和OpenAI)
If
Set
Split Out
+7
16 节点Aayushman Sharma
人工智能