deepseek-slack-teams-automated-ticket-flow


title: "DeepSeek 整合至企業 Slack 與 Teams 的全自動工單流轉" description: "此教程詳述如何利用 DeepSeek API 整合企業 Slack 與 Microsoft Teams,自動識別、分類並流轉員工提交的支援請求與故障報告,實現高效的工單管理與流程自動化,大幅提升營運效率。" date: 2026-07-21 generated: true tags: ["posts"] layout: "layouts/post.njk" permalink: "/posts/2026-07-21-deepseek-slack-teams-automated-ticket-flow-739/index.html"

在節奏快速的現代企業環境中,員工日常透過 Slack 或 Microsoft Teams 提交的支援請求、故障報告或功能建議,往往需要經過人工審閱、分類和指派,才能轉化為正式的工單。這個手動過程不僅耗時、易出錯,更可能延誤關鍵問題的解決。藉助 DeepSeek 強大的自然語言處理能力,企業能夠將此流程徹底自動化,從根本上提升營運效率與員工滿意度。

本指南將帶領您一步步實現在企業通訊平台(Slack 或 Teams)上,透過 DeepSeek API 自動識別訊息意圖、生成摘要、判斷優先級,並將其無縫流轉至現有工單系統的全自動化工作流程。

傳統工單處理痛點與 DeepSeek 轉型契機

傳統的工單處理流程通常涉及以下挑戰:

  1. 效率低下: 人工審閱大量訊息、提取關鍵信息並手動建立工單,耗費大量時間且容易積壓。
  2. 分類錯誤: 缺乏統一標準,不同人員可能對工單的類型或優先級判斷不一,導致流轉不準確。
  3. 響應延遲: 手動操作的瓶頸會導致工單未能及時創建和指派,拖慢問題解決速度。
  4. 數據難以分析: 非結構化的訊息難以進行有效分析,阻礙了對常見問題和趨勢的洞察。

DeepSeek 的語言模型,如 deepseek-chat,透過其卓越的理解、歸納和生成能力,為解決這些痛點提供了強大的工具。它可以實時分析來自 Slack 或 Teams 的非結構化文本,自動完成意圖識別、信息提取、摘要生成等任務,將其轉化為結構化的數據,為後續的自動化工單流轉奠定基礎。

企業通訊平台上的自動化流程圖

核心技術堆疊:DeepSeek API、通訊平台 API 與自動化中介層

實現全自動工單流轉,主要需要以下三部分技術協同工作:

  1. DeepSeek API: 提供強大的 AI 核心,用於文本理解、分析和生成。
  2. Slack/Teams API: 用於監聽特定頻道或用戶的訊息,並將自動化結果回傳至通訊平台。
  3. 自動化中介層: 負責串聯 DeepSeek API、通訊平台 API 與您的工單系統 API。這可以是一個自訂後端服務(使用 Python, Node.js 等),也可以是無程式碼/低程式碼平台(如 Zapier, Make.com, Microsoft Power Automate)。

本文將以自訂後端服務(Python)配合 webhook 為例,演示其運作原理。

逐步實施指南:整合 DeepSeek API

首先,您需要獲取 DeepSeek API 存取權限並了解如何調用其服務。

1. 獲取 DeepSeek API 金鑰與模型選擇

前往 chat.deepseek.com 註冊並登入,然後導航至您的 API 儀表板以獲取 API 金鑰。請妥善保管此金鑰,切勿直接暴露在客戶端代碼中。

對於工單流轉場景,建議使用 deepseek-chat 或更強大的模型,以確保對複雜語義的理解能力。

2. DeepSeek API 請求與響應格式

DeepSeek API 遵循標準的 RESTful 規範,您可以透過 POST 請求發送內容並接收 JSON 格式的回應。

範例:使用 Python 調用 DeepSeek API 進行文本分析

import os
import requests
import json

DEEPSEEK_API_KEY = os.environ.get("DEEPSEEK_API_KEY") # 建議從環境變數讀取
DEEPSEEK_API_URL = "https://api.deepseek.com/chat/completions" # 根據實際情況調整

