n8n 第一個自動化工作流:表單 → Gmail → Google Sheet(附模板)
手把手教你做 n8n 第一個自動化工作流。有人填表單 → 自動寄 email 通知你 → 同時把資料存到 Google Sheet。附模板 JSON 直接下載匯入。
n8n 第一個自動化工作流:表單 → Gmail → Google Sheet(附模板)
n8n 裝好了、介面也認識了,現在來動手做第一個自動化。這個 workflow 做的事情很簡單:
有人填表單 → 自動寄 email 通知你 → 同時把資料存到 Google Sheet
不囉唆,直接看怎麼做。
這個 Workflow 做什麼?
想像一下這個場景:你有一個聯絡表單(在你的網站上或用 Google Form),有人填了之後:
- 你馬上收到一封 email — 告訴你誰填了表單、填了什麼
- 資料自動存到 Google Sheet — 不用手動複製貼上
以前你可能用 Zapier 做這件事,每個月要付錢。用 n8n 自架,同樣的事情不用錢。
流程圖
有人填表單(送出 HTTP 請求)
│
▼
Webhook 節點(接收資料)
│
├── 寄 Gmail 通知你
│
└── 存到 Google Sheet
事前準備
| 項目 | 說明 |
|---|---|
| n8n | 已經裝好並能打開(還沒裝?看 Docker 安裝教學 或 一鍵部署) |
| Gmail 帳號 | 用來寄通知 email |
| Google 帳號 | 用來存 Google Sheet |
不確定介面上的按鈕在哪裡?先看 n8n 介面完全導覽。
Step 1:建立新的 Workflow
- 登入 n8n
- 在首頁按 「Add Workflow」
- 新的 workflow 會打開,畫布上還是空的
- 點上方的 workflow 名稱,改成「表單通知 + 記錄」
Step 2:加入 Webhook 觸發器
Webhook 是一個「入口」— 當外面有人送 HTTP 請求到這個網址,workflow 就會被觸發。
- 按畫布上的 + 按鈕,打開節點面板
- 搜尋 「Webhook」,點進去
- 設定參數:
| 參數 | 值 | 說明 |
|---|---|---|
| HTTP Method | POST | 表單通常用 POST 送資料 |
| Path | contact-form | Webhook 的路徑,可以自己取 |
- 按 「Listen for test event」(監聽測試事件)
測試 Webhook
現在 n8n 會給你一個測試用的 URL,長這樣:
https://你的n8n網址/webhook-test/contact-form
打開終端機(或 Postman),送一筆測試資料:
curl -X POST https://你的n8n網址/webhook-test/contact-form \
-H "Content-Type: application/json" \
-d '{
"name": "王小明",
"email": "[email protected]",
"message": "我想了解你們的服務"
}'
如果 n8n 那邊顯示收到資料了,就表示 Webhook 設定成功。
Step 3:設定 Gmail 憑證
在加 Gmail 節點之前,要先設定 Google 的登入憑證(Credential)。
3.1 建立 Google OAuth 2.0 憑證
- 到 Google Cloud Console
- 建立一個新專案(或用現有的)
- 啟用 Gmail API 和 Google Sheets API
- 到「Credentials」→「Create Credentials」→「OAuth 2.0 Client ID」
- Application type 選「Web application」
- 在「Authorized redirect URIs」加入你的 n8n OAuth 回調網址:
https://你的n8n網址/rest/oauth2-credential/callback - 記下 Client ID 和 Client Secret
3.2 在 n8n 中設定
- 到 n8n 左側面板 → Credentials
- 按 「Add Credential」
- 搜尋 「Google OAuth2 API」
- 填入 Client ID 和 Client Secret
- 按 「Sign in with Google」,授權你的 Gmail 帳號
這個 credential 設定一次就好,之後 Gmail 和 Google Sheets 節點都能用。
Step 4:加入 Gmail 節點
- 點 Webhook 節點右邊的 +
- 搜尋 「Gmail」
- 設定參數:
| 參數 | 值 | 說明 |
|---|---|---|
| Credential | 剛剛建立的 Google OAuth2 | 選你設好的 |
| Operation | Send an Email | 寄信 |
| To | 你的 email | 通知寄給誰 |
| Subject | 新的表單提交:{{ $json.name }} | 主旨帶上對方的名字 |
| Email Type | Text | 或 HTML 都行 |
| Message | 見下方 | 信件內容 |
Email 內容
在 Message 欄位填入:
你收到一筆新的表單提交!
姓名:{{ $json.name }}
Email:{{ $json.email }}
訊息:{{ $json.message }}
---
此通知由 n8n 自動發送
{{ $json.name }} 這種寫法是 n8n 的 Expression 語法,它會自動帶入 Webhook 收到的資料。
Step 5:加入 Google Sheets 節點
- 回到 Webhook 節點,從它右邊再拉一條線出來(按 +)
- 搜尋 「Google Sheets」
- 設定參數:
| 參數 | 值 | 說明 |
|---|---|---|
| Credential | 同上,用剛剛的 Google OAuth2 | |
| Operation | Append Row | 在最後面新增一行 |
| Document | 選你的 Google Sheet | 先在 Google Sheets 建一個新的試算表 |
| Sheet | Sheet1 | 或你取的名稱 |
Google Sheet 格式
在你的 Google Sheet 裡,第一行(標題列)建好這些欄位:
| A | B | C | D |
|---|---|---|---|
| 姓名 | 訊息 | 時間 |
然後在 n8n 的 Google Sheets 節點裡,對應每個欄位:
| Sheet 欄位 | n8n 值 |
|---|---|
| 姓名 | {{ $json.name }} |
{{ $json.email }} | |
| 訊息 | {{ $json.message }} |
| 時間 | {{ $now.format('yyyy-MM-dd HH:mm:ss') }} |
Step 6:測試整個 Workflow
全部設好之後,來跑一次完整測試:
- 按上方的 「Execute Workflow」
- Webhook 節點會進入監聽模式
- 用剛才的 curl 指令再送一筆測試資料
- 看每個節點是不是都顯示綠色打勾
如果成功,你應該會:
- 收到一封 email 通知
- Google Sheet 裡多了一行新資料
Step 7:上線!
測試沒問題之後,把 workflow 開起來讓它自動跑:
- 點上方右邊的 Active 開關,切到啟用狀態
- 按 Save 儲存
現在你的 Webhook URL 就是正式的了(注意:正式的 URL 跟測試的不一樣):
https://你的n8n網址/webhook/contact-form
把這個 URL 放到你的網站表單 action,或者用在任何需要的地方。
接到前端表單
如果你有一個 HTML 表單,可以用 JavaScript 送資料到你的 Webhook:
<form id="contactForm">
<input type="text" name="name" placeholder="姓名" required>
<input type="email" name="email" placeholder="Email" required>
<textarea name="message" placeholder="訊息" required></textarea>
<button type="submit">送出</button>
</form>
<script>
document.getElementById('contactForm').addEventListener('submit', async (e) => {
e.preventDefault();
const formData = new FormData(e.target);
const data = Object.fromEntries(formData);
const response = await fetch('https://你的n8n網址/webhook/contact-form', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});
if (response.ok) {
alert('送出成功!');
e.target.reset();
}
});
</script>
完成後的 Workflow 長這樣
[Webhook] ──┬── [Gmail: 寄通知]
│
└── [Google Sheets: 存資料]
兩個節點是並行的 — Webhook 收到資料後,Gmail 和 Google Sheets 同時跑,不用等對方。
常見問題
Q: Webhook URL 是 http:// 開頭,外部服務不接受怎麼辦?
你需要設 HTTPS。看 n8n HTTPS 設定教學。
Q: Gmail 寄信失敗,顯示 authentication error?
檢查你的 Google OAuth2 credential 有沒有過期。到 Credentials 頁面,刪掉舊的重新設一次。
Q: Google Sheet 找不到我的試算表?
確認你在 Google Cloud Console 有啟用 Google Sheets API,而且 OAuth 授權時有勾到 Google Sheets 的權限。
Q: 可以同時寄給多個人嗎?
可以。Gmail 節點的 To 欄位用逗號隔開多個 email 就好:
[email protected], [email protected]
模板下載
不想從頭做?直接下載模板匯入:
免費下載這個 workflow 模板 >> n8nstart.cc/templates
下載 JSON 檔後,到 n8n 首頁 → Import from file → 選檔案 → 搞定。
下一步
做完第一個 workflow 之後,你可以試試:
- 加一個 IF 節點,根據訊息內容自動分類
- 加一個 Slack 節點,同時通知 Slack channel
- 用 Schedule Trigger 取代 Webhook,做定時自動化
更多學習資源:
- n8n 完整入門指南 — 從安裝到進階的完整地圖
- n8n 備份與更新 SOP — 別忘了設好備份
- n8n 官方教學課程 — 更多進階內容
本文最後更新:2026-03-24 有問題?到 n8n 官方社群 或 N8NMarket 粉專 問我們。