~/blog/n8n-google-sheets-line-notify-automation-guide.md
API 串接與系統整合 · 2025 / 12 / 12

Google Sheets 新增資料自動 LINE 通知:n8n 低程式碼實作教學

Eric — 浪花科技創辦人 / AI 架構師
Eric
浪花科技創辦人 · AI 架構師
Google Sheets 新增資料自動 LINE 通知:n8n 低程式碼實作教學
目錄 table-of-contents.md

報名表單一直進來,負責人卻得整天掛在試算表上按 F5,深怕漏掉一筆新訂單或新報名——這種守望工作早該交給機器。用低程式碼工具 n8n 拉一條「Google Sheets 觸發 → LINE Notify 發送」的工作流,試算表每新增一列,n8n 就自動抓取內容推播到指定的 LINE 聊天室。全程用滑鼠拉節點,一行程式都不用寫。

整件事只有三個關鍵步驟:(1) 設定 Google Sheets 觸發節點、(2) 取得 LINE Notify 權杖、(3) 設定 LINE 節點並用表達式客製化訊息。底下我會一步步帶你做完,並補充每一步背後的原理,讓你不只是照抄,而是真的懂它為什麼會動。

為什麼該學 n8n 自動化?這不只是工程師的玩具

聽到「自動化」、「串接」就覺得門檻很高?其實像 n8n 這類低程式碼 (Low-code) / 無程式碼 (No-code) 工具,早就把門檻降到地板了。它的核心價值是:把各種網路服務(Google、LINE、Slack、WordPress…)當成一塊塊樂高,用節點串起來,讓資料自動流動。

幾個立刻能用的情境:

  • 電商賣家:網站後台的訂單進到 Google Sheets 後,自動發 LINE 通知給出貨小幫手。
  • 行銷人員:線上活動報名表單(例如 Google Forms)一有新提交,立刻通知活動負責人。
  • 專案經理:團隊成員在共用 Google Sheets 更新任務狀態,自動發通知到專案群組。

這些以往需要手動處理、或花錢請工程師開發的功能,現在動動滑鼠就能實現。重點不只是省時間,而是把人從重複瑣事中解放,專注在更有價值的事情上。

n8n 的工作流是怎麼運作的?先搞懂這三個概念

動手前先建立心智模型,後面會順很多。一個 n8n 工作流 (Workflow) 由「節點 (Node)」串成,資料像水流一樣從左往右經過每個節點:

  • 觸發節點 (Trigger):工作流的起點,決定「在什麼時機啟動」。本文用的是 Google Sheets 的「新增列」事件。
  • 動作節點 (Action):觸發後要「做什麼」,例如發送 LINE 通知、呼叫 API、寫入另一張表。
  • 資料傳遞:前一個節點的輸出(Output)會變成下一個節點的輸入(Input)。所以 LINE 節點才能讀到 Google Sheets 抓回來的那筆資料。

記住「觸發 → 動作、上一節點輸出 = 下一節點輸入」這條主線,整個自動化的邏輯就清楚了。

實戰開始:打造你的第一個自動化工作流

觀念講完,開始實作。整個流程分三步:

  1. 設定觸發器:讓 n8n 監控 Google Sheets 的變化。
  2. 取得權杖:拿到 LINE Notify 的「通關密語」。
  3. 設定執行動作:設定 LINE 通知並客製化訊息內容。

第一步:設定 Google Sheets 觸發節點 (Trigger)

首先你需要一個 n8n 實例。你可以使用 n8n 的雲端版本,或像我們一樣自己架設(這又是另一個能聊很久的話題)。登入 n8n 後,點擊「Add workflow」建立新工作流。工作流的起點,就是一個觸發器。

  1. 點擊畫面上的「+」按鈕,搜尋 Google Sheets
  2. 看到 Google Sheets 節點後點擊它。第一次使用需要授權 n8n 存取你的 Google 帳號。
  3. 在「Credential for Google Sheets API」點擊「Create New」。n8n 會引導你完成 OAuth2 認證流程,基本上就是登入 Google 帳號並同意授權。這一步是確保 n8n 有權限讀取你的試算表。
  4. 授權完成後回到節點設定。在「Trigger On」欄位選擇 On Row Added,代表「當有新的橫列被新增時」就觸發工作流。
  5. 在「Sheet ID」欄位填入你的 Google Sheets ID。打開試算表,網址會長得像:https://docs.google.com/spreadsheets/d/THIS_IS_YOUR_SHEET_ID/edit#gid=0,把那串 ID 複製貼上即可。
  6. 接著指定「Sheet Name」,也就是工作表名稱,例如「工作表1」。
  7. 最後點擊「Test step」,n8n 會抓取試算表裡最新的一筆資料當範例。成功的話,資料會出現在右邊的 Output 區塊。

