告別手動複製地獄!n8n 串接 Google Sheets 終極實戰,打造你的 WordPress 自動化數據儀表板
哈囉,我是浪花科技的資深工程師 Eric。身為一個每天跟程式碼和伺服器打交道的工程師,我最痛恨的就是「重複性」且「無聊」的工作。其中一項讓我看到就想翻白眼的,就是手動把 WordPress 網站上的資料,像是聯絡表單的提交紀錄、WooCommerce 的訂單,一筆一筆複製貼上到 Google Sheets 去做報表。這不只是浪費時間,還很容易出錯,根本是工程師的天敵。
如果你也跟我一樣,受夠了這種複製貼上的地獄循環,那這篇文章就是你的救贖。今天,我要帶你認識一個自動化神器 n8n,並教你如何將它與 Google Sheets 完美結合,讓你的 WordPress 數據自動流入指定的試算表,打造一個即時更新的數據儀表板。別再當個人肉 API 了,讓我們用更聰明、更優雅的方式來處理數據吧!
為什麼是 n8n + Google Sheets?這對組合到底有多神?
在我們動手實作之前,身為一個囉嗦的工程師,我得先跟你解釋清楚我們為什麼要選擇這套工具,而不是其他的解決方案(對,我就是在說 Zapier)。理解工具背後的「為什麼」,才能讓你在未來舉一反三,解決更複雜的問題。
n8n:開源、自架、功能強大的自動化引擎
你可能聽過 Zapier 或 Make,它們都是很棒的自動化工具。但 n8n 有幾個致命的吸引力,讓我們這種喜歡掌握一切的工程師愛不釋手:
- 開源且可自架 (Self-hosted):這意味著你可以將 n8n 安裝在自己的伺服器上,數據完全由你掌控,不用擔心隱私外洩。對於處理敏感客戶資料的企業來說,這點至關重要。更棒的是,自架的成本遠低於 Zapier 的高昂月費,尤其當你的流程數量和執行次數增加時,省下的錢非常可觀。
- 視覺化流程編輯器:n8n 的核心是一個基於節點 (Node) 的視覺化編輯器。你只需要用拖拉的方式,就能將觸發器 (Trigger) 和不同的應用程式 (如 WordPress, Google Sheets, Slack, LINE) 串連起來,像在畫流程圖一樣,直觀又簡單。
- 高度彈性與擴充性:除了內建數百個應用程式節點,n8n 還允許你寫自訂的 JavaScript 程式碼,甚至自己開發節點。這代表著沒有什麼自動化流程是它辦不到的,只有你想不到的。
Google Sheets:不只是試算表,更是你的輕量級資料庫
別小看 Google Sheets,它早就不是那個只能做簡單表格的工具了。在自動化流程中,它扮演著一個極其重要的角色:
- 萬用的數據中繼站:你可以將來自四面八方(WordPress, CRM, Facebook Ads)的數據全部匯總到一個 Google Sheet 中,方便統一管理和分析。
- 強大的協作與視覺化能力:團隊成員可以同時在上面協作,利用內建的圖表、樞紐分析表等功能,快速將原始數據轉化為有意義的視覺化儀表板 (Dashboard)。
- 免費且易於使用的 API:Google Sheets 提供了非常完整的 API,讓 n8n 這類工具可以輕易地對它進行讀取、寫入、更新等操作,這是我們能實現自動化的關鍵。
當你把 n8n 的強大自動化能力,和 Google Sheets 的數據處理彈性結合在一起時,你就等於擁有了一個 24 小時不休息的虛擬助理,能自動幫你完成所有數據整理的雜務。
實戰教學:將 Contact Form 7 表單資料自動寫入 Google Sheets
講了這麼多,該來點真格的了。接下來,我會一步步帶你完成一個最常見也最實用的範例:當使用者在 WordPress 網站上提交 Contact Form 7 表單後,自動將他的姓名、Email 和訊息內容新增到指定的 Google Sheets 中。
第一步:準備工作 – 設定 Google Sheets API 權限
這是整個流程中最容易卡關的地方,但別怕,跟著我走就對了。我們要做的,是建立一個「服務帳號 (Service Account)」,把它想像成一個給 n8n 使用的機器人帳號,並授權這個機器人可以編輯你的 Google Sheet。
- 前往 Google Cloud Console,建立一個新專案(或使用現有專案)。
- 在左側選單找到「API 和服務」>「程式庫」,搜尋「Google Sheets API」並將它「啟用」。
- 接著,到「API 和服務」>「憑證」,點擊「建立憑證」,選擇「服務帳戶」。
- 為你的服務帳戶取個名字(例如:n8n-sheets-updater),然後點擊「建立並繼續」。在「授予這個服務帳戶對專案的存取權」步驟,給予「編輯者」的角色,然後完成建立。
- 建立完成後,你會在憑證頁面看到剛剛建立的服務帳戶。點進去,選擇「金鑰」分頁,點擊「新增金鑰」>「建立新的金鑰」,選擇 JSON 格式並下載。這個 JSON 檔案就是你的金鑰,請務必妥善保管,不要外洩!
- 最後,打開你的目標 Google Sheet,點擊右上角的「共用」。將剛剛下載的 JSON 檔案中,`client_email` 欄位旁邊的那一長串 Email 地址複製起來,貼到共用設定裡,並給予「編輯者」權限。
搞定!我知道這有點繁瑣,但這是確保連線安全的必要之惡。這個憑證設定好後,未來所有跟 Google 服務的串接都會用到。
第二步:在 n8n 建立 Webhook 觸發器
現在,讓我們打開 n8n 的操作介面,建立一個新的工作流程 (Workflow)。
- 點擊「+」號,新增第一個節點。在搜尋框中輸入「Webhook」,並選擇它。
- Webhook 節點會自動產生一個獨一無二的 URL。這個 URL 就是 n8n 用來接收外部數據的入口。點擊「Copy」按鈕複製它,我們先備用。
第三步:設定 WordPress,將表單資料送出
我們需要讓 WordPress 在有人提交表單時,主動把資料「推送」到剛剛複製的 n8n Webhook URL。最乾淨俐落的方法,就是透過 `functions.php` 加入一小段程式碼。
請在你的子佈景主題 (Child Theme) 的 `functions.php` 檔案中,加入以下程式碼:
add_action('wpcf7_mail_sent', 'send_cf7_data_to_n8n_webhook');
function send_cf7_data_to_n8n_webhook($contact_form) {
// 警告!請務必換成你在 n8n 複製的 Webhook URL
$webhook_url = 'https://your-n8n-instance.com/webhook/your-webhook-path';
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$posted_data = $submission->get_posted_data();
// 我們可以整理一下要發送的資料結構
$body = [];
foreach ($posted_data as $key => $value) {
// 移除 WPCF7 添加的底線開頭的系統欄位
if (strpos($key, '_wpcf7') === false) {
$body[$key] = $value;
}
}
$args = [
'body' => json_encode($body),
'headers' => [
'Content-Type' => 'application/json',
],
'timeout' => 15, // 設定超時時間,避免伺服器等待過久
'blocking' => false, // 使用非阻塞式請求,送出後不等待 n8n 回應,避免影響前端使用者體驗
];
// 使用 WordPress 內建的 HTTP API 來發送請求,安全又可靠
wp_remote_post($webhook_url, $args);
}
}
這段程式碼的作用是:監聽 Contact Form 7 成功寄出信件的那個時間點 (`wpcf7_mail_sent`),然後把表單的所有資料 (`$posted_data`) 透過 `wp_remote_post` 函式,以非同步的方式傳送到你的 n8n Webhook。非同步 (`’blocking’ => false`) 這點很重要,它能確保即便 n8n 端暫時沒有回應,也不會拖慢使用者在網站上的操作體驗。
第四步:串接 Google Sheets 節點並對應欄位
回到 n8n 介面。先點擊 Webhook 節點右上角的「Listen for Test Event」,讓 n8n 進入等待接收測試資料的狀態。
現在,去你的 WordPress 網站,實際提交一次聯絡表單。成功的話,你會看到 n8n 的 Webhook 節點顯示收到了資料,並且能看到表單送過來的 JSON 結構。
接下來,點擊 Webhook 節點下方的「+」號,新增「Google Sheets」節點。
- 在「Credentials」處,選擇「Create New」。
- 憑證類型選擇「Service Account」。
- 將你第一步下載的那個 JSON 檔案的「全部內容」複製貼上到「Service Account JSON」欄位中,然後儲存。
- 在 Google Sheets 節點的設定中:
- **Resource**: 選擇 `Sheet`。
- **Operation**: 選擇 `Append` (附加到最後一行)。
- **Sheet ID**: 填入你的 Google Sheet ID。你可以從 Google Sheet 的網址中找到它,例如 `https://docs.google.com/spreadsheets/d/THIS_IS_THE_ID/edit`。
- **Range**: 填寫你的工作表名稱,例如 `Sheet1`。
- 最關鍵的一步來了!在下方的「Columns」區塊,點擊「Add Column」。你會看到 Key 和 Value 兩個欄位。
- **Key**: 輸入你在 Google Sheet 中設定的欄位標題,例如 `姓名`。
- **Value**: 點擊旁邊的小圖示,從左邊的「Input Data」中,拖曳 Webhook 收到的對應欄位過來。它的格式會像是 `{{$json[“body”][“your-name”]}}`。`your-name` 就是你在 Contact Form 7 裡設定的欄位名稱。
- 重複上一步,把你所有需要的欄位(例如:姓名、Email、訊息)都對應好。
第五步:啟動你的自動化流程!
所有設定都完成後,點擊「Test step」按鈕,n8n 會真的執行一次寫入操作。去你的 Google Sheet 看看,是不是奇蹟似地出現了一筆新的資料?
確認一切正常後,別忘了點擊右上角的「Active」開關,將這個 workflow 正式啟用。從現在開始,每一筆新的表單提交,都會在幾秒鐘內自動同步到你的 Google Sheets 了!恭喜你,成功告別了手動複製貼上的地獄!
工程師的小囉嗦:不只是同步,更是自動化的起點
我們今天完成的,只是 n8n 自動化世界的冰山一角。這個「WordPress -> n8n -> Google Sheets」的流程,可以被無限延伸。
- 你可以在 Google Sheets 節點後面,再串接一個 Slack 或 LINE 節點,每當有新表單進來,就自動發送通知到指定的頻道。
- 你可以串接 OpenAI 節點,讓 AI 自動分析訊息內容,判斷客戶意圖,然後再決定分派給哪個業務。
- 你可以反向操作,在 Google Sheets 新增一筆資料,然後透過 n8n 觸發 WordPress 建立一篇新的文章草稿。
自動化的核心思維,就是把所有固定、重複的流程,都交給機器去處理,把我們寶貴的時間和精力,留給真正需要創造力和策略思考的地方。希望今天的教學能為你打開一扇新的大門,開始思考如何讓你的工作流程變得更聰明、更有效率。
總結
今天我們從觀念到實作,完整地走了一遍如何利用 n8n 與 Google Sheets,將 WordPress 的表單數據自動化同步。你學會了設定 Google API 憑證這個大魔王關卡,也學會了如何用 Webhook 接收資料,並在 n8n 中串接不同的服務。這個技能不僅能應用在聯絡表單,更能擴展到 WooCommerce 訂單、使用者註冊、文章發布等各種場景。
別再讓重複的工作消磨你的熱情了。動手試試看,你會發現自動化的世界遠比你想像的更加寬廣有趣。
延伸閱讀
- 告別手動複製貼上!n8n 自動化流程設計終極教學,讓你的 WordPress 學會自己工作!
- 用 n8n 為 WordPress 注入自動化靈魂:你該知道的五大應用場景
- API 亂糟糟,專案火葬場?資深工程師的 WordPress REST API 設計聖經 (REST + JSON)
如果你在設定過程中遇到任何問題,或是想探討更複雜、更客製化的 WordPress 自動化流程,例如串接 ERP 系統、打造專屬的 CRM 等,都歡迎與浪花科技的團隊聯繫。我們很樂意用我們的技術專業,協助你的事業更上一層樓!
常見問題 (FAQ)
Q1: n8n 和 Zapier 有什麼不同?為什麼要選 n8n?
A1: 最主要的差異在於 n8n 是開源軟體,可以「自架 (Self-hosted)」。這代表著:1. 數據隱私性更高,所有資料都在你自己的伺服器上處理。 2. 成本更低,自架版本沒有執行次數的限制,相較於 Zapier 昂貴的月費方案,長期下來能節省大量成本。 3. 彈性更大,n8n 允許你撰寫自訂程式碼甚至開發自己的節點,幾乎沒有功能上的限制。對於重視數據主權、預算有限或是有高度客製化需求的開發者與企業,n8n 是更具吸引力的選擇。
Q2: 我需要有很強的程式背景才能使用 n8n 嗎?
A2: 完全不需要!n8n 的核心就是視覺化的節點編輯器,大部分常見的串接(像本篇教學的內容)都只需要透過滑鼠拖拉、點擊設定即可完成,完全不用寫一行程式碼。當然,如果你懂一點程式(特別是 JavaScript),n8n 也能讓你大展身手,透過 Code 節點實現更複雜的邏輯判斷與資料處理,但對於 80% 的自動化場景來說,不懂程式也絕對能輕鬆上手。
Q3: Google Sheets API 憑證設定好複雜,有沒有簡單一點的方法?
A3: 這是許多人初次接觸 Google API 時的共同痛點。使用「服務帳戶 (Service Account)」搭配 JSON 金鑰是最安全、也最推薦給伺服器對伺服器串接使用的方法,雖然步驟多,但一勞永逸。n8n 也支援另一種 OAuth2 的驗證方式,它會跳出一個視窗讓你登入 Google 帳號授權,操作上比較直覺。但這種方式比較適合個人使用,對於需要在背景持續運行的企業級自動化流程,穩定且權限獨立的服務帳戶依然是我們的首選。
Q4: 除了新增資料 (Append),n8n 還可以讀取或更新 Google Sheets 的資料嗎?
A4: 當然可以!n8n 的 Google Sheets 節點功能非常完整。除了 `Append`(新增),你還可以選擇 `Get`(讀取特定範圍的資料)、`Update`(更新符合條件的儲存格或整列資料)、`Delete`(刪除資料)以及 `Clear`(清空整個工作表)等操作。這代表你可以設計更複雜的雙向同步流程,例如:從 WordPress 讀取訂單,在 Google Sheets 查找對應的客戶資料並更新他的消費金額,實現一個簡易的 CRM 系統。






