8
n8n 中文网amn8n.com

客户入职帮助请求(Typeform 到 Gmail 和 Sheets)

高级

这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 28 个节点。主要使用 If, Code, Gmail, Slack, ClickUp 等节点。 客户入职帮助请求(Typeform 到 Gmail 和 Sheets)

前置要求
  • Google 账号和 Gmail API 凭证
  • Slack Bot Token 或 Webhook URL
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "dXMSOO4Jr8OLjozm",
  "meta": {
    "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
    "templateCredsSetupCompleted": true
  },
  "name": "客户入职帮助请求(Typeform 到 Gmail 和 Sheets)",
  "tags": [],
  "nodes": [
    {
      "id": "9fa1fad1-085e-4a81-b561-1b9bcf13156b",
      "name": "Typeform触发器",
      "type": "n8n-nodes-base.typeformTrigger",
      "position": [
        -576,
        576
      ],
      "webhookId": "typeform-webhook",
      "parameters": {
        "formId": "cXaYXrBp"
      },
      "credentials": {
        "typeformApi": {
          "id": "BZNYDuO6Ymg0Gql2",
          "name": "Typeform account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1a77e0ab-86e6-4ef8-8e72-fad93fc4827c",
      "name": "记录到 Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -352,
        576
      ],
      "parameters": {
        "columns": {
          "value": {
            "Urgency": "={{ $json[\"How urgent is this request?\"] }}",
            "Full Name": "={{ $json[\"What's your full name?\"] }}",
            "Company/Team": "={{ $json[\"Which company or team are you from?\"] }}",
            "Email Address": "={{ $json[\"What's your email address?\"] }}",
            "Issue Details": "={{ $json[\"Please describe the issue or help you need in detail.\"] }}",
            "Product/Service": "={{ $json[\"Which product/service are you getting onboarded to?\"] }}",
            "Onboarding Support Needed": "={{ $json[\"What type of onboarding support do you need?\"] }}"
          },
          "schema": [
            {
              "id": "Full Name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Full Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email Address",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Email Address",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company/Team",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Company/Team",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product/Service",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Product/Service",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Onboarding Support Needed",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Onboarding Support Needed",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Issue Details",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Issue Details",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Urgency",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Urgency",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZOwioaHTLWKltq6UbxzZh02UEBKfypdv_GOhcPu4fHg/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ZOwioaHTLWKltq6UbxzZh02UEBKfypdv_GOhcPu4fHg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZOwioaHTLWKltq6UbxzZh02UEBKfypdv_GOhcPu4fHg/edit?usp=drivesdk",
          "cachedResultName": "onboarding requests"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "kpPEOLCGn963qpoh",
          "name": "automations@techdome.ai"
        }
      },
      "typeVersion": 4
    },
    {
      "id": "cd2d4992-4229-4081-8ab3-e757e4e3d896",
      "name": "检查邮箱是否存在",
      "type": "n8n-nodes-base.if",
      "position": [
        -128,
        576
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "email-check",
              "operator": {
                "type": "string",
                "operation": "isNotEmpty"
              },
              "leftValue": "={{ $json.email }}",
              "rightValue": ""
            },
            {
              "id": "2c03e600-6592-4611-ba67-d68e7e610290",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.Email }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "acb6dc41-37e1-4b4d-b850-a3b34ec43359",
      "name": "发送欢迎邮件",
      "type": "n8n-nodes-base.gmail",
      "position": [
        432,
        480
      ],
      "webhookId": "f5b7a5e6-aa6a-46db-8115-a62f0784bb41",
      "parameters": {
        "sendTo": "={{ $json.email }}",
        "message": "={{ $json.html }}",
        "options": {},
        "subject": "Welcome to [Your Company]! Here are your onboarding resources"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "gEIaWCTvGfYjMSb3",
          "name": "Gmail credentials"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "0631a301-2647-4ff4-af72-4cea1b6d4a58",
      "name": "生成专业邮件 HTML",
      "type": "n8n-nodes-base.code",
      "position": [
        96,
        480
      ],
      "parameters": {
        "jsCode": "// Generate professional email HTML format\nlet htmlOutput = '';\n\nfor (const item of $input.all()) {\n    // Professional email template\n    htmlOutput += `\n<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"UTF-8\">\n    <style>\n        body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 20px; }\n        .email-container { max-width: 600px; margin: 0 auto; background: #ffffff; border: 1px solid #e0e0e0; border-radius: 8px; overflow: hidden; }\n        .header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 30px 20px; text-align: center; }\n        .header h1 { margin: 0; font-size: 24px; font-weight: 300; }\n        .content { padding: 30px; }\n        .greeting { font-size: 16px; margin-bottom: 20px; }\n        .info-section { background: #f8f9fa; border-radius: 6px; padding: 20px; margin: 20px 0; }\n        .info-title { font-size: 18px; font-weight: 600; color: #495057; margin-bottom: 15px; border-bottom: 2px solid #dee2e6; padding-bottom: 8px; }\n        .info-row { display: flex; margin: 12px 0; padding: 8px 0; border-bottom: 1px solid #e9ecef; }\n        .info-row:last-child { border-bottom: none; }\n        .info-label { font-weight: 600; color: #6c757d; min-width: 180px; }\n        .info-value { color: #495057; flex: 1; }\n        .footer { background: #f8f9fa; padding: 20px; text-align: center; font-size: 14px; color: #6c757d; border-top: 1px solid #e0e0e0; }\n        .signature { margin-top: 30px; padding-top: 20px; border-top: 1px solid #dee2e6; }\n    </style>\n</head>\n<body>\n    <div class=\"email-container\">\n        <div class=\"header\">\n            <h1>New Customer Inquiry</h1>\n        </div>\n        \n        <div class=\"content\">\n            <div class=\"greeting\">\n                Dear Team,\n            </div>\n            \n            <p>We have received a new customer inquiry through our contact form. Please find the details below and ensure appropriate follow-up action is taken.</p>\n            \n            <div class=\"info-section\">\n                <div class=\"info-title\">Customer Details</div>`;\n    \n    // Loop through each key-value pair in the JSON object\n    for (const [key, value] of Object.entries(item.json)) {\n        htmlOutput += `\n                <div class=\"info-row\">\n                    <div class=\"info-label\">${key}:</div>\n                    <div class=\"info-value\">${value}</div>\n                </div>`;\n    }\n    \n    htmlOutput += `\n            </div>\n            \n            <p><strong>Next Steps:</strong></p>\n            <ul>\n                <li>Acknowledge receipt within 2 business hours</li>\n                <li>Assign to appropriate team member based on product/service inquiry</li>\n                <li>Schedule follow-up call if urgency is high</li>\n                <li>Update CRM system with customer information</li>\n            </ul>\n            \n            <div class=\"signature\">\n                <p>Best regards,<br>\n                <strong>Customer Service Team</strong><br>\n                Email: support@company.com<br>\n                Phone: +1 (555) 123-4567</p>\n            </div>\n        </div>\n        \n        <div class=\"footer\">\n            <p>This is an automated notification. Please do not reply to this email.</p>\n            <p>&copy; 2024 Your Company Name. All rights reserved.</p>\n        </div>\n    </div>\n</body>\n</html>`;\n}\n\n// Return the professional email HTML\nreturn [{ \n    json: {\n        html: htmlOutput,\n        htmlContent: htmlOutput,\n        itemCount: $input.all().length,\n        emailSubject: \"New Customer Inquiry - Action Required\"\n    }\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "6a89013b-35e3-440b-aad2-14b6c9d693ad",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -848,
        320
      ],
      "parameters": {
        "height": 256,
        "content": "🎯 **步骤 1:表单捕获**"
      },
      "typeVersion": 1
    },
    {
      "id": "cbed5a83-dbff-4c41-ad1b-ec06102acb76",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -400,
        336
      ],
      "parameters": {
        "height": 224,
        "content": "📊 **步骤 2:数据记录**"
      },
      "typeVersion": 1
    },
    {
      "id": "5c451fdb-d1c9-4315-bc77-4aa4bcbba11c",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -192,
        608
      ],
      "parameters": {
        "height": 256,
        "content": "✅ **步骤 3:邮箱验证**"
      },
      "typeVersion": 1
    },
    {
      "id": "a89bd006-d4a5-4980-bef9-a34e5a9b2ab9",
      "name": "便签说明4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        176
      ],
      "parameters": {
        "height": 296,
        "content": "🎨 **步骤 4:邮件模板**"
      },
      "typeVersion": 1
    },
    {
      "id": "905fb062-da89-4c8c-9ffc-9ccc8b3a323d",
      "name": "便签说明5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        208
      ],
      "parameters": {
        "height": 240,
        "content": "📧 **步骤 5:发送邮件**"
      },
      "typeVersion": 1
    },
    {
      "id": "22f3915e-ceff-4489-9c43-8b6e814e6155",
      "name": "便签 6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -288,
        976
      ],
      "parameters": {
        "height": 252,
        "content": "⚠️ **错误处理程序**"
      },
      "typeVersion": 1
    },
    {
      "id": "fe9be2b3-c57f-4fec-a525-5f067f72b0ca",
      "name": "在表格中追加或更新行",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        832,
        672
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "Task ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Task ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Task Name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Task Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Description",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status Color",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Status Color",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Priority",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Priority",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date Created",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Date Created",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date Updated",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Date Updated",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date Closed",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Date Closed",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date Done",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Date Done",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Due Date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Due Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Start Date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Start Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Creator",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Creator",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Creator Email",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Creator Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Assignees",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Assignees",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Watchers",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Watchers",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "List Name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "List Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "List ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "List ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Project Name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Project Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Project ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Project ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Folder Name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Folder Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Space ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Space ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Team ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Team ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Points",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Points",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Time Estimate (Hours)",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Time Estimate (Hours)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Time Spent (Hours)",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Time Spent (Hours)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Order Index",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Order Index",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Archived",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Archived",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Tags",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Tags",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Custom Fields",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Custom Fields",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Has Dependencies",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Has Dependencies",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Has Linked Tasks",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Has Linked Tasks",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Has Checklists",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Has Checklists",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Task URL",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Task URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Public Sharing",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Public Sharing",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Permission Level",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Permission Level",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Data Processed At",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Data Processed At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Processing Status",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Processing Status",
              "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/1_aMeJ3avtD48dLkQxmgTtjDgbvhWp8a5v5wzgzIDd3o/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1_aMeJ3avtD48dLkQxmgTtjDgbvhWp8a5v5wzgzIDd3o",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1_aMeJ3avtD48dLkQxmgTtjDgbvhWp8a5v5wzgzIDd3o/edit?usp=drivesdk",
          "cachedResultName": "TypeForm Form Data"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "kpPEOLCGn963qpoh",
          "name": "automations@techdome.ai"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "d7875033-c362-4d0e-9fb2-9c62d866dabe",
      "name": "Azure OpenAI聊天模型1",
      "type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
      "position": [
        256,
        1120
      ],
      "parameters": {
        "model": "gpt-4o",
        "options": {}
      },
      "credentials": {
        "azureOpenAiApi": {
          "id": "C3WzT18XqF8OdVM6",
          "name": "Azure Open AI account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4868a1af-06d1-4fe0-aa3f-9f1dca28163b",
      "name": "简单记忆1",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        400,
        1136
      ],
      "parameters": {
        "sessionKey": "\"json_review\"",
        "sessionIdType": "customKey",
        "contextWindowLength": 7
      },
      "typeVersion": 1.3
    },
    {
      "id": "031c5052-83c7-43ee-87d8-e9be9b23fd11",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        288,
        896
      ],
      "parameters": {
        "text": "={{ $json[\"First name\"] }}{{ $json[\"Last name\"] }}{{ $json[\"Phone number\"] }}{{ $json.Email }}{{ $json.Company }}{{ $json[\"Which tutorial did you complete?\"] }}{{ $json[\"How would you rate the clarity of the tutorial content?\"] }}{{ $json[\"How helpful was the tutorial in improving your development skills?\"] }}{{ $json[\"What topics would you like to see covered in future tutorials?\"] }}{{ $json[\"Did you encounter any issues or difficulties while following the tutorial?\"] }}{{ $json[\"If yes, please describe the issues or difficulties you faced.\"] }}{{ $json[\"Any additional comments or suggestions to improve our tutorials?\"] }}{{ $json[\"Would you recommend these tutorials to other developers?\"] }}",
        "options": {
          "systemMessage": "=You are an AI assistant that processes raw form submissions from surveys or onboarding forms. \nYour job is to read all the answers and generate a structured, professional summary. \n\nRules:\n- Always produce output as clean JSON (no free text).\n- Keep \"summary\" concise (2–3 sentences).\n- In \"insights\", list key observations or potential issues as bullet points (max 5).\n- In \"callToAction\", give one short, actionable recommendation for the internal team.\n- If answers are irrelevant, empty, or missing, clearly state \"Not provided\" instead of skipping.\n- Do not repeat raw text verbatim; rephrase into professional insights.\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.1
    },
    {
      "id": "0d20f7f1-6c5a-4608-a22b-4c24800e5af4",
      "name": "结构化输出解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        512,
        1152
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"output\": {\n    \"summary\": \"…\",\n    \"insights\": [ \"…\", \"…\" ],\n    \"callToAction\": \"…\"\n  }\n}\n"
      },
      "typeVersion": 1.3
    },
    {
      "id": "46b1e8b2-4f27-4f90-bc3f-f04b9023d416",
      "name": "发送消息",
      "type": "n8n-nodes-base.slack",
      "position": [
        640,
        896
      ],
      "webhookId": "16544571-1b96-4e02-80fb-eccd5d588aa8",
      "parameters": {
        "text": "=Summary: {{ $json.output.summary }} \n\nInsight: {{ $json.output.insights }} \n\nAction: {{ $json.output.callToAction }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C09H21LK9BJ",
          "cachedResultName": "reply-needed"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "id": "rNqvWj9TfChPVRYY",
          "name": "Slack account vivek"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "8ff6854e-2aa2-4ee4-92f1-6d2062e8430a",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        640
      ],
      "parameters": {
        "height": 240,
        "content": "📌 **创建 ClickUp 任务**"
      },
      "typeVersion": 1
    },
    {
      "id": "b2ceca60-90b7-4fd3-b813-e517c21b80e9",
      "name": "便签 7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        656
      ],
      "parameters": {
        "height": 240,
        "content": "📊 **保存任务数据**"
      },
      "typeVersion": 1
    },
    {
      "id": "3428b6c8-7cdd-4cb5-80b9-4d2cdcdcb8f7",
      "name": "## 为什么选择 4o 模型?👆",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        304,
        928
      ],
      "parameters": {
        "height": 272,
        "content": "🤖 **AI 摘要生成器**"
      },
      "typeVersion": 1
    },
    {
      "id": "8b837ce3-bad7-4746-853e-bf4e8a3da588",
      "name": "便签 9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        624
      ],
      "parameters": {
        "height": 256,
        "content": "🛠️ **格式化 ClickUp 数据**"
      },
      "typeVersion": 1
    },
    {
      "id": "52bd38b8-6b2a-453c-8c37-b0b2dc8c3119",
      "name": "便签10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -32,
        1248
      ],
      "parameters": {
        "height": 224,
        "content": "🧠 **语言模型**"
      },
      "typeVersion": 1
    },
    {
      "id": "33dedf53-430f-477c-8baa-fbe014630da2",
      "name": "便签11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        288,
        1296
      ],
      "parameters": {
        "height": 224,
        "content": "🗂️ **对话记忆**"
      },
      "typeVersion": 1
    },
    {
      "id": "34eafdd1-7527-46ab-8ac3-4992887b92d8",
      "name": "便签12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        576,
        1248
      ],
      "parameters": {
        "height": 224,
        "content": "📦 **结构化解析器**"
      },
      "typeVersion": 1
    },
    {
      "id": "f43e42ee-3424-4745-a405-edbf37bedcc6",
      "name": "便签13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        768,
        976
      ],
      "parameters": {
        "height": 224,
        "content": "💬 **Slack 通知**"
      },
      "typeVersion": 1
    },
    {
      "id": "351fd454-e8eb-450c-b6fe-f0ab1fa68962",
      "name": "为表格格式化客户数据",
      "type": "n8n-nodes-base.code",
      "position": [
        560,
        656
      ],
      "parameters": {
        "jsCode": "// ClickUp Data Formatter for Google Sheets\n// This code formats ClickUp task data into a structured format for spreadsheet logging\n\nconst inputData = $input.all();\nconst formattedData = [];\n\nfor (const item of inputData) {\n  const taskData = item.json;\n  \n  // Format dates for better readability\n  const formatDate = (timestamp) => {\n    if (!timestamp) return '';\n    return new Date(parseInt(timestamp)).toLocaleString('en-US', {\n      year: 'numeric',\n      month: '2-digit',\n      day: '2-digit',\n      hour: '2-digit',\n      minute: '2-digit',\n      timeZone: 'UTC'\n    });\n  };\n  \n  // Extract assignee names\n  const getAssignees = (assignees) => {\n    if (!assignees || assignees.length === 0) return 'Unassigned';\n    return assignees.map(assignee => assignee.username).join(', ');\n  };\n  \n  // Extract watcher names\n  const getWatchers = (watchers) => {\n    if (!watchers || watchers.length === 0) return '';\n    return watchers.map(watcher => watcher.username).join(', ');\n  };\n  \n  // Extract tags\n  const getTags = (tags) => {\n    if (!tags || tags.length === 0) return '';\n    return tags.map(tag => tag.name).join(', ');\n  };\n  \n  // Extract custom fields\n  const getCustomFields = (customFields) => {\n    if (!customFields || customFields.length === 0) return '';\n    return customFields.map(field => `${field.name}: ${field.value}`).join(' | ');\n  };\n  \n  // Format priority\n  const getPriority = (priority) => {\n    if (!priority) return 'None';\n    return priority.priority || 'None';\n  };\n  \n  // Calculate time estimates and spent in hours\n  const formatTime = (timeInMs) => {\n    if (!timeInMs || timeInMs === 0) return '0';\n    return (timeInMs / (1000 * 60 * 60)).toFixed(2); // Convert to hours\n  };\n  \n  // Format the data for Google Sheets\n  const formattedItem = {\n    // Basic Task Information\n    'Task ID': taskData.id || '',\n    'Task Name': taskData.name || '',\n    'Description': taskData.description || taskData.text_content || '',\n    'Status': taskData.status?.status || '',\n    'Status Color': taskData.status?.color || '',\n    'Priority': getPriority(taskData.priority),\n    \n    // Dates\n    'Date Created': formatDate(taskData.date_created),\n    'Date Updated': formatDate(taskData.date_updated),\n    'Date Closed': formatDate(taskData.date_closed),\n    'Date Done': formatDate(taskData.date_done),\n    'Due Date': formatDate(taskData.due_date),\n    'Start Date': formatDate(taskData.start_date),\n    \n    // People\n    'Creator': taskData.creator?.username || '',\n    'Creator Email': taskData.creator?.email || '',\n    'Assignees': getAssignees(taskData.assignees),\n    'Watchers': getWatchers(taskData.watchers),\n    \n    // Organization\n    'List Name': taskData.list?.name || '',\n    'List ID': taskData.list?.id || '',\n    'Project Name': taskData.project?.name || '',\n    'Project ID': taskData.project?.id || '',\n    'Folder Name': taskData.folder?.name || '',\n    'Space ID': taskData.space?.id || '',\n    'Team ID': taskData.team_id || '',\n    \n    // Task Details\n    'Points': taskData.points || 0,\n    'Time Estimate (Hours)': formatTime(taskData.time_estimate),\n    'Time Spent (Hours)': formatTime(taskData.time_spent),\n    'Order Index': taskData.orderindex || '',\n    'Archived': taskData.archived ? 'Yes' : 'No',\n    \n    // Additional Information\n    'Tags': getTags(taskData.tags),\n    'Custom Fields': getCustomFields(taskData.custom_fields),\n    'Has Dependencies': taskData.dependencies && taskData.dependencies.length > 0 ? 'Yes' : 'No',\n    'Has Linked Tasks': taskData.linked_tasks && taskData.linked_tasks.length > 0 ? 'Yes' : 'No',\n    'Has Checklists': taskData.checklists && taskData.checklists.length > 0 ? 'Yes' : 'No',\n    \n    // URLs and Sharing\n    'Task URL': taskData.url || '',\n    'Public Sharing': taskData.sharing?.public ? 'Yes' : 'No',\n    'Permission Level': taskData.permission_level || '',\n    \n    // Metadata\n    'Data Processed At': new Date().toISOString(),\n    'Processing Status': 'Success'\n  };\n  \n  formattedData.push({\n    json: formattedItem,\n    pairedItem: item.pairedItem\n  });\n}\n\n// Return the formatted data\nreturn formattedData;"
      },
      "typeVersion": 2
    },
    {
      "id": "ad96b89c-c380-44d6-a0ad-6a4504e79b35",
      "name": "创建 ClickUp 入职任务",
      "type": "n8n-nodes-base.clickUp",
      "position": [
        320,
        656
      ],
      "parameters": {
        "list": "901411336526",
        "name": "={{ $('Log to Google Sheets').item.json[\"Which tutorial did you complete?\"] }}",
        "team": "9014871666",
        "space": "90143681766",
        "folderless": true,
        "additionalFields": {
          "assignees": "={{ $('Log to Google Sheets').item.json[\"First name\"] }}"
        }
      },
      "credentials": {
        "clickUpApi": {
          "id": "gDQJASsbW56RbLoy",
          "name": "ClickUp account vivek"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3f90bc74-ed0d-42f7-9761-644ee7cf7185",
      "name": "处理缺失邮箱并记录错误",
      "type": "n8n-nodes-base.function",
      "position": [
        -96,
        816
      ],
      "parameters": {},
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "3e2c977e-4bfb-48da-bc5b-6248e2d719e4",
  "connections": {
    "AI Agent": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory1": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Typeform Trigger": {
      "main": [
        [
          {
            "node": "Log to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Email Exists": {
      "main": [
        [
          {
            "node": "Generate Professional Email HTML",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create ClickUp Onboarding Task",
            "type": "main",
            "index": 0
          },
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Handle Missing Email and log error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log to Google Sheets": {
      "main": [
        [
          {
            "node": "Check Email Exists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Azure OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Create ClickUp Onboarding Task": {
      "main": [
        [
          {
            "node": "Format Customer Data for Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Customer Data for Sheets": {
      "main": [
        [
          {
            "node": "Append or update row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Professional Email HTML": {
      "main": [
        [
          {
            "node": "Send Welcome Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

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

需要付费吗?

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

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

适合高级用户,包含 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 查看

分享此工作流