看到資料就代表觸發器設定成功了,是不是比想像中簡單?

為什麼 Test step 要先抓一筆範例資料?

這一步常被當成「只是確認連線成功」,其實它還有個更重要的作用:把真實的欄位結構先抓回來,當作後面節點的設計藍本。當 Output 出現了你試算表的欄位(例如「客戶姓名」「訂單品項」),下一個 LINE 節點才能在 Input 區塊看到這些欄位、讓你直接點選引用。沒有這份範例資料,你在寫訊息表達式時就只能盲打欄位名稱,很容易拼錯。

「新增列觸發」是即時的嗎?理解輪詢的概念

這裡補充一個讓你日後少踩坑的通用觀念:像 Google Sheets 這種「新增列就觸發」的機制,背後通常是輪詢 (Polling)——n8n 會每隔一段固定時間去檢查試算表有沒有新資料,而不是試算表主動即時通知。所以從新增資料到收到 LINE,可能會有短暫的延遲,這是正常現象,不是設定壞了。如果你的場景需要「秒級即時」,那通常要改用來源系統主動推送的 Webhook 機制(這就是另一種設計了);但對訂單、報名這類通知情境,輪詢帶來的延遲幾乎無感,完全夠用。

第二步:取得 LINE Notify 的存取權杖 (Access Token)

接下來要讓 n8n 能跟 LINE「說話」,這需要一把鑰匙,也就是 LINE Notify 的權杖 (Token)。

  1. 前往 LINE Notify 官網並登入你的 LINE 帳號。
  2. 滑到最下方,點擊「發行權杖」。
  3. 給權杖取一個好記的名字,例如「n8n-訂單通知」。
  4. 選擇要接收通知的聊天室。可以選「透過1對1聊天接收LINE Notify的通知」,或任何一個你所在的群組。工程師小提醒:如果要傳到群組,記得先把「LINE Notify」官方帳號邀請進那個群組裡。
  5. 點擊「發行」,你會得到一長串亂碼,這就是你的權杖。務必、務必、務必立刻把它複製下來!因為這個權杖只會顯示這一次,關掉視窗就找不回來了。

拿到這串神秘代碼,我們就取得了通往 LINE 的門票。

權杖等於一把鑰匙:請當成密碼來保管

為什麼權杖只顯示一次、又要你立刻複製?因為這串字串本身就代表「以你的身分發送通知」的權限——任何人拿到它,都能往你指定的聊天室發訊息。所以請把它當成密碼等級的機密:

  • 不要寫進公開的程式碼、文件或截圖裡。
  • 在 n8n 裡,權杖是存在「Credential(憑證)」中而非寫死在節點,這樣方便集中管理、日後也能整批更換。
  • 萬一外洩或不再使用,回到 LINE Notify 官網把該權杖「解除連動」即可立即失效,再重新發行一個新的。

第三步:設定 LINE Notify 節點並客製化訊息

回到 n8n 工作流畫面,把 Google Sheets 和 LINE 串起來。

  1. 點擊 Google Sheets 節點右邊的「+」號,新增一個節點。
  2. 搜尋 LINE Notify 並點擊它。
  3. 第一次使用一樣要在「Credential for LINE Notify API」建立新憑證。點擊「Create New」,跳出視窗後填入一個你自訂的名稱,把剛剛複製的 LINE Notify 權杖貼到「Access Token」欄位,儲存即可。
  4. 接下來是最有趣的部分:設定「Message」欄位。我們要讓訊息內容是動態的,而不是寫死的文字。
  5. 點擊「Message」欄位旁邊的「Add Expression」按鈕,會看到一個編輯器。
  6. 在這裡可以自由組合文字與來自上一個節點(Google Sheets)的資料。左邊「INPUT」區塊會顯示上一步抓到的範例資料,你可以一層層點開,找到要的欄位直接點擊,n8n 就會自動產生對應語法。

