iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
AI & Data

為你自己學 n8n系列 第 11

[為你自己學 n8n] 第 11 天,試算表變聰明了:庫存不足主動通知!

  • 分享至 

  • xImage
  •  

Yes

影片連結:https://www.youtube.com/watch?v=1A2V6yB8938
YouTube 頻道:https://www.youtube.com/c/kaochenlong

在上一集我們介紹了怎麼樣使用 Google 的 Gmail 去收發信件,接下來這一集,我想再繼續跟大家介紹用 Google 服務的 Google Sheets,來幫大家做庫存管理。

先不管說為什麼在 2025 年還在使用 Excel 做庫存管理這件事情,總之就是我們有些客戶還在使用像 Excel 之類的東西做檔案管理,這也沒什麼問題就是了...

Google API 憑證重新設定 - 解決 Client Secret 看不到的問題

如果你還記得我們在前面幾集的內容,在串接 Google 的過程中,我們會拿到 Client ID 跟 Client Secret,你可以把它存在記事本裡面。不然的話還得上 Google Cloud Console 找一下。

只是,就算再上去找,你也看不到原本的 Client Secret 了,這是刻意的設計。這個政策有調整過,以前還可以看得到,後來改成就是你只能看一次。那怎麼辦?如果當時你沒有把它存下來的話,沒關係,現在你還可以再做一個補救的動作。也不能說補救了,就是再做一組新的啦!

拿到新的 Client ID 跟 Client Secret 之後,就可把舊的刪掉,然後用新的來做串接,記得回到 n8n 更新之前的憑證。

建立 Google Sheets 庫存檔案

我們來建立一個庫存管理的 Google Sheets。首先,我們去 Google Drive 新增一個試算表。

設定試算表結構

我幫這個檔案取個名字,叫做「賺很大商店v5(庫存)」。

接下來設定表格的欄位結構:

  • 第一欄:產品編號
  • 第二欄:品項
  • 第三欄:庫存量

然後填入一些假資料,大概像這樣:

產品編號 品項 庫存量
B001 為你自己學 Git 10
B002 為你自己學 Python 20
B003 為你自己學 Ruby on Rails 10
B004 為你自己學 n8n 100

這裡有個地方可以再調整一下,在下面的工作表標籤,你可以把「工作表1」改成有意義的名字,例如「庫存量」。不改的話,待會你會看到「工作表1」,看起來有點笨。

n8n 與 Google Sheets 整合設定

現在回到 n8n,來試試看怎麼做一個新的工作流程。我們來做一個庫存管理的工作流程,我把它命名為「賺很大商店」。

新增 Google Sheets 節點

接下來要讀寫 Google 的話該怎麼做?點下去搜尋關鍵字 sheet,你會看到 Google Sheets 在這裡,然後選擇「Get rows in sheet」來讀取資料。

設定 Google Sheets 憑證

這時候又出現熟悉的畫面了!你可能會好奇說,我們前面不是設定過 Google 的服務了嗎?為什麼要再設定一次?

雖然我們拿到的是同樣的 Client ID 跟 Client Secret,但是每一個服務都得要設定一次。設定了 Gmail,如果你要用行事曆或 Google Drive,都還是得再設定一次,這也是為什麼當時在設定 Google 服務的時候,我會建議大家在 Google Cloud Console 一口氣把所有的服務都先開好,這樣就可以不用再回到這個頁面來了。

選擇要讀取的檔案

設定好憑證後,在「Document」這個地方有幾種讀法:有 From List、URL,或 ID。我們先用 From List,這應該是最簡單的。

選好之後,這個地方會出現下拉選單,拉開之後你會看到剛剛建立的「賺很大商店v5(庫存)」的檔案。底下的「Sheet」也可以有很多選項,有 ID、Name、URL 等等。同樣我們也選擇 From List,然後下拉選單點開,你會看到「庫存量」(記得我們剛剛有把預設的「工作表1」換名字了嗎?)。

這樣就可以讀到東西了。我們先試試看,來執行一下,應該會讀到資料。

測試讀取結果

你看,讀進來了!你會發現產品編號、品項跟庫存量就是你剛才在 Google Sheets 第一排設定的標題,然後從第二排開始就是內容。相當簡單!

使用 Filter 篩選機制

拿到資料後,接下來我想要做一件事情:我想要做「庫存量不足 5 本」的話就要發個通知說庫存量不足了。這怎麼做?我們當時在學寶可夢練習的時候一直跟大家講,那個寶可夢的操作是最基本的東西。所以如果我手上有四本書,我想去篩選、挑選出在這裡面有哪些的庫存量不足 5 的,可以用 If 也可以用 Filter,這裡用 Filter 可能比較簡單一點。選擇 Filter 節點。

要 Filter 哪一個?我們應該是選「庫存量」。然後在這個地方選擇數字類型,然後來一個 less than,設定成 5,這應該不難。

Always Output Data?

接下來我想做通知,也許你會想說要去算那個數量,去算它的 count,然後如果數量超過多少的話就去做通知。你可能想說要再加一個節點去算總數量。是也可以,但是我們這裡可以用另一招...

n8n 裡面有個特別的設計,如果前一個節點沒有任何輸出的話,下一個節點就不會動。剛好在我們這個庫存管理的案例中,因為我們就是希望「只有在庫存不足的時候才發通知」。如果庫存都正常的話,就不需要執行後續的通知動作。

準備寄信通知

現在我們有了篩選出來的庫存不足商品,要怎麼把多筆資料組合在一起呢?我們用之前學過的節點:Summarize。用它把品項透過 <br> 串接起來,這不難。準備寄信了!下一個就是寄信了。來個 Gmail,這個我們之前做過,趁這個機會複習一下。

選擇 Send Message,然後設定:

  • 收件者hello.n8n@gmail.com
  • 主旨庫存量不足通知
  • 郵件格式:選擇 HTML

在郵件內容這裡,我們可以把 Summarize 的結果拉過來,但如果你想再補充一些東西的話,可以這樣寫:

以下商品庫存量不足:<br><br>
{{ $json['concatenated_品項'] }}

這樣就可以在郵件中顯示庫存不足的商品清單了。

小結

這樣我們就完成了一個庫存管理自動化流程:

  1. 讀取 Google Sheets 庫存資料
  2. 篩選出庫存不足的商品
  3. 整合多筆資料成為通知內容
  4. 發送 email 通知

這個流程的重點在於:

  • 善用 Google Sheets 作為資料來源:雖然不是最新潮的解決方案,但對有些人或公司來說已經夠用
  • 理解 n8n 的條件執行機制:只有在真正需要的時候才執行通知

當然,在實際應用中你可能還需要考慮:

  • 定期執行:可以用 Cron 觸發器定期檢查庫存
  • 多重通知管道:除了 email,也可以發送到 Line 或其他通訊軟體

基本的概念和操作就是這樣。記住,n8n 厲害的地方就在於可以簡單地把這些服務串接起來,然後組合出出符合自己需求的自動化流程。

是說,目前這個流程還有點問題,就是每次執行下去就會寄一次信,這可能會造成一些困擾。下一集我們會來解決這個問題,讓它變得更完善。


上一篇
[為你自己學 n8n] 第 10 天,Gmail 自動化:收信、回信、不漏信!
下一篇
[為你自己學 n8n] 第 12 天,試算表變聰明了:學會自己更新狀態!
系列文
為你自己學 n8n12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言