def analyze_message_with_deepseek(message_text):
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {DEEPSEEK_API_KEY}"
    }
    
    # 設計清晰的 System Prompt 來引導 DeepSeek 執行任務
    system_prompt = """
    你是一位企業工單自動化助理。請根據用戶提供的訊息,執行以下任務:
    1. 識別訊息的「意圖」(Intent),例如:支援請求、Bug 報告、功能建議、資訊查詢、其他。
    2. 提取關鍵「摘要」(Summary),精簡描述問題的核心。
    3. 判斷「優先級」(Priority),分為:高 (High)、中 (Medium)、低 (Low)。
    4. 建議「處理組別」(AssignedGroup),例如:IT、HR、產品、銷售、財務。
    
    請以 JSON 格式輸出,例如:
    {
        "intent": "支援請求",
        "summary": "無法連接公司VPN",
        "priority": "高",
        "assigned_group": "IT"
    }
    如果無法明確判斷,請將對應欄位設為「未知」。
    """

    data = {
        "model": "deepseek-chat", # 或其他更適合的模型
        "messages": [
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": message_text}
        ],
        "temperature": 0.3, # 較低的溫度值有助於生成更穩定、精確的結果
        "max_tokens": 500
    }

    try:
        response = requests.post(DEEPSEEK_API_URL, headers=headers, json=data)
        response.raise_for_status() # 對於非 2xx 響應拋出異常
        
        result = response.json()
        if result and result.get("choices"):
            content = result["choices"][0]["message"]["content"]
            try:
                # DeepSeek 返回的內容應該是 JSON 格式
                return json.loads(content)
            except json.JSONDecodeError:
                print(f"DeepSeek 返回的內容不是有效的 JSON: {content}")
                return {"error": "Invalid JSON response from DeepSeek"}
        else:
            return {"error": "No valid response from DeepSeek"}

    except requests.exceptions.RequestException as e:
        print(f"DeepSeek API 請求失敗: {e}")
        return {"error": f"API request failed: {e}"}

# 示例調用
# message = "我的 Outlook 突然打不開了,顯示錯誤碼 0x80040115,急需解決!"
# analysis = analyze_message_with_deepseek(message)
# print(analysis)

這段代碼展示了如何向 DeepSeek API 發送請求,並透過精心設計的 system_prompt 來引導模型按照預期的 JSON 格式輸出結構化數據。

逐步實施指南:設置 Slack 或 Teams 監聽器

要捕獲 Slack 或 Teams 中的訊息,您需要設定一個應用程序或連接器,將相關事件發送到您的自動化中介層。

1. Slack App 建立與事件訂閱

  1. 建立 Slack App: 訪問 api.slack.com/apps,點擊 "Create New App",選擇 "From scratch"。
  2. 配置 Bot Token Scopes: 在 "OAuth & Permissions" 下,添加必要的 Bot Token Scopes,例如 chat:write, channels:read, channels:history, groups:read, im:read, mpim:read
  3. 安裝 App 到工作區: 安裝後您會獲得一個 Bot User OAuth Token (xoxb-YOUR-TOKEN)。
  4. 訂閱事件 (Event Subscriptions): 開啟 "Enable Events",並設置一個 Request URL,指向您自動化中介層的 webhook 端點。訂閱 message.channels, message.groups, app_mention 等事件,以便監聽新訊息或提及。
  5. 獲取 Signing Secret: 在 "Basic Information" 頁面,找到 "App Credentials" 中的 "Signing Secret"。這將用於驗證來自 Slack 的請求。

2. Microsoft Teams Connector 或 Power Automate 流

對於 Microsoft Teams,有幾種方法可以實現:

  1. Incoming Webhook Connector: 如果您只是想將 DeepSeek 的結果推送到 Teams 頻道,可以直接在 Teams 頻道中添加 "Incoming Webhook" 連接器,它會提供一個 URL 供您發送 POST 請求。
  2. Microsoft Power Automate: 這是更強大的選擇。您可以建立一個流 (Flow),當 Teams 頻道中有新訊息時觸發,並將訊息內容發送到您的自訂 API 端點(該端點將調用 DeepSeek)。Power Automate 也能夠在 DeepSeek 分析後,將結果回傳至 Teams 頻道。

