iT邦幫忙

2025 iThome 鐵人賽

DAY 12
0
AI & Data

30天之後,你就是你團隊內最會n8n的人系列 第 12

[Day 12] 為你的戰情室接上廣播系統:串接 Slack 發送每日報告

  • 分享至 

  • xImage
  •  

昨天,我們成功地教會了 n8n 如何思考——它學會了讀取整個資料庫,進行分析、計算與總結,並產出一份完美的文字報告 report_message。

之前我們有學習過怎麼用 Send Mail 節點寄信,但在團隊內,把報告發在 Slack頻道 應該會更為理想!

今天,我們就要來學習 Slack!

我們今天的目標是要為昨天的「每日戰情回報」工作流,接上最後一個,也是最重要的零件——Slack 節點。

我們要授權 n8n,讓它作為一個機器人助理,每天自動將戰情報告,以專業、精美的格式,發佈到我們指定的團隊頻道。


【學習點】:Slack 節點、建立 Slack API 憑證、使用 Blocks 美化訊息。

第一步:n8n 與 Slack 的安全握手 (建立 Credential)
要讓 n8n 代表你在 Slack 中發言,你需要先為 n8n 建立一把專用的「安全鑰匙」。這一步是所有串接中最關鍵的。

請跟著以下步驟,為 n8n 申請一把鑰匙:

  1. 前往 Slack API 頁面:在瀏覽器中打開 api.slack.com/apps

  2. 登入好,建立一個新 App:點擊 Create New App,選擇 From scratch。為你的 App 取個名字(例如 n8n-reporter-bot),並選擇你的工作區。

  3. 設定權限 (Permissions):在左邊選單找到 OAuth & Permissions。向下滾動到 Scopes 區塊,在 Bot Token Scopes 中,點擊 Add an OAuth Scope。

  4. 給予發言權:輸入並選擇 chat:write。這個權限就是「允許這個機器人寫入訊息到公開頻道」。

  5. 安裝 App:向上滾動,點擊 Install to Workspace,然後確認授權。

  6. 複製鑰匙:安裝成功後,你會得到一串 xoxb- 開頭的 Bot User OAuth Token。這就是我們的鑰匙,請立刻複製它。

回到 n8n:

在你的工作流中,新增一個 Slack 節點,動作可以選擇 Send a message。

  1. 在 Credential 欄位,點擊 Create New。

  2. 在 Access Token 欄位中,貼上你剛剛複製的那串 xoxb- 開頭的 Token。

  3. 儲存。

恭喜,你的 n8n 和 Slack 已經成功地安全連接了。

第二步:發送你的第一則 Slack 通知
連接成功後,發送訊息就變得非常簡單。

在昨天的 Set (撰寫報告) 節點後,接上我們剛設定好的 Slack 節點,選擇 Send Message to Channel。

Channel: 因為我們已經設定好 Credential,現在點擊這個欄位,n8n 會自動讀取你所有的 Slack 頻道!選擇一個你想發送報告的頻道,例如 #general。

Text: 在 Text 欄位中,填入我們昨天準備好的報告內容:{{ $json.report_message }}。

現在,執行一次 Slack 節點。你會立刻在指定的頻道中,看到 n8n 發送的純文字報告。

成功了!但...好像有點太樸素了。

第三步:從「能用」到「專業」—— 用 Blocks 美化你的報告
我們要讓我們的報告,在頻道中脫穎而出。這就要用到 Slack 的 Blocks。

在 Message Type 欄位選擇 Blocks。

Blocks 是 Slack 提供的訊息排版工具,你可以把它想像成用樂高積木來組合你的訊息,讓它有標題、有分隔線、有欄位,而不只是一長串文字。

貼上你的排版藍圖:在 Blocks 欄位中,貼上我為你準備好的這段 JSON 程式碼:

{{
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": `📊 團隊任務每日戰情回報 (${new Date($now).toLocaleDateString('zh-TW')})`,
				"emoji": true
			}
		},
		{
			"type": "section",
			"fields": [
				{
					"type": "mrkdwn",
					"text": `*新增任務筆數:*\n${$json.today_count} 件`
				},
				{
					"type": "mrkdwn",
					"text": `*預估總花費:*\n$${$json.today_total_cost}`
				}
			]
		},
		{
			"type": "divider"
		},
		{
			"type": "context",
			"elements": [
				{
					"type": "mrkdwn",
					"text": "做得很好,團隊繼續加油! :rocket:"
				}
			]
		}
	]
}
}}

這段 JSON 定義了訊息的結構:一個 header (標題)、一個帶有兩個 fields (欄位) 的 section、一條 divider (分隔線),和一個 context (註腳)。最關鍵的是,我們把昨天的運算式 {{ $json.today_count }} 和 {{ $json.today_total_cost }} 直接嵌入到了 JSON 結構中,讓這份精美的報告,同樣擁有動態更新的數據!

再次執行 Slack 節點,去你的頻道看看。

一份專業、清晰、美觀的戰情報告,正等著你的團隊。

https://ithelp.ithome.com.tw/upload/images/20250926/20178730N8Xa4QLnEg.png

今天過後,你的 n8n 助理不僅是一位數據分析師,更是一位懂得溝-通藝術的「簡報專家」。

它產出的資訊,不再是冰冷的文字,而是能讓團隊快速吸收、賞心悅目的專業溝通。

我們已經能收集、管理、分析並廣播資訊了。

明天,我們將把這週學到的所有技能融會貫通,打造更多不同的辦公室應用!


上一篇
[Day 11] 打造自動化戰情室:讓 n8n 為你產生每日營運報告
下一篇
[Day 13] 打造 Slack 查詢機器人:讓任何人都能隨時掌握進度
系列文
30天之後,你就是你團隊內最會n8n的人14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言