8
n8n 中文网amn8n.com

使用 Telegram、GPT-4 和 Google Sheets 自动化非政府组织援助请求管理

中级

这是一个Ticket Management, AI Chatbot领域的自动化工作流,包含 12 个节点。主要使用 Set, Switch, Telegram, GoogleSheets, Agent 等节点。 使用Telegram、GPT-4和Google Sheets自动化非政府组织援助请求管理

前置要求
  • Telegram Bot Token
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "PvcEnJDre7QTh3Xy",
  "meta": {
    "instanceId": "9eff06f9794a5c6da9f8bedd7572cd2897d884c2b43f32b8368bd92e03c34228",
    "templateCredsSetupCompleted": true
  },
  "name": "使用 Telegram、GPT-4 和 Google Sheets 自动化非政府组织援助请求管理",
  "tags": [],
  "nodes": [
    {
      "id": "e93ae817-3f4b-49dc-8fe8-821170633c69",
      "name": "Telegram 触发器",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        80,
        -80
      ],
      "webhookId": "e344c7c7-dd4b-48e7-86fa-f0e00fd12c96",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "eQGhTntXIBs9WNlc",
          "name": "Telegram DigiSteps1_bot message"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "56283c02-e027-47c0-94ab-02745a082f80",
      "name": "路由消息类型",
      "type": "n8n-nodes-base.switch",
      "position": [
        240,
        -80
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Text",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "dc5471a7-7a28-43e7-8666-1842cba51c95",
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.message.text }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Audio",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "4a94e9ac-99ac-4187-b7d3-6de1a71506dc",
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.message.voice.file_id }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "10c260a8-4987-42ec-bca2-b3192147b702",
      "name": "获取音频文件",
      "type": "n8n-nodes-base.telegram",
      "position": [
        380,
        60
      ],
      "webhookId": "51579376-9e38-4c43-b726-59b60458cb4d",
      "parameters": {
        "fileId": "={{ $json.message.voice.file_id }}",
        "resource": "file"
      },
      "credentials": {
        "telegramApi": {
          "id": "eQGhTntXIBs9WNlc",
          "name": "Telegram DigiSteps1_bot message"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "950d8c4e-1f99-40cc-8434-f54693806d0f",
      "name": "转录语音消息",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        540,
        60
      ],
      "parameters": {
        "options": {},
        "resource": "audio",
        "operation": "transcribe"
      },
      "credentials": {
        "openAiApi": {
          "id": "I2N5Mx7hiecxYcpu",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "38ebb5b9-d13f-4587-8717-42f324ef74e2",
      "name": "提取文本消息",
      "type": "n8n-nodes-base.set",
      "position": [
        460,
        -180
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "d7c9be19-c1c4-4287-ac0e-7a2be9732a51",
              "name": "text",
              "type": "string",
              "value": "={{ $json.message.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4,
      "alwaysOutputData": false
    },
    {
      "id": "59a1eb8b-38f3-478f-8a71-3990cf2df204",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        840,
        -100
      ],
      "parameters": {
        "text": "= here is request from beneficiary: {{ $json.text }}",
        "options": {
          "systemMessage": "You are the NGO TPM team leader. The user has requested help. Categorize the request, and please suggest an action for the TPM team to take\nاكتب دائماً باللغة العربية\nThe output should be like\n{\n  \"category\": \"مشكلة في توزيع المساعدات\",\n  \"action\": \"التواصل مع فرق التوزيع للتحقق من سبب عدم وصول المساعدات إلى القرية والتأكد من الإجراءات اللازمة لحل المشكلة.\"\n}\n\n\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "3c9aaed8-6956-4bd4-89a0-610e7e4e2982",
      "name": "OpenAI 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        840,
        120
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "I2N5Mx7hiecxYcpu",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "c66af39a-150f-4a37-92dc-601e5b3879a5",
      "name": "发送确认消息",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1640,
        -80
      ],
      "webhookId": "0b6bd34e-c586-4cef-a6b0-da7a55a5b7ca",
      "parameters": {
        "text": "=تم استقبال طلبك انه هنالك {{ $('AI Agent').item.json.output.category }}",
        "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "eQGhTntXIBs9WNlc",
          "name": "Telegram DigiSteps1_bot message"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "625e6f44-7bbe-416b-9912-9b8fc3545f89",
      "name": "将音频请求保存到表格",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1440,
        -200
      ],
      "parameters": {
        "columns": {
          "value": {
            "ID": "={{ $('Telegram Trigger').item.json.message.message_id }}",
            "action": "={{ $json.output.action }}",
            "category": "={{ $json.output.category }}\n",
            "last name": "={{ $('Telegram Trigger').item.json.message.chat.last_name }}",
            "First name": "={{ $('Telegram Trigger').item.json.message.chat.first_name }}",
            "Transcription": "={{ $('Transcribe Voice Message').item.json.text }}",
            "Telegram User Name": "={{ $('Telegram Trigger').item.json.message.chat.username }}"
          },
          "schema": [
            {
              "id": "ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Text",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Transcription",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Transcription",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "category",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "category",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "action",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "action",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "First name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "First name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "last name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "last name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Telegram User Name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Telegram User Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "ID"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JKCLCjfm3xIFg5YH0EH9qK4W69jjeX673dFxaHfVRzo/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/1JKCLCjfm3xIFg5YH0EH9qK4W69jjeX673dFxaHfVRzo/edit?usp=sharing"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "KtYF0aYlnYbm8XkV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "7d7b8310-c0cf-433c-932f-97219f37bec3",
      "name": "结构化输出解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1020,
        120
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"category\": \"مشكلة في توزيع المساعدات\",\n  \"action\": \"التواصل مع فرق التوزيع للتحقق من سبب عدم وصول المساعدات إلى القرية والتأكد من الإجراءات اللازمة لحل المشكلة.\"\n}\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "ab338a5f-51ac-4ebc-a668-59ddec459d9b",
      "name": "路由到适当的表格",
      "type": "n8n-nodes-base.switch",
      "position": [
        1200,
        -100
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Audio",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "5b7518a8-578a-4fd6-8240-0b72f073ca76",
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    },
                    "leftValue": "={{ $('Telegram Trigger').item.json.message.voice.file_id }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Text",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "def32c5a-8ffc-46a1-9e2f-68d161eb5436",
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    },
                    "leftValue": "={{ $('Telegram Trigger').item.json.message.text }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "06ef0f7b-63a3-4427-a2a5-1d059a54ebc4",
      "name": "将文本请求保存到表格",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1440,
        -20
      ],
      "parameters": {
        "columns": {
          "value": {
            "ID": "={{ $('Telegram Trigger').item.json.message.message_id }}",
            "Text": "={{ $('Telegram Trigger').item.json.message.text }}",
            "action": "={{ $json.output.action }}",
            "category": "={{ $json.output.category }}\n",
            "last name": "={{ $('Telegram Trigger').item.json.message.chat.last_name }}",
            "First name": "={{ $('Telegram Trigger').item.json.message.chat.first_name }}",
            "Telegram User Name": "={{ $('Telegram Trigger').item.json.message.chat.username }}"
          },
          "schema": [
            {
              "id": "ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Text",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Transcription",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Transcription",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "category",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "category",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "action",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "action",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "First name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "First name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "last name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "last name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Telegram User Name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Telegram User Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "ID"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JKCLCjfm3xIFg5YH0EH9qK4W69jjeX673dFxaHfVRzo/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/1JKCLCjfm3xIFg5YH0EH9qK4W69jjeX673dFxaHfVRzo/edit?usp=sharing"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "KtYF0aYlnYbm8XkV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "b3d1915c-e70f-491a-b9d9-736820d48adf",
  "connections": {
    "59a1eb8b-38f3-478f-8a71-3990cf2df204": {
      "main": [
        [
          {
            "node": "ab338a5f-51ac-4ebc-a668-59ddec459d9b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "10c260a8-4987-42ec-bca2-b3192147b702": {
      "main": [
        [
          {
            "node": "950d8c4e-1f99-40cc-8434-f54693806d0f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e93ae817-3f4b-49dc-8fe8-821170633c69": {
      "main": [
        [
          {
            "node": "56283c02-e027-47c0-94ab-02745a082f80",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3c9aaed8-6956-4bd4-89a0-610e7e4e2982": {
      "ai_languageModel": [
        [
          {
            "node": "59a1eb8b-38f3-478f-8a71-3990cf2df204",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "56283c02-e027-47c0-94ab-02745a082f80": {
      "main": [
        [
          {
            "node": "38ebb5b9-d13f-4587-8717-42f324ef74e2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "10c260a8-4987-42ec-bca2-b3192147b702",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "38ebb5b9-d13f-4587-8717-42f324ef74e2": {
      "main": [
        [
          {
            "node": "59a1eb8b-38f3-478f-8a71-3990cf2df204",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7d7b8310-c0cf-433c-932f-97219f37bec3": {
      "ai_outputParser": [
        [
          {
            "node": "59a1eb8b-38f3-478f-8a71-3990cf2df204",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "950d8c4e-1f99-40cc-8434-f54693806d0f": {
      "main": [
        [
          {
            "node": "59a1eb8b-38f3-478f-8a71-3990cf2df204",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ab338a5f-51ac-4ebc-a668-59ddec459d9b": {
      "main": [
        [
          {
            "node": "625e6f44-7bbe-416b-9912-9b8fc3545f89",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "06ef0f7b-63a3-4427-a2a5-1d059a54ebc4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "06ef0f7b-63a3-4427-a2a5-1d059a54ebc4": {
      "main": [
        [
          {
            "node": "c66af39a-150f-4a37-92dc-601e5b3879a5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "625e6f44-7bbe-416b-9912-9b8fc3545f89": {
      "main": [
        [
          {
            "node": "c66af39a-150f-4a37-92dc-601e5b3879a5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

中级 - 工单管理, AI 聊天机器人

需要付费吗?

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

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

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

作者
Abdulrahman Alhalabi

Abdulrahman Alhalabi

@alhalabi

A AI Flowgramer

外部链接
在 n8n.io 查看

分享此工作流

分类

分类: 34