
在現代企業的協作版圖中,Microsoft Teams (簡稱 Teams) 已然成為無數團隊溝通、協調與專案管理的核心中樞。然而,你是否發現,許多關鍵的商業資訊和流程,仍然散落在 Teams 之外的各個系統中?
- 重要的客戶 CRM 更新,需要手動複製貼上到 Teams 頻道才能通知銷售團隊。
- 每日的營運數據報表,需要有人每天從資料庫導出,再整理成訊息發布到主管群組。
- 當 GitLab 有新的程式碼合併請求時,開發團隊無法在 Teams 中即時收到通知並進行討論。
如果你的團隊也面臨這些「資訊孤島」與「手動同步」的挑戰,那麼將 n8n 這個強大的自動化引擎與 Microsoft Teams 對接,將會是你提升團隊協作效率的革命性一步。
n8n 提供了官方的 Microsoft Teams 整合節點,讓你能夠將 Teams 從一個單純的溝通工具,升級為一個能夠接收、處理並發送來自任何應用程式資訊的「智慧協作中樞」。
這篇文章將是你的 n8n Teams 自動化終極指南。我們將從最關鍵、也最令人生畏的「Azure AD 應用程式註冊」開始,一步步帶你完成安全的連線設定,並透過兩個實戰案例,教你如何打造出能「自動回報數據」和「接收指令」的強大 Teams 機器人。
為什麼要自動化你的 Microsoft Teams?打造團隊的智慧協作中樞
將 n8n 與 Teams 結合,不僅僅是為了「發送通知」,更是為了建立一套無縫的、以團隊溝通為中心的自動化工作流。
- 集中化所有系統通知: 將來自四面八方(CRM, ERP, 專案管理工具, CI/CD 系統)的重要事件,統一彙整並即時推播到指定的 Teams 頻道。團隊成員無需在數十個系統之間來回切換,就能在單一介面中掌握所有關鍵動態。
- 打造互動式機器人 (Interactive Bots): 你可以建立一個能「聽懂」指令的 Teams Bot。團隊成員可以直接在頻道中透過
@Bot
或特定指令,要求 n8n 執行任務,例如「/report sales
」來獲取當日銷售報表,或是「/create_ticket 緊急:伺服器無法登入
」來自動建立一張 IT 支援工單。 - 數據驅動的團隊決策: 讓 n8n 定期從資料庫或商業智慧 (BI) 系統中,抓取最新的營運數據,並以清晰的圖表或卡片形式,自動發布到決策群組中,讓管理層能夠基於最新資訊,快速做出反應。
- 串連微軟生態系與外部世界: n8n 能完美地扮演橋樑的角色,將你的 Microsoft 365 生態系(如 SharePoint, Outlook)與非微軟的工具(如 Google Sheets, Jira, Salesforce)無縫串連起來。
串接第一步:Azure AD (Entra ID) 應用程式註冊與權限設定完整教學
這是串接 Microsoft 服務最關鍵,也是技術門檻最高的一步。為了安全,n8n 需要透過在 Microsoft Azure Active Directory (現已更名為 Microsoft Entra ID) 中註冊一個專屬的「應用程式」,並取得其授權,才能代表你來操作 Teams。
請嚴格遵循以下步驟:
- 登入 Azure 入口網站:
- 使用你的 Microsoft 365 管理員帳號,登入 Microsoft Azure Portal。
- 進入 Microsoft Entra ID:
- 在頂端搜尋框中,搜尋並進入「Microsoft Entra ID」。
- 註冊新的應用程式 (App Registration):
- 在左側選單中,選擇「應用程式註冊 (App registrations)」。
- 點擊「+ 新增註冊 (+ New registration)」。
- 名稱 (Name): 輸入一個好記的名字,例如
n8n-teams-automation
。 - 支援的帳戶類型: 選擇預設的「僅此組織目錄中的帳戶」。
- 重新導向 URI (Redirect URI):這是最關鍵的一步!
- 平台選擇「Web」。
- 回到你的 n8n
Microsoft Teams
節點憑證設定視窗,你會在裡面找到一段 OAuth Callback URL。將這段 URL 完整地複製並貼到 Azure 的這個欄位中。
- 點擊「註冊 (Register)」。
- 建立用戶端密碼 (Client Secret):
- 應用程式建立成功後,在左側選單中,選擇「憑證與秘密 (Certificates & secrets)」。
- 點擊「+ 新增用戶端密碼 (+ New client secret)」。
- 給它一個描述(例如
n8n-key
),選擇一個到期時間,然後點擊「新增 (Add)」。 - 系統會產生一組只會顯示一次的「值 (Value)」。請立即將這個「值 (Value)」複製下來,這就是我們的
Client Secret
。
- 設定 API 權限 (API Permissions):
- 在左側選單中,選擇「API 權限 (API permissions)」。
- 點擊「+ 新增權限 (+ Add a permission)」。
- 選擇「Microsoft Graph」。
- 選擇「委派的權限 (Delegated permissions)」。
- 在搜尋框中,找到並勾選以下權限:
ChannelMessage.Send
(允許傳送訊息到頻道)Chat.ReadWrite
(允許讀寫聊天訊息)User.Read
(讀取使用者基本資料)offline_access
(確保 n8n 可以持續刷新權杖)
- 點擊「新增權限 (Add permissions)」。
- 最後,點擊頁面上方的「為 [你的組織] 授與管理員同意 (Grant admin consent for …)」按鈕,並選擇「是」。
- 回到 n8n 建立憑證:
- 在 n8n 的 Teams 憑證設定視窗中:
- Client ID: 貼上你在 Azure 應用程式「概觀 (Overview)」頁面找到的「應用程式 (用戶端) 識別碼」。
- Client Secret: 貼上你在步驟四取得的那個「值 (Value)」。
- 點擊「Sign in with Microsoft」,完成帳號授權流程。
- 在 n8n 的 Teams 憑證設定視窗中:
完成以上步驟,你的 n8n 就已經被 Microsoft 正式授權,可以開始自動化你的 Teams 了!
n8n Teams 節點核心功能:發送文字、富文本卡片與檔案
n8n 的 Microsoft Teams
節點功能非常豐富,我們主要關注 Message
資源下的 Post
操作。
- 發送純文字訊息: 在
Message
欄位中直接輸入文字即可。你可以使用 Markdown 語法來讓文字有粗體、斜體、列表等格式。 - 發送檔案: 在
Attachments
欄位,你可以傳入來自上游節點的二進制檔案資料,n8n 會自動將其作為附件上傳。 - 發送自適應卡片 (Adaptive Cards): 這是 Teams 訊息中最專業、也最具互動性的格式。你可以透過 JSON 來定義一個包含圖片、按鈕、輸入框等豐富元素的卡片。
- 在
Content Type
選擇Adaptive Card
。 - 在
Content
欄位中,貼上你的 Adaptive Card JSON。你可以使用 Adaptive Cards Designer 這個視覺化工具來輕鬆設計你的卡片。
- 在

