昨天,我們成功地教會了 n8n 如何思考——它學會了讀取整個資料庫,進行分析、計算與總結,並產出一份完美的文字報告 report_message。
之前我們有學習過怎麼用 Send Mail 節點寄信,但在團隊內,把報告發在 Slack頻道 應該會更為理想!
今天,我們就要來學習 Slack!
我們今天的目標是要為昨天的「每日戰情回報」工作流,接上最後一個,也是最重要的零件——Slack 節點。
我們要授權 n8n,讓它作為一個機器人助理,每天自動將戰情報告,以專業、精美的格式,發佈到我們指定的團隊頻道。
【學習點】:Slack 節點、建立 Slack API 憑證、使用 Blocks 美化訊息。
第一步:n8n 與 Slack 的安全握手 (建立 Credential)
要讓 n8n 代表你在 Slack 中發言,你需要先為 n8n 建立一把專用的「安全鑰匙」。這一步是所有串接中最關鍵的。
請跟著以下步驟,為 n8n 申請一把鑰匙:
前往 Slack API 頁面:在瀏覽器中打開 api.slack.com/apps
登入好,建立一個新 App:點擊 Create New App,選擇 From scratch。為你的 App 取個名字(例如 n8n-reporter-bot),並選擇你的工作區。
設定權限 (Permissions):在左邊選單找到 OAuth & Permissions。向下滾動到 Scopes 區塊,在 Bot Token Scopes 中,點擊 Add an OAuth Scope。
給予發言權:輸入並選擇 chat:write。這個權限就是「允許這個機器人寫入訊息到公開頻道」。
安裝 App:向上滾動,點擊 Install to Workspace,然後確認授權。
複製鑰匙:安裝成功後,你會得到一串 xoxb- 開頭的 Bot User OAuth Token。這就是我們的鑰匙,請立刻複製它。
回到 n8n:
在你的工作流中,新增一個 Slack 節點,動作可以選擇 Send a message。
在 Credential 欄位,點擊 Create New。
在 Access Token 欄位中,貼上你剛剛複製的那串 xoxb- 開頭的 Token。
儲存。
恭喜,你的 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 節點,去你的頻道看看。
一份專業、清晰、美觀的戰情報告,正等著你的團隊。
今天過後,你的 n8n 助理不僅是一位數據分析師,更是一位懂得溝-通藝術的「簡報專家」。
它產出的資訊,不再是冰冷的文字,而是能讓團隊快速吸收、賞心悅目的專業溝通。
我們已經能收集、管理、分析並廣播資訊了。
明天,我們將把這週學到的所有技能融會貫通,打造更多不同的辦公室應用!