假設你的 Google Sheets 有「客戶姓名」「聯絡電話」「訂單品項」這幾個欄位,可以這樣寫:

🔔 新訂單通知!
客戶姓名:{{ $json.客戶姓名 }}
聯絡電話:{{ $json.聯絡電話 }}
訂單品項:{{ $json.訂單品項 }}
請盡速處理!

這裡的 {{ ... }} 語法叫做表達式 (Expression),它會被 n8n 自動替換成 Google Sheets 對應欄位的實際內容。這就是自動化的精髓所在。

表達式到底在做什麼?

很多人卡在「為什麼有時候打了欄位名卻抓不到值」。理解一個原則就好:表達式裡的 $json 代表的是「流進這個節點的那一筆資料」,也就是 Google Sheets 觸發節點輸出的內容。$json.客戶姓名 的意思就是「取這筆資料裡名為『客戶姓名』的欄位值」。

所以兩件事要對齊:

  • 欄位名稱要完全一致:包含大小寫、空格、全形半形。建議直接從左側 INPUT 點選欄位,讓 n8n 自動產生語法,避免手打拼錯。
  • 表達式模式要開啟:欄位一定要切到「Expression」狀態(而不是純文字 Fixed 模式),{{ }} 才會被當成程式碼解析;否則它只會原樣輸出大括號文字。

設定完成後點擊「Test step」。神奇的事發生了——你的 LINE 馬上跳出剛剛設定好的通知訊息,而且裡面的內容就是你試算表裡的資料。

啟用工作流:讓它 24 小時為你工作

測試成功後,別忘了點擊畫面右上角的「Active」開關,把它從「Inactive」切到「Active」。這樣一來,工作流就會在背景持續運行,只要 Google Sheets 一有新資料,它會在很短時間內自動執行,把通知發到你的 LINE。恭喜你,已經成功打造了一個不休息的自動化小幫手。

關鍵差異:在編輯器裡按「Test step」是手動觸發、用來除錯;把工作流切成「Active」之後,才是真正交給 n8n 在背景自動監控與執行。沒切 Active,工作流不會自己跑。

常見卡關與排錯:上線前先看這一段

實作時最容易卡住的幾個點,先講清楚,可以幫你省下大把除錯時間。

收不到 LINE 通知,先檢查什麼?

  • 權杖是否貼對:複製時容易少一字或多一個空白。重貼一次最快。
  • 群組是否邀請了 LINE Notify:要發到群組,「LINE Notify」官方帳號必須已在該群組內,否則發不出去。
  • 工作流是否已 Active:只在編輯器按過 Test step、卻忘了切 Active,是最常見的「測試成功但實際沒反應」原因。

表達式抓不到資料、或顯示成空白?

  • 確認該欄位已切到 Expression 模式。
  • 確認欄位名稱與試算表標題列完全一致(含空格與全半形)。
  • 先重新對觸發節點按一次 Test step,確保 INPUT 有最新的範例資料可供引用。

會不會重複發、或漏發通知?

這是把通知自動化後值得放在心上的通用觀念:因為新增列觸發是定時去檢查試算表,所以你要避免「同一筆資料被當成兩筆」或「一次貼上很多列」造成的非預期行為。實務上可以從來源端著手——例如讓寫入試算表的流程一次只新增一列、或在資料中保留一個可辨識的唯一識別欄位,方便日後對帳。先用少量資料測穩,再放大量真實資料進來,是上線前最穩妥的做法。

工程師的囉嗦時間:還能玩什麼?