Webhook 端點範例 (Python Flask 框架)

這是一個簡單的 Flask 服務,用於接收 Slack 或 Teams 的 webhook 請求。

from flask import Flask, request, jsonify
import os
import hashlib
import hmac
import time
import json

app = Flask(__name__)

SLACK_SIGNING_SECRET = os.environ.get("SLACK_SIGNING_SECRET")
# 假設您有一個 function 來處理 DeepSeek 分析並與工單系統集成
from your_deepseek_integration_module import analyze_message_with_deepseek, create_ticket_in_system, send_slack_message

@app.route("/slack/events", methods=["POST"])
def slack_events():
    # 驗證 Slack 請求
    timestamp = request.headers.get("X-Slack-Request-Timestamp")
    if abs(time.time() - int(timestamp)) > 60 * 5: # 請求過期
        return "Request expired", 400

    req_body = request.get_data().decode('utf-8')
    sig_basestring = f"v0:{timestamp}:{req_body}"
    my_signature = 'v0=' + hmac.new(
        SLACK_SIGNING_SECRET.encode('utf-8'),
        sig_basestring.encode('utf-8'),
        hashlib.sha256
    ).hexdigest()

    slack_signature = request.headers.get("X-Slack-Signature")
    if not hmac.compare_digest(my_signature, slack_signature):
        return "Invalid signature", 403

    event_data = request.json
    
    # 處理 Slack URL 驗證
    if event_data.get("type") == "url_verification":
        return jsonify({"challenge": event_data.get("challenge")})

    event = event_data.get("event")
    if event and event.get("type") == "message" and not event.get("subtype"):
        channel_id = event.get("channel")
        user_id = event.get("user")
        message_text = event.get("text")
        
        if message_text and not user_id == "USLACKBOT": # 避免處理來自 bot 自己的訊息
            print(f"Received message from Slack: {message_text}")
            # 非同步處理 DeepSeek 分析和工單創建
            # 實際應用中,您會將此任務放入背景工作佇列(如 Celery)
            process_slack_message_async(channel_id, user_id, message_text) 

    return "", 200 # 立即響應 Slack,避免超時

def process_slack_message_async(channel_id, user_id, message_text):
    # 在實際應用中,這會是一個獨立的背景任務
    print(f"Processing message in background: {message_text}")
    deepseek_analysis = analyze_message_with_deepseek(message_text)

    if deepseek_analysis and not deepseek_analysis.get("error"):
        # 假設工單系統 API 接口
        ticket_id = create_ticket_in_system(
            deepseek_analysis["intent"],
            deepseek_analysis["summary"],
            deepseek_analysis["priority"],
            deepseek_analysis["assigned_group"],
            original_reporter=user_id,
            original_message=message_text
        )
        if ticket_id:
            response_message = f"<@{user_id}> 已收到您的請求:\n" \
                               f"**意圖:** {deepseek_analysis['intent']}\n" \
                               f"**摘要:** {deepseek_analysis['summary']}\n" \
                               f"**優先級:** {deepseek_analysis['priority']}\n" \
                               f"**處理組別:** {deepseek_analysis['assigned_group']}\n" \
                               f"工單號碼:`{ticket_id}` 已成功建立,相關團隊將會盡快處理,謝謝!"
            send_slack_message(channel_id, response_message)
        else:
            send_slack_message(channel_id, f"<@{user_id}> 抱歉,工單系統創建失敗,請稍後再試或直接聯繫支援團隊。")
    else:
        send_slack_message(channel_id, f"<@{user_id}> 抱歉,DeepSeek 分析請求失敗或未能理解您的意圖,請提供更多細節或直接聯繫支援團隊。")

# 這裡需要定義這些假想的函數,實際會調用 Slack API 和您的工單系統 API
def create_ticket_in_system(intent, summary, priority, assigned_group, original_reporter, original_message):
    print(f"Creating ticket in system: Intent={intent}, Summary={summary}, Priority={priority}, Group={assigned_group}, Reporter={original_reporter}")
    # 這裡將調用您的工單系統 (Jira, Zendesk, ServiceNow 等) API
    # 假設成功並返回一個工單號碼
    import uuid
    return f"DSK-{uuid.uuid4().hex[:8].upper()}"

