iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
AI & Data

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

[Day 11] 打造自動化戰情室:讓 n8n 為你產生每日營運報告

  • 分享至 

  • xImage
  •  

昨天,我們成功地建立了一個「中央資料庫」,讓來自四面八方的資訊,都能被 n8n 有條不紊地自動寫入 Google Sheets。

這幫助我們解決了資料散亂的問題。
但資料躺在表格裡,終究只是冰冷的數字。

它們的價值,在於被看見、被解讀。

【今天的煩惱】
每天早上 9 點一到,老闆或團隊主管就會在頻道裡問:「昨天新進了多少客戶?」、「目前總共有幾筆活動報名?」、「昨天的訂單總金額是多少?」...

為了回答這些問題,我都得手動打開 Google Sheets,篩選昨天的日期、計算欄位數量、對某個欄位進行加總... 最後把幾個數字複製貼上到 Slack。

日復一日,單調又乏味。

【今天的進化解法】
我們要打造一個「每日自動戰情回報」工作流。

它會在每天早上,比你老闆更早「醒來」,自動讀取我們 Google Sheets 裡的數據,完成所有計算與分析,最後將一份格式精美的「戰情摘要」,主動發佈到團隊頻道或寄送到主管的信箱。


複習 Schedule 觸發器、Google Sheets 節點 (Get All 模式)、Set 節點的彙整運算。

第一步:設定每日早晨的鬧鐘 (Schedule Trigger)
這是我們最熟悉的老朋友了。一個自動化的報告,始於一個自動化的觸發器。

在新的工作流中,將第一個節點設定為 Schedule。

Mode: Every Day。

Hour: 8 (或任何你想發送報告的時間,例如早上 8 點)。

Minute: 55。

這樣,我們的 n8n 就會在每個工作日的早上 8:55,準時啟動這個任務。

第二步:讀取整個資料庫的數據 (Google Sheets - Get All)
鬧鐘響了,情報官的第一個動作,就是去翻閱資料庫。

在 Schedule 節點後,加上一個 Google Sheets 節點。

Operation: Get Many Rows。

Document: 選擇我們之前建立的「團隊任務總表」。

Sheet: 選擇你要分析的那個分頁,例如 行銷素材申請。

Options -> Return All: 務必打開這個選項,我們要的是完整的資料,而不是預設的前 50 筆。

執行這一步後,n8n 會將你指定的整個分頁,變成一個巨大的 JSON 陣列,每一筆資料代表表格中的一列。

第三步:戰情分析與報告撰寫 (Set 節點的威力)
這是今天最核心、也最見功力的一步。我們要用一個 Set 節點,把上一動傳來的一大堆「生資料」,加工成幾個關鍵指標,並撰寫成報告。

假設我們的表格有 Timestamp 和 預估花費 這兩個欄位。

在 Google Sheets 節點後加上一個 Set 節點,我們來新增幾個 Value:

篩選出「今天」的資料

Name: today_entries

Value (Expression):

JavaScript

{{ $items.filter(item => new Date(item.json['Timestamp']) >= new Date(new Date().setHours(0, 0, 0, 0))) }}

這行運算式使用了 JavaScript 的 .filter() 方法,意思是「把所有資料 ($items) 拿來,只保留 Timestamp 欄位的時間是在今天凌晨 0 點之後的那些項目」。

計算「今日新增筆數」

Name: today_count

Value (Expression): {{ $json.today_entries.length }}

我們直接計算上面篩選出來的 today_entries 這個陣列的長度,就得到了今天的總筆數。

加總「今日預估花費」

Name: today_total_cost

Value (Expression):

JavaScript

{{ $json.today_entries.reduce((sum, item) => sum + Number(item.json['預估花費']), 0) }}

.reduce() 是 JavaScript 中更進階的陣列方法,你可以把它想像成一個「累加器」。它會遍歷 today_entries 裡的每一筆資料,把 預估花費 這個欄位的值,一筆筆累加起來,最後給出總和。Number() 是為了確保文字格式的數字能被正確計算。

撰寫最終報告

Name: report_message

Value (Expression):

JavaScript

{{
`📊 團隊任務每日戰情回報 (${new Date().toLocaleDateString('zh-TW')})

本日重點數據:

  • 新增任務筆數:${$json.today_count} 件
  • 預估總花費:$${$json.today_total_cost} 元

做得很好,團隊繼續加油!`
}}

我們再次用上了「樣板字面值」這個大絕招,把上面計算出的所有變數 (today_count, today_total_cost),完美地嵌入一段預設好的報告文字中。

第四步:發佈戰情報告 (Slack / Email)
萬事俱備,只差發送。

在 Set 節點後,加上 Slack 或 Send Email 節點。

在其 Text 或 Body 欄位中,你只需要填入一個簡單的運算式:
{{ $json.report_message }}

因為所有的計算和排版,都已經被我們萬能的 Set 節點處理完畢了。

今天過後,你不再只是一個資料的「搬運工」或「記錄員」。

你升級成了資料的「分析師」與「報告者」。
你打造的,是一個能自動從數據中提煉洞見,並主動向團隊同步進度的智慧系統!


上一篇
[Day 10] 辦公室超人工具組 (一):用 Google Sheets 打造團隊的中央資料庫
下一篇
[Day 12] 為你的戰情室接上廣播系統:串接 Slack 發送每日報告
系列文
30天之後,你就是你團隊內最會n8n的人14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言