這個「Google Sheets → LINE Notify」只是最基礎的應用。n8n 的強大之處在於你可以像堆樂高一樣,組合出更複雜的工作流。例如:

  • 加入判斷邏輯:在中間加上一個「IF」節點。例如只有當訂單金額大於 1000 元時,才發送 LINE 通知。
  • 串接更多服務:收到新訂單後,除了發 LINE 通知,還可以同時呼叫會計系統的 API、在 Trello 新增一張卡片、甚至發一封客製化的感謝 Email 給客戶。
  • 資料處理:在發送通知前,用「Set」或「Code」節點對資料加工。例如自動計算含稅總價,或將客戶地址格式化。

低程式碼工具的出現,不是要取代工程師,而是把我們從重複性工作中解放,去解決更複雜、更有趣的問題;同時也賦予非技術背景的夥伴親手打造解決自身痛點工具的能力。這是一種能力的賦權,也是未來工作協作的大趨勢。

希望今天的教學對你有幫助!自動化的世界廣闊無邊,而你已經成功踏出第一步。如果你在操作上遇到任何問題,或想討論更複雜的企業級自動化流程設計,例如串接 CRM、ERP 系統,浪花科技的團隊隨時準備好為你提供專業的顧問服務。

別再讓人肉作業流程拖慢你的腳步了,立即與我們聯繫,讓我們用技術為你的企業打造一座高效的自動化引擎!

延伸閱讀

// FAQ

常見問題

如何用 n8n 讓 Google Sheets 新增資料時自動發 LINE 通知?
整個流程只有三個關鍵步驟:第一步設定 Google Sheets 觸發節點,將「Trigger On」設為 On Row Added 並填入試算表 ID 與工作表名稱;第二步到 LINE Notify 官網發行並取得權杖;第三步新增 LINE Notify 節點、貼上權杖建立憑證,並用表達式客製化訊息內容。全程用滑鼠拉節點,不必寫程式。
去哪裡取得 Google Sheets 的 Sheet ID?
打開試算表後,網址會長得像 https://docs.google.com/spreadsheets/d/THIS_IS_YOUR_SHEET_ID/edit#gid=0,其中 /d/ 與 /edit 之間的那一串字元就是 Sheet ID,複製貼到 n8n 節點的「Sheet ID」欄位即可。
n8n 偵測 Google Sheets 新增列是即時的嗎?
通常不是即時的。像 Google Sheets 這種「新增列就觸發」的機制背後多採用輪詢(Polling),n8n 會每隔一段固定時間去檢查有沒有新資料,而非試算表主動通知,因此從新增資料到收到通知會有短暫延遲屬於正常現象。若需要秒級即時,通常要改用來源系統主動推送的 Webhook 機制;但對訂單、報名這類通知情境,輪詢的延遲幾乎無感、完全夠用。
LINE Notify 權杖該如何保管?外洩了怎麼辦?
權杖等於一把以你身分發送通知的鑰匙,任何人拿到都能往你指定的聊天室發訊息,必須當成密碼等級的機密:不要寫進公開的程式碼、文件或截圖,在 n8n 中應存放於「Credential(憑證)」而非寫死在節點。權杖只會顯示一次,務必立刻複製;萬一外洩或不再使用,回到 LINE Notify 官網把該權杖「解除連動」即可立即失效,再重新發行一個新的。
n8n 訊息表達式裡的 $json 是什麼意思?為什麼欄位抓不到值?
表達式裡的 $json 代表「流進這個節點的那一筆資料」,例如 $json.客戶姓名 就是取這筆資料中名為「客戶姓名」的欄位值。抓不到值常見有兩個原因:一是欄位名稱沒有完全一致(包含大小寫、空格、全形半形),建議直接從左側 INPUT 點選欄位讓 n8n 自動產生語法;二是欄位沒切到 Expression 模式,必須開啟表達式模式 {{ }} 才會被當成程式碼解析,否則只會原樣輸出大括號文字。
~/roamer-tech/newsletter // FREE
// newsletter

訂閱免費電子報

把 AI 自動化、企業系統設計與 WordPress / Laravel 開發的真實案例和可直接照做的技巧,整理成電子報寄給你。只寄精選內容、不灌垃圾信,一鍵就能退訂。

$
// final.exec()

準備好讓你的網站開始為你工作了嗎?