8
n8n 中文网amn8n.com

🎧 IT语音支持自动化机器人 – Telegram语音消息转JIRA工单(使用OpenAI Whisper)

高级

这是一个Ticket Management, AI Summarization领域的自动化工作流,包含 25 个节点。主要使用 If, Set, Code, Jira, Merge 等节点。 通过Whisper和GPT-4.1 Mini将Telegram语音消息自动转换为JIRA工单

前置要求
  • Slack Bot Token 或 Webhook URL
  • Telegram Bot Token
  • Google Drive API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "6CQ1q9QNxrj2uI22",
  "meta": {
    "instanceId": "4a2e6764ba7a6bc9890d9225f4b21d570ce88fc9bd57549c89057fcee58fed0f",
    "templateId": "5473",
    "templateCredsSetupCompleted": true
  },
  "name": "🎧 IT 语音支持自动化机器人 – Telegram 语音消息转 JIRA 工单(使用 OpenAI Whisper)",
  "tags": [
    {
      "id": "3R2z7RUjxRHnnAdm",
      "name": "IT Workflow",
      "createdAt": "2025-07-31T14:10:26.526Z",
      "updatedAt": "2025-07-31T14:10:26.526Z"
    },
    {
      "id": "ow6eIe95VK6fRkyw",
      "name": "Chatbot",
      "createdAt": "2025-08-05T06:23:11.231Z",
      "updatedAt": "2025-08-05T06:23:11.231Z"
    }
  ],
  "nodes": [
    {
      "id": "d86b9562-b23b-4683-b77b-6af858369fe1",
      "name": "OpenAI 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1712,
        1088
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f373c9fe-54ae-4639-9020-a7bc0dc491a6",
      "name": "多表:您可以连接多个表以实现有组织的数据结构",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1840,
        1088
      ],
      "parameters": {
        "jsonSchemaExample": "[\n  {\n    \"chatid\": \"IT-REQ-20240701-001\",\n    \"requested_by\": {\n      \"name\": \"\",\n      \"department\": \"\"\n    },\n    \"from\":\"\",\n    \"category\": \"Feature\",\n    \"priority\": \"High\",\n    \"status\": \"Open\",\n    \"title\": \"Purchase 2TB SSD compatible with MacBook\",\n    \"description\": \"Request to purchase a 2TB or larger SSD compatible with MacBook for data backup and transfer purposes. The requester expects the SSD to be reliable and durable. Delivery is expected by 2024-07-05. Please proceed with sourcing a compatible model and ensure proper procurement process is followed. Original request came via IT support email.\",\n    \"due_date\": \"2024-07-05\",\n    \"created_at\": \"2024-07-01T10:30:00Z\",\n    \"original_message\":\"\",\n    \"audioUrl\":\"\"\n  }\n]"
      },
      "typeVersion": 1.3
    },
    {
      "id": "3d157208-5282-4e80-92cc-391a4f531526",
      "name": "向 IT 支持团队发送消息",
      "type": "n8n-nodes-base.slack",
      "position": [
        2528,
        768
      ],
      "webhookId": "cb2e481d-9325-4e1c-9ce1-70c6ff0136ef",
      "parameters": {
        "text": "=📩 *New IT Support Request Submitted*\n👤 *Requested by:* {{ $('Transcript Processing Agent').item.json.output[0].requested_by.name }} | ({{ $('Transcript Processing Agent').item.json.output[0].requested_by.department }})\n🎯 *Category:* {{ $('Transcript Processing Agent').item.json.output[0].category }}\n📊 *Priority:* {{ $('Transcript Processing Agent').item.json.output[0].priority }}\n📝 *Title:* {{ $('Transcript Processing Agent').item.json.output[0].title }}\n\n🧾 *Description:*  \n{{ $('Transcript Processing Agent').item.json.output[0].description }}\n\n🔗 *Track in Jira:* {{ $json[\"Jira base URL\"] }}/browse/{{ $('Submit JIRA request ticket').item.json.key }}\n\n📣 Please take action or assign accordingly.",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "={{ $json['IT support slack channel'] }}"
        },
        "otherOptions": {},
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "id": "fDHHxMgQm69z0h5T",
          "name": "Slack account"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "e4282aaf-37f5-4dfd-b37f-a091741954c4",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1456,
        128
      ],
      "parameters": {
        "width": 1648,
        "height": 2112,
        "content": "# 🎧 IT 语音支持自动化机器人 – Telegram 语音消息转 JIRA 工单(使用 OpenAI Whisper)"
      },
      "typeVersion": 1
    },
    {
      "id": "d7f147cf-c456-4b47-b8de-29987dc6208f",
      "name": "设置 Jira、Slack、电子邮件",
      "type": "n8n-nodes-base.set",
      "position": [
        2304,
        864
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "d6d4633f-b2b1-4789-a373-6a37e7965203",
              "name": "Jira base URL",
              "type": "string",
              "value": "https://your-company.atlassian.net"
            },
            {
              "id": "2e7685df-5c0c-476c-aa2c-bbf72c255dfa",
              "name": "IT support email",
              "type": "string",
              "value": "it@your-company.com"
            },
            {
              "id": "068a0089-eb68-4118-a21b-acc5485c4d7e",
              "name": "IT support slack channel",
              "type": "string",
              "value": "it-support"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "5940141a-f7ad-415b-b930-027f591a07cd",
      "name": "提交 JIRA 请求工单",
      "type": "n8n-nodes-base.jira",
      "position": [
        2080,
        864
      ],
      "parameters": {
        "project": {
          "__rl": true,
          "mode": "list",
          "value": "10003",
          "cachedResultName": "Support"
        },
        "summary": "={{ $json.output[0].title }}",
        "issueType": {
          "__rl": true,
          "mode": "list",
          "value": "10005",
          "cachedResultName": "Task"
        },
        "additionalFields": {
          "assignee": {
            "__rl": true,
            "mode": "list",
            "value": "712020:49f03c74-eab4-4903-aee6-662433856e97",
            "cachedResultName": "Dinh Ngoc Huy"
          },
          "description": "={{ $json.output[0].description }}\nOriginal Voice Message Transcript (by AI)\n---\n{{ $json.output[0].original_message }}\n---\nOriginal Voice Message: {{ $json.output[0].audioUrl }}"
        }
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "id": "4pyiEA4RWXJCkSHl",
          "name": "Jira SW Cloud account"
        }
      },
      "executeOnce": false,
      "retryOnFail": false,
      "typeVersion": 1
    },
    {
      "id": "3d7e9547-d45a-46da-9cf0-eea3c8f0d436",
      "name": "Telegram 语音消息触发器",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        336,
        960
      ],
      "webhookId": "5cdd7f36-b2e3-4c8d-ab5f-1f2763eb5c75",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {
          "download": true
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "paNoPvnV5Wzt4Lhv",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "28ff22df-5242-45aa-8634-159eed3d84af",
      "name": "是否为音频消息?",
      "type": "n8n-nodes-base.if",
      "position": [
        560,
        960
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "069b1c3b-d683-46f2-b7d6-9dbcdde41445",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json.message.toJsonString() }}",
              "rightValue": "audio/ogg"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "28fc9885-9978-4403-9dbf-53ee0d498a7b",
      "name": "不支持的消息类型",
      "type": "n8n-nodes-base.telegram",
      "position": [
        784,
        1056
      ],
      "webhookId": "344e09e1-f90a-4181-b88d-eba8a1729454",
      "parameters": {
        "text": "=Sorry, I can’t read your input right now.\nPlease send me a voice message, and I’ll help you transcribe and track it! 🎙️💬",
        "chatId": "={{ $('Telegram Voice Message Trigger').item.json.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "paNoPvnV5Wzt4Lhv",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "143e2575-a8fe-4ae4-9344-cd9522aa61c1",
      "name": "下载音频消息",
      "type": "n8n-nodes-base.telegram",
      "position": [
        784,
        864
      ],
      "webhookId": "b7eb04dc-b5db-4fbd-8ea6-7692282d9469",
      "parameters": {
        "fileId": "={{ $json.message.voice.file_id }}",
        "resource": "file"
      },
      "credentials": {
        "telegramApi": {
          "id": "paNoPvnV5Wzt4Lhv",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "35e82630-9f80-4ffb-8a4e-68ed26af0655",
      "name": "转录录音",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1008,
        768
      ],
      "parameters": {
        "options": {},
        "resource": "audio",
        "operation": "transcribe"
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "5f5e1bbe-cda6-48cc-b4fb-fe87ffbcee45",
      "name": "便签7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2768,
        208
      ],
      "parameters": {
        "width": 768,
        "height": 432,
        "content": "![替代文本](https://wisestackai.s3.ap-southeast-1.amazonaws.com/jira.png \"可选标题文本\")"
      },
      "typeVersion": 1
    },
    {
      "id": "119dee85-e382-4d71-8790-3748d4b68a28",
      "name": "转录处理代理",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1680,
        864
      ],
      "parameters": {
        "text": "=Below is the voice message transcript sent to IT support. Please extract all relevant information according to your instructions.\n---\n{{ $json.toJsonString() }}\n---",
        "options": {
          "systemMessage": "=You are an intelligent IT Support Assistant.\n\nYour job is to analyze voice message transcripts sent to the IT support team via Telegram, and extract all the key information required for internal processing.\n\nHere’s what you must do:\n\n1. Carefully read the entire transcript content of the voice message.\n2. Determine the **actual requester** by checking:\n   - If the speaker clearly mentions their **name, role, or department** during the voice message\n   - If no identifying details are mentioned, leave the name and department fields blank (they can be filled in later manually)\n3. Extract the following information:\n   - Requester's name (if mentioned)\n   - Requester's department or team (if mentioned)\n   - Request category: choose from one of the following — *Feature, Incident, Access Request, Maintenance*\n   - Priority level: *Low, Medium, High, or Critical*\n   - Request title: a clear and concise title summarizing the main intent\n   - Request description: provide enough technical and business context for the IT team to take action\n   - Due date or urgency if mentioned\n   - The full original transcript (for reference)\n\n⚠️ Do not make up information that is not mentioned. If a specific field cannot be determined from the transcript, leave it blank or mark as \"Not specified\".\n\nReturn your output as **clearly structured data in text**, following a readable and organized format (not JSON). This will be converted to structured data by another tool."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.8
    },
    {
      "id": "097266fd-5914-42c5-a99c-62f24eec27ab",
      "name": "通过 Telegram 通知报告人",
      "type": "n8n-nodes-base.telegram",
      "position": [
        2528,
        960
      ],
      "webhookId": "ed72173c-01bc-41a7-a369-545e09392e09",
      "parameters": {
        "text": "=*Dear {{ $('Transcript Processing Agent').item.json.output[0].requested_by.name }},*\n\nThank you for reaching out to the IT Support team.  \nWe’ve received your request regarding:  \n*{{ $('Transcript Processing Agent').item.json.output[0].title }}*\n\n📝 *Summary:*  \n{{ $('Transcript Processing Agent').item.json.output[0].description }}\n\nYour request has been successfully logged in our system and is now being processed by the IT Support team.\n\n🔗 You can track the status of your request here:  \n[{{ $('Submit JIRA request ticket').item.json.key }}]({{ $json[\"Jira base URL\"] }}/browse/{{ $('Submit JIRA request ticket').item.json.key }})\n\nOur team will review it shortly and follow up with any updates or actions needed.  \n\nBest regards,  \n*IT Support Team*",
        "chatId": "={{ $('Transcript Processing Agent').item.json.output[0].chatid }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "paNoPvnV5Wzt4Lhv",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "041b4c60-56a2-4ee5-a537-500874584876",
      "name": "合并",
      "type": "n8n-nodes-base.merge",
      "position": [
        1232,
        864
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "adb3c7b6-b595-4b53-921c-bd46ab661c66",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2768,
        672
      ],
      "parameters": {
        "width": 768,
        "height": 272,
        "content": "![替代文本](https://wisestackai.s3.ap-southeast-1.amazonaws.com/slack.png \"可选标题文本\")"
      },
      "typeVersion": 1
    },
    {
      "id": "e7a19034-fd0a-4d0e-934b-85a55e6deff4",
      "name": "便签9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2768,
        960
      ],
      "parameters": {
        "width": 768,
        "height": 512,
        "content": "![替代文本](https://wisestackai.s3.ap-southeast-1.amazonaws.com/tele.png \"可选标题文本\")"
      },
      "typeVersion": 1
    },
    {
      "id": "b059c849-f7e8-45a9-b6ae-d70fb4f19e10",
      "name": "备份音频消息到 Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1008,
        960
      ],
      "parameters": {
        "name": "=audio-{{ $now.toFormat(\"yyyyLLdd-HHmmss\") }}-{{$binary.data.fileName}}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1ObNNVJFR2vcKqP8p-ZnX_eaZy4gBHgha",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1ObNNVJFR2vcKqP8p-ZnX_eaZy4gBHgha",
          "cachedResultName": "SmartIT"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "fC471es5gk5Mm900",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "09b62491-202a-4a2a-be88-dd1775658fbd",
      "name": "在输入 AI 代理前处理输出",
      "type": "n8n-nodes-base.code",
      "position": [
        1456,
        864
      ],
      "parameters": {
        "jsCode": "const inputs = $input.all();\n\n// Assumes: \n// inputs[0] = transcript\n// inputs[1] = drive metadata\n\nconst transcriptData = inputs[0].json;\nconst driveData = inputs[1].json;\nconst tele = $('Telegram Voice Message Trigger').first().json.message;\n\nconst result = {\n  Transcript: transcriptData.text || '',\n  AudioURL: driveData.webContentLink || '',\n  ChatID: tele.chat.id,\n  FirstName: tele.from.first_name\n};\n\nreturn [{ json: result }];"
      },
      "typeVersion": 2
    },
    {
      "id": "38348903-4c94-46dc-af77-64c47e20bd18",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        224,
        640
      ],
      "parameters": {
        "width": 528,
        "height": 256,
        "content": "## 📥 1. Telegram 语音输入与验证"
      },
      "typeVersion": 1
    },
    {
      "id": "1c8b21e6-074c-4b4a-bfd8-6f55c7a0e0c5",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        784,
        496
      ],
      "parameters": {
        "width": 528,
        "height": 240,
        "content": "## 🎙️ 2. 音频处理与转录"
      },
      "typeVersion": 1
    },
    {
      "id": "d74dcab5-326b-46a3-8dda-a08c2023e1e5",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1184,
        1040
      ],
      "parameters": {
        "width": 448,
        "height": 256,
        "content": "## 🔀 3. 合并与预处理数据"
      },
      "typeVersion": 1
    },
    {
      "id": "2a4b0d93-7f15-45ad-b97c-446f99d6804b",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1584,
        608
      ],
      "parameters": {
        "width": 448,
        "height": 208,
        "content": "## 🧠 4. AI 驱动的转录分析"
      },
      "typeVersion": 1
    },
    {
      "id": "035592de-727c-42e0-a16a-3b50aeca6e79",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2096,
        528
      ],
      "parameters": {
        "width": 544,
        "height": 208,
        "content": "## 🛠️ 5. 工单提交与内部通知"
      },
      "typeVersion": 1
    },
    {
      "id": "b3b9315c-e55d-4bbe-874b-f5ea2ecdf061",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2112,
        1168
      ],
      "parameters": {
        "width": 480,
        "height": 192,
        "content": "## 📬 6. 用户确认"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "5c7e739d-016a-4e4a-bb00-7f84d89d81d3",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Process output before feeding AI agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is audio message?": {
      "main": [
        [
          {
            "node": "Download audio message",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Un-supported message type",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Transcript Processing Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Download audio message": {
      "main": [
        [
          {
            "node": "Backup Audio Message To Google Drive",
            "type": "main",
            "index": 0
          },
          {
            "node": "Transcribe a recording",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transcribe a recording": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Setup Jira, Slack, Email": {
      "main": [
        [
          {
            "node": "Send message to IT Support team",
            "type": "main",
            "index": 0
          },
          {
            "node": "Inform reporter via Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Transcript Processing Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Submit JIRA request ticket": {
      "main": [
        [
          {
            "node": "Setup Jira, Slack, Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transcript Processing Agent": {
      "main": [
        [
          {
            "node": "Submit JIRA request ticket",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Telegram Voice Message Trigger": {
      "main": [
        [
          {
            "node": "Is audio message?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Backup Audio Message To Google Drive": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Process output before feeding AI agent": {
      "main": [
        [
          {
            "node": "Transcript Processing Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - 工单管理, AI 摘要总结

需要付费吗?

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

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

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Trung Tran

Trung Tran

@trungtran

Empowering small and medium businesses with smart automation and practical AI, no big tech team required. Reach out: lets@automatewith.me

外部链接
在 n8n.io 查看

分享此工作流