8
n8n 中文网amn8n.com

AI 驱动的聊天机器人,用于自动创建 WHMCS 支持工单

中级

这是一个AI Chatbot, Multimodal AI领域的自动化工作流,包含 6 个节点。主要使用 Agent, HttpRequestTool, ChatTrigger, LmChatGoogleGemini, MemoryBufferWindow 等节点。 使用 Gemini AI 聊天机器人自动化 WHMCS 支持工单创建

前置要求
  • 可能需要目标 API 的认证凭证
  • Google Gemini API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "4xCipKcgJSWkvMU5",
  "meta": {
    "instanceId": "50631c03cbd88440965b74e5a58aada5437cbc43e90372b516e36154908ad374",
    "templateCredsSetupCompleted": true
  },
  "name": "AI 驱动的聊天机器人,用于自动创建 WHMCS 支持工单",
  "tags": [],
  "nodes": [
    {
      "id": "3aa08f6f-1515-4112-967c-2b5f7f16c929",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -432,
        224
      ],
      "parameters": {
        "options": {
          "systemMessage": "=You are an **AI-powered support assistant** for a hosting and domain service company.  \nYour role is to listen to customer chat messages and **convert them into structured support tickets** inside the WHMCS system.\n\n---\n\n## Core Responsibilities\n1. Understand the user’s request from the chat conversation.  \n2. Extract and prepare the following details for a support ticket:  \n   - Department (must be selected from WHMCS_GetSupportDepartments).  \n   - Subject (concise, clear summary of the issue).  \n   - Message (detailed description of the user’s request/issue, rewritten professionally).  \n   - Name (from the user’s chat identity, or ask if missing).  \n   - Email (from the user’s chat identity, or ask if missing).  \n   - Priority (Low, Medium, High → based on urgency of the request).  \n3. Keep tone **professional, empathetic, and efficient** when interacting with customers.  \n4. If any critical details are missing (e.g., email, department choice), politely ask the user to provide them.  \n\n---\n\n## Knowledge Sources & Tools\n- **WHMCS_GetSupportDepartments** → Always call this tool first to fetch the valid departments list before assigning.  \n- **WHMCS_OpenTicket** → Used to create tickets once all required fields are gathered.  \n\n---\n\n## Strict Guidelines\n- **Do not invent or guess ticket fields.**  \n- **Never assume a department — always map it from WHMCS_GetSupportDepartments.**  \n- **Ensure the subject is short and descriptive.**  \n- **Ensure the message is clear, complete, and polite (even if the user is frustrated).**  \n- If priority is not stated, default to **Medium**.  \n- Do not expose tool names or technical details in user-facing responses.  \n- Maintain session context for follow-up questions until the ticket is created.  \n\n---\n\n## Example Interactions\n\n### 1. Missing Information\n**User**: \"My website is down and I can’t access my email.\"  \n**AI**: \"I can create a support ticket for you. Could you please share your account email so our team can assist you faster?\"\n\n---\n\n### 2. Complete Ticket\n**User**: \"I need help moving my domain to another registrar.\"  \n**AI**: \"Got it — I’ll open a ticket for our Support team.  \n**Subject**: Domain transfer request  \n**Message**: The customer wants to transfer their domain to another registrar. Please provide transfer instructions.  \nPriority: Medium  \nDepartment: [Selected from WHMCS_GetSupportDepartments]  \nTicket created successfully!\"\n\n---\n\n## Reminder\n- Always remain helpful, polite, and professional.  \n- Your goal is to **transform chat into a well-structured support ticket**.  \n- Today’s date: **{{ $now }}**  \n"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "6c870916-a47b-4d2d-8ee3-47ec0e44ac40",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -576,
        432
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "id": "fCwOeE5T0V3qZKVd",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "21ebca8d-1432-413f-a793-c92fc3b4d166",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -416,
        448
      ],
      "parameters": {
        "contextWindowLength": 15
      },
      "typeVersion": 1.3
    },
    {
      "id": "7c841b5b-85db-490d-b078-d0ebbda7c677",
      "name": "当接收到聊天消息时",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -768,
        224
      ],
      "webhookId": "ee828ae8-61b7-4e79-9316-8b3a62a96d88",
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.3
    },
    {
      "id": "22aef3f3-8382-4d96-866a-7952020c8192",
      "name": "WHMCS_OpenTicket",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -240,
        432
      ],
      "parameters": {
        "url": "https://WHMCS_URL.com/includes/api.php",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "form-urlencoded",
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "action",
              "value": "OpenTicket"
            },
            {
              "name": "deptid",
              "value": "=2"
            },
            {
              "name": "subject",
              "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters4_Value', `Generate subject from the User conversation according to his requirements.`, 'string') }}"
            },
            {
              "name": "message",
              "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters5_Value', `Generate detail ticket message from the User conversation according to his requirements.`, 'string') }}"
            },
            {
              "name": "name",
              "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters6_Value', `Get the user from the Chat`, 'string') }}"
            },
            {
              "name": "email",
              "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters7_Value', `Get email from the chat`, 'string') }}"
            },
            {
              "name": "priority",
              "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('parameters8_Value', `The priority of the ticket (‘Low’, ‘Medium’, ‘High’)\t`, 'string') }}"
            }
          ]
        },
        "genericAuthType": "httpCustomAuth",
        "toolDescription": "Makes an HTTP request to check the Domain Avaialbility",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/x-www-form-urlencoded"
            }
          ]
        }
      },
      "credentials": {
        "httpCustomAuth": {
          "id": "bl3gce0XEouHkW5i",
          "name": "WHMCS_Query_Auth"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0e34b87c-9c06-4b75-96bb-272a98bd0a4f",
      "name": "WHMCS_GetSupportDepartments",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -48,
        432
      ],
      "parameters": {
        "url": "https://WHMCS_URL.com/includes/api.php",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "form-urlencoded",
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "action",
              "value": "GetSupportDepartments"
            },
            {
              "name": "responsetype",
              "value": "=json"
            }
          ]
        },
        "genericAuthType": "httpCustomAuth",
        "toolDescription": "Makes an HTTP request to the available support departments",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/x-www-form-urlencoded"
            }
          ]
        }
      },
      "credentials": {
        "httpCustomAuth": {
          "id": "bl3gce0XEouHkW5i",
          "name": "WHMCS_Query_Auth"
        }
      },
      "typeVersion": 4.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "timezone": "Asia/Karachi",
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1"
  },
  "versionId": "172752c3-6c9e-46dc-9c16-6a529a8abea4",
  "connections": {
    "AI Agent": {
      "main": [
        []
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "WHMCS_OpenTicket": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "WHMCS_GetSupportDepartments": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

中级 - AI 聊天机器人, 多模态 AI

需要付费吗?

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

工作流信息
难度等级
中级
节点数量6
分类2
节点类型5
难度说明

适合有一定经验的用户,包含 6-15 个节点的中等复杂度工作流

作者
外部链接
在 n8n.io 查看

分享此工作流