def send_slack_message(channel, text):
    # 這裡將調用 Slack Web API (chat.postMessage)
    # 使用您的 Bot User OAuth Token
    SLACK_BOT_TOKEN = os.environ.get("SLACK_BOT_TOKEN")
    slack_api_url = "https://slack.com/api/chat.postMessage"
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {SLACK_BOT_TOKEN}"
    }
    data = {
        "channel": channel,
        "text": text
    }
    response = requests.post(slack_api_url, headers=headers, json=data)
    if not response.ok:
        print(f"Failed to send Slack message: {response.text}")

if __name__ == "__main__":
    # 在生產環境中請使用 WSGI 伺服器,如 Gunicorn
    app.run(port=5000, debug=True)

逐步實施指南:構建自動化邏輯

自動化流程的核心在於將 DeepSeek 的分析結果與您的工單系統無縫對接。

  1. 事件觸發: 當 Slack 或 Teams 頻道收到一條新訊息時,透過 webhook 發送至您的服務端。
  2. DeepSeek 分析: 您的服務端接收訊息後,調用 analyze_message_with_deepseek 函數,將訊息內容發送給 DeepSeek API 進行分析。DeepSeek 將返回結構化的意圖、摘要、優先級和建議處理組別。
  3. 工單系統整合: 根據 DeepSeek 返回的結構化數據,調用您的工單系統(如 Jira, Zendesk, ServiceNow, Asana 等)的 API,自動創建一個新的工單,並填入 DeepSeek 分析出的各個欄位。
  4. 回饋至 Slack/Teams: 一旦工單成功創建,您的服務端將透過 Slack 或 Teams API 發送一條確認訊息回相關頻道或用戶,告知工單已生成及其詳細信息(例如工單號碼)。

DeepSeek 驅動的智能工單系統介面

範例情境:Slack 故障報告自動流轉

假設一位員工在公司 Slack 的 #it-helpdesk 頻道發送了一條訊息:

@IT Helpdesk 我的網路連線突然斷了,完全上不了網,很緊急!請快點幫我解決。

自動化流程:

  1. Slack 觸發: Slack 將此訊息作為事件,透過 webhook 發送至您的 Flask 服務。

  2. DeepSeek 分析: Flask 服務將訊息文本 "我的網路連線突然斷了,完全上不了網,很緊急!請快點幫我解決。" 發送給 DeepSeek API。 DeepSeek 可能返回如下 JSON:

    {
        "intent": "支援請求",
        "summary": "用戶網路連線中斷,無法上網",
        "priority": "高",
        "assigned_group": "IT"
    }
    
  3. 工單創建: 您的服務將此結構化數據傳遞給 Jira API。Jira 自動創建一個標題為「網路連線中斷,無法上網」的工單,類型為「支援請求」,優先級為「高」,並指派給「IT 部門」。

  4. Slack 回覆: 您的服務將透過 Slack API 在 #it-helpdesk 頻道中回覆:

    @員工姓名 已收到您的請求:
    **意圖:** 支援請求
    **摘要:** 用戶網路連線中斷,無法上網
    **優先級:** 高
    **處理組別:** IT
    工單號碼:`DSK-ADF8E5B6` 已成功建立,IT 團隊將會盡快處理,謝謝!
    

透過這套機制,員工的問題可以在數秒內被分析、分類並建立工單,大幅縮短了響應時間,並確保了工單流轉的準確性。

部署與測試注意事項

結論

DeepSeek 與企業通訊平台的整合,為香港乃至全球的企業提供了一個革新的工單自動化解決方案。透過精確的自然語言理解和智能流轉,企業不僅能顯著提升 IT 支援、HR 諮詢等服務的響應速度和處理效率,更能讓寶貴的人力資源從重複性工作中解放出來,專注於更有價值的策略性任務。這不僅是技術的升級,更是企業營運模式的一次深刻轉型。