實戰演練一:建立「每日營運數據」自動回報機器人
- 目標: 每天早上 9 點,從 PostgreSQL 資料庫抓取昨日的訂單總數與總金額,並使用「自適應卡片」格式,發送到「營運日報」頻道。
- 流程:
Schedule
->PostgreSQL
->Set
->Microsoft Teams
Schedule
節點: 設定每天早上 9 點觸發。PostgreSQL
節點: 執行 SQL 查詢,抓取昨日的數據COUNT(*)
和SUM(amount)
。Set
節點: 將查詢結果整理成order_count
和total_sales
兩個欄位。Microsoft Teams
節點:- Channel: 選擇「營運日報」頻道。
- Content Type:
Adaptive Card
。 - Content: 貼上你的卡片 JSON,並在其中使用 Expressions 來動態填入數據:
JSON{
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"size": "Medium",
"weight": "Bolder",
"text": "📊 {{ $now.toFormat('yyyy-MM-dd') }} 營運日報"
},
{
"type": "FactSet",
"facts": [
{ "title": "昨日訂單總數:", "value": "{{ $json.order_count }} 筆" },
{ "title": "昨日營業總額:", "value": "NT$ {{ $json.total_sales }}" }
]
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.5"
}
實戰演練二:打造一個能「接收指令」的互動式機器人
- 目標: 在 Teams 頻道中,當使用者輸入
/weather 台北
時,n8n 能夠接收到這個指令,去天氣 API 抓取資料,然後回覆天氣狀況。 - 流程:
Webhook
->Set (解析指令)
->HTTP Request
->Microsoft Teams
- 在 Teams 中設定 Outgoing Webhook:
- 進入你想設定的頻道 >
管理團隊
>應用程式
>建立 Outgoing Webhook
。 - 給它一個名字,並將 n8n 的
Webhook
節點 URL 貼到回呼 URL 欄位中。 - 儲存後,你會得到一組 Security Token。
- 進入你想設定的頻道 >
Webhook
節點: 接收來自 Teams 的請求。IF
節點 (安全驗證): 判斷傳入的token
是否等於你在 Teams 中取得的 Security Token,確保請求的合法性。Set
節點: 從傳入的text
欄位中,用 Expressions (例如.split(' ')[1]
) 解析出使用者想查詢的城市名稱「台北」。HTTP Request
節點: 帶著城市名稱去呼叫天氣 API。Microsoft Teams
節點: 將天氣結果,回覆到同一個頻道中。

結語
Microsoft Teams 不應只是一個被動的訊息看板。透過 n8n,你可以將它全面升級為一個主動、智慧的自動化流程中心。從今天起,將你那些散落在各個系統的關鍵資訊,全部彙整到你團隊最熟悉的協作介面中吧!
雖然 Azure AD 的初次設定可能有些繁瑣,但這是一次性的投資。一旦你打通了 n8n 與 Teams 之間的任督二脈,你將能解鎖無數個提升團隊溝通效率與自動化深度的可能性。現在,就從建立你的第一個 Teams Bot 開始,親身體驗這場協作革命吧!
更多精選文章請參考
n8n 與 Zapier 比較:該選哪個?2025年最完整功能、費用、優缺點分析
開源自動化工具推薦:從工作流程到測試,找到最適合你的免費方案
n8n 發送 Email 超詳細教學:從 SMTP 設定到 Gmail 節點串接,一篇搞定!
n8n Notion 串接終極指南:2025 年打造自動化工作流程,效率翻倍!