設定速查
n8n 有一狗票設定散在四個地方——右上頭像、workflow 內 Settings tab、instance 環境變數、IT 那邊的 admin 頁。這附錄一次把「哪個在哪、誰能改、改了會怎樣」講清楚。看到 Executions 突然消失、Schedule 跑錯時間、想改介面語言的時候都翻這裡。
為什麼要有一份速查
n8n 的設定其實不多,但問題出在分了很多層——你以為改了個開關,結果那個開關只影響你自己一個人;又或者你在自己 Settings 找半天,其實那個東西只有 admin 或環境變數能改。真實遇過的狀況:
- 「幫我把介面切成中文」 —— 這其實不是 Personal 能改的,n8n community 沒有 UI 語言下拉;要靠 instance 的
N8N_DEFAULT_LOCALEenv var,找 IT。 - 「幫我把 Schedule 節點改成台北時間」 —— 這是 workflow 級的 Settings tab,或者叫 IT 改
GENERIC_TIMEZONE。 - 「我上禮拜跑的 execution 不見了!」 —— 這是 instance 級的
EXECUTIONS_DATA_MAX_AGE,預設 336 小時(14 天)就 auto purge,你沒權限改,找 IT。 - 「我按了 Manual Execute 但 Executions 頁沒紀錄」 —— 這是 workflow Settings 的 Save manual executions;n8n 官方 instance 預設其實是開(
EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=true),但很多公司 IT 為了省 DB 會關掉,所以你這台看不到不代表壞掉,是被覆蓋。
這附錄按「你能不能改 / 影響誰」分兩大類——Personal(自己畫面,隨時改)跟 Workspace / Instance(全公司共用,只有 admin 或 env vars)。搞懂這層分工,之後遇到 90% 的設定問題都知道去哪找、找誰改。
.env 或 docker-compose 檔,不然新機器行為會完全不一樣。兩層設定:Personal vs Workspace
先把心智模型立起來。n8n 的設定分成兩層——一層是你自己的畫面偏好,另一層是整個 instance 的行為。改錯層等於白改。
| 層級 | 在哪裡改 | 影響誰 | 誰能改 | 典型例子 |
|---|---|---|---|---|
| Personal(個人) | 右上頭像 → Settings | 只有你自己 | 你自己 | 介面語言、主題、通知偏好 |
| Workflow(單一 workflow) | 打開 workflow → 頂端 Settings tab | 這一個 workflow 的所有執行 | 對這 workflow 有編輯權限的人 | Timezone、Error Workflow、Save 選項 |
| Instance(整台 n8n) | 環境變數 .env 或 docker-compose;部分 admin 頁 |
全公司所有人 | 只有 admin 或 IT | Executions 保留天數、預設時區、Base URL |
Personal 設定:只影響你自己的帳號
左下角三個點旁邊點頭像 → Settings,n8n 開啟 Personal settings 頁。這些設定綁在你的帳號上(存在 n8n DB),跟同事無關。
| 選項 | 可設 | 意義 / 備註 |
|---|---|---|
| Personal 資料 | First name / Last name / Email | Email 也是登入用;owner 由環境變數管的話會被鎖成 read-only。 |
| Password | 修改 | 就是你的登入密碼。有裝 SSO / SAML / LDAP 的公司這欄可能被停用。 |
| Two-factor authentication(2FA) | 啟用 / 停用 | Instance 有開 2FA 才會出現此區塊。啟用後綁 TOTP app(Google Authenticator 等)。 |
| API Keys | 產生 / 撤銷 | 呼叫 n8n REST API 用(例:CI/CD 自動 import workflow)。跟 credentials 是兩件事。撤銷後所有用這 key 的自動化都會 401。 |
沒有的東西:Personal Settings 不含 Language 下拉、也不含 Theme / 通知偏好開關——這幾樣在 community 版根本不在這頁。UI 語言由 instance 的 N8N_DEFAULT_LOCALE 決定(見下 Instance 級設定);深淺模式跟 OS 或瀏覽器走,不是 n8n 選項。 |
||
N8N_DEFAULT_LOCALE(見下),改完整台 instance 一起換,不能個人切。Workflow 級設定:打開 workflow 找 Settings tab
打開任何一個 workflow,畫面最頂端會看到 Editor / Executions / Evaluations / Settings 這幾個 tab。點 Settings 進去,就是這個 workflow 的專屬設定。這些選項只影響這一個 workflow,不會動到別的。
| 選項 | 預設值 | 什麼時候要改 |
|---|---|---|
| Execution order | v1(推薦)/ v0(legacy) | 新 workflow 一律 v1,跑多分支時每個節點確保只被觸發一次。老 workflow 從 v0 升上來時才會需要動這個。 |
| Timezone | 跟 instance 走(GENERIC_TIMEZONE,預設 America/New_York) |
用 Schedule 或 Cron 節點的 workflow 一定要設——選 Asia/Taipei,不然 第 10 章那個「每天早上 9 點」會變成 New York 9 點(台灣 21 或 22 點,看夏令)。 |
| Error Workflow | 無 | 指定一個「錯誤處理 workflow」——這個 workflow 出錯時會自動觸發那個。做集中通知或補償邏輯用,詳見 第 17 章。 |
| This workflow can be called by(俗稱 caller policy) | Any workflow / Workflows in same project / Only workflows I own / Only specified workflows | 哪些其他 workflow 可以用 Execute Workflow 節點呼叫這一個。管團隊複用 sub-workflow 時會用到。 |
| Save failed production executions | Default (Save) | Instance 預設是 all。強烈建議保持——不存的話錯誤發生時你看不到節點 input,debug 很痛苦。 |
| Save successful production executions | Default (Save) | Instance 預設是 all。存了才能在 Executions 頁看每個節點的資料;不存只會有結果摘要。DB 吃緊時單獨這條可以關。 |
| Save manual executions | Default (Save) | 官方 instance 預設 true——按 Execute Workflow 後 Executions 頁會有紀錄可 debug。有些公司 IT 為省 DB 會把 instance 預設改 false;此開關可覆蓋。 |
| Save execution progress | Default (Do not save) | 每一步都存進 DB。跑很長很重的 workflow 可以開,中間掛掉能從斷點繼續;但寫入頻繁會拖慢執行。 |
| Timeout Workflow / Timeout After | 關(吃 instance EXECUTIONS_TIMEOUT,預設 -1 無 timeout) |
開啟後填時 / 分 / 秒。單次 execution 超時會被取消。防呆用——workflow 卡死不會無限吃資源。設 1 小時算保守。 |
| Redact production / manual execution data | 關 | 存 execution 時把節點 input/output 遮掉。處理 PII / 病歷 / 金流的 workflow 開這個,Executions 頁看得到有跑過、但看不到內容。 |
Instance 級設定:整台 n8n 的行為
這些設定寫在環境變數(.env 檔或 docker-compose 的 environment:)——你在 UI 上看不到、也改不了,要動就得請 IT 或 admin。看得懂它們在講什麼,你才不會拿一堆 UI 找不到的東西去問 IT。
| 環境變數 | 預設值 | 做什麼 |
|---|---|---|
GENERIC_TIMEZONE |
America/New_York |
整台 n8n 的預設時區——所有沒指定自己 Timezone 的 workflow 都吃這個。台灣公司請 IT 改成 Asia/Taipei。 |
TZ |
視 base image 而定 | Node.js 進程本身的 timezone。實務上跟 GENERIC_TIMEZONE 設成一樣,避免 log 時間跟 workflow 時間對不起來。 |
EXECUTIONS_DATA_MAX_AGE |
336(小時 = 14 天) |
Executions 紀錄自動清除的時限。想留久一點就調高(例:720 = 30 天);老是塞爆 DB 就調低。 |
EXECUTIONS_DATA_PRUNE |
true |
要不要自動清 executions。設 false 表示永不刪——DB 會越長越肥,只建議短期 debug 用。 |
EXECUTIONS_DATA_SAVE_ON_SUCCESS |
all |
Instance 預設:成功的 execution 存不存資料。可設 all / none。單一 workflow 可覆蓋。 |
EXECUTIONS_DATA_SAVE_ON_ERROR |
all |
Instance 預設:失敗的 execution 存不存資料。建議保持 all。 |
EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS |
true |
Instance 預設:手動按 Execute Workflow 的紀錄要不要進 Executions 頁。官方預設是開;有些公司為省 DB 會關成 false。單一 workflow 可覆蓋。 |
EXECUTIONS_TIMEOUT |
-1(秒;-1 表示不 timeout) |
Instance 預設的單次 execution 上限秒數。單一 workflow 可在 Settings 覆蓋。設 3600 表示全 instance 最多 1 小時。 |
N8N_LOG_LEVEL |
info |
n8n 服務本身的 log 詳細度,僅四個合法值:error / warn / info / debug。查怪 bug 時 IT 會臨時開 debug。沒有 verbose 或 silent——填了會被當非法值。 |
N8N_HOST / N8N_PORT / N8N_PROTOCOL |
localhost / 5678 / http |
對外服務位址。跟下面 WEBHOOK_URL 一起決定外部收到的 webhook URL 長什麼樣。 |
WEBHOOK_URL |
組自 host/port/protocol | Webhook 節點顯示給你複製的那個外部 URL——反向代理架構下必須手動指定成公開域名,不然給對方的 URL 是內網 IP 不能用。 |
N8N_DEFAULT_LOCALE |
en |
整台 instance 的 UI 語言。只吃基本 tag(en / de / zh),不吃 zh-Hant / zh-TW / de-AT 這種 regional identifier——填了會 fallback 回 en。且個別使用者沒有 UI 可自己改;改這個等於全公司一起換。 |
EXECUTIONS_MODE |
regular |
執行模式:regular(單 process)或 queue(配 Redis 開 workers 跑)。量大才需要 queue 模式。 |
docker compose restart n8n 或系統服務 restart),不是改完就馬上套用。這也是為什麼這些不放 UI——避免使用者以為改了就好、實際沒生效還怪 n8n 壞掉。Executions 保留天數:為什麼你的紀錄會消失
Community 版預設 14 天(336 小時)就會 auto purge,這是最多人踩的坑。每次 workflow 跑一次都會產生一筆 execution 紀錄——連同節點的 input / output 資料(Save 選項有開的話),塞在 PostgreSQL / SQLite 裡。時間久了 DB 會腫,n8n 官方預設就設了 14 天,不然新裝的 instance 跑三個月會發現 DB 20GB。
後果:
- 15 天前的 execution 不管成功失敗都直接消失——UI 看不到、DB 裡也沒了。
- 連帶 execution 的節點 input / output 資料也一併消失——想回頭看那天 API 回傳了什麼,沒了。
- 對外部系統的操作(Slack 訊息、Airtable 資料)當然還在——刪的只是 n8n 這邊的執行紀錄。
想留久一點,三條路:
-
找 IT 改環境變數
請 IT 把
EXECUTIONS_DATA_MAX_AGE從 336 調到你要的數字(單位是小時,不是天)。想留 30 天就設 720、90 天設 2160。 -
關鍵資料自己另存
在 workflow 最後接一個 Google Sheets / Airtable / DB 節點,把每次執行的關鍵資料(input、時間、結果)寫進外部——這樣不管 n8n executions 保留多久,稽核紀錄都在。這是稽核合規最穩的做法。
-
整台 DB 做定期 dump
IT 對 n8n 的 PostgreSQL 每天做
pg_dumpbackup。這樣 executions 被 purge 掉之後,需要回溯還可以從 dump 檔還原。適合稽核嚴的公司。
EXECUTIONS_DATA_PRUNE 設成 false 表示永不清除——短期 debug OK,長期跑到 DB 爆炸的案例超級多。真的要長期保留改用「Sheet / DB 另存 + 定期 dump」,不要靠 n8n 本身無限保留。Timezone 三層優先序:Schedule 為什麼跑錯時間
「我明明設早上 9 點,怎麼變下午 5 點跑」——十有八九是 Timezone 沒設。n8n 決定 workflow 的時區有三層,從高到低:
| 優先序 | 設定在哪 | 怎麼寫 | 影響範圍 |
|---|---|---|---|
| 1(最高) | 節點 Expression 內明寫 | {{ $now.setZone('Asia/Taipei').toFormat('HH:mm') }} |
只影響這個 expression 那次計算 |
| 2 | Workflow → Settings → Timezone | 下拉選 Asia/Taipei |
這個 workflow 所有節點、包含 Schedule / Cron 觸發 |
| 3(最低) | Instance 環境變數 GENERIC_TIMEZONE |
IT 改 .env |
所有沒指定 Timezone 的 workflow |
都沒設就是 America/New_York——這是 n8n 官方 GENERIC_TIMEZONE 的預設值(不是 UTC,很多人以為是 UTC)。所以「新裝的 n8n 跑 Schedule 時間對不上」在台灣是必然,差 12~13 小時(看紐約當時是不是夏令)。TZ(Node.js 進程時區)則吃 base image 預設,Docker 官方 image 是 UTC——兩個變數會有落差,log 時間跟 workflow 時間可能對不起來,所以實務上 GENERIC_TIMEZONE 跟 TZ 建議設成一樣。
推薦做法:
-
Instance 底線先設好
請 IT 把
GENERIC_TIMEZONE=Asia/Taipei跟TZ=Asia/Taipei都加進.env,重啟。這樣新 workflow 預設就是台北時間,不用每個都手動設。 -
Workflow 保險再設一次
任何用 Schedule / Cron 的 workflow,還是進 Settings tab 明確選
Asia/Taipei——這樣就算之後 IT 改GENERIC_TIMEZONE、或搬到別台 n8n,你的排程時間都不會變。 -
跨時區資料才在 Expression 明寫
只有處理跨時區資料(例:把 UTC timestamp 轉台北時間顯示)才在 Expression 用
.setZone()——不要每個節點都寫,維護惡夢。
最常要改的設定清單
照身份分三份 checklist——照著跑一遍,90% 的日常問題都不會發生。
新使用者第一天(自己就能做):
- Personal settings → 檢查 First name / Last name / Email 填對
- 如果會用 API:Personal settings → API Keys 產一個存好
- 密碼建議打開 2FA(如果 instance 有開啟這功能,見 第 2 章)
- 想要中文介面 → 這個自己改不了,找 IT 設 instance 級
N8N_DEFAULT_LOCALE
建新 workflow 每次都做(3 分鐘):
- Settings tab → Timezone 選
Asia/Taipei(不然吃America/New_York) - Error Workflow 指定你的 handler workflow(沒有就先做一個,見 第 17 章)
- 開發階段確認 Save manual executions 是 Save(若 IT 把 instance 預設關了要在這裡強制打開)
- 會跑很久的開 Timeout Workflow(例:1 小時)
- 處理 PII / 金流的加 Redact production execution data
IT / Admin 部署前要決定(做一次):
GENERIC_TIMEZONE+TZ設Asia/TaipeiWEBHOOK_URL明確設成公開域名(反向代理架構必做)EXECUTIONS_DATA_MAX_AGE依稽核需求決定(14 天 / 30 天 / 90 天)- 認證憑證的加密 key
N8N_ENCRYPTION_KEY產一個強的、備份好(換了會讓所有現有 credentials 解不開) - DB 從內建 SQLite 換成 PostgreSQL(正式環境必做)
N8N_ENCRYPTION_KEY 是所有 credentials 加密解密用的 master key——換掉之後所有現有 credentials 都會變成解不開的亂碼。第一次部署就要決定好,記到密碼管理器,之後絕對不要改。常見卡關
-
Schedule / Cron 節點跑錯時間
99% 是 workflow 的 Timezone 沒設,跑成 instance 預設(官方預設是
America/New_York,不是 UTC)。開這個 workflow → Settings tab → Timezone 選Asia/Taipei→ Save。Instance 若也沒設GENERIC_TIMEZONE,順便請 IT 加。改完下次觸發才會用新時區,上一次已排定的還是舊時間。 -
Executions 頁上禮拜的紀錄不見了
Community 版預設 14 天 auto purge——超過就被清了,n8n 端沒救。想留久要改
EXECUTIONS_DATA_MAX_AGE(找 IT)。長期解法:把關鍵資料另存到 Google Sheet / DB,不要靠 n8n executions 當稽核紀錄。 -
我沒看到 Instance settings 頁 / Admin 頁
Instance 設定在 UI 上本來就大部分沒得改,都在環境變數。你在 UI 找不到不是你權限問題,是它根本不在 UI。有些 admin 專用頁(例:Users 管理)只有 owner / admin 角色看得到——找 IT 或當初開這個 instance 的人。
-
找不到「Personal → Language」下拉
官方 n8n community Personal settings 沒有 UI 語言選擇下拉——你不是眼瞎,是它根本不存在。UI 語言由 instance 的
N8N_DEFAULT_LOCALEenv var 決定(且只吃en/zh這種基本 tag,不吃zh-TW/zh-Hant),改完得重啟整台 n8n,會影響全公司。網路上寫「切成简体中文」的教學多半是舊版截圖或第三方 fork。 -
改了 workflow Settings 但 Executions 還是沒存資料
三個檢查點:(a)workflow Settings 的 Save 選項有沒有真的按 Save(不是只切開關就走);(b)你按的是 Execute Workflow(Manual)還是外部觸發?Manual 走 Save manual executions,Production 走 Save successful / failed production executions,是三個獨立開關;(c)workflow Settings 若選「Default」就是吃 instance 的
EXECUTIONS_DATA_SAVE_*env var,如果 IT 把 instance 預設關了,選 Default 就等於關。想強制存要在 workflow Settings 明確選 Save。 -
Webhook 節點給我的 URL 是
localhost,外部叫不到Instance 沒設
WEBHOOK_URL,n8n 只知道自己 host 是啥。找 IT 加WEBHOOK_URL=https://n8n.你的公司.com(含 protocol、含 domain),重啟。之後 Webhook 節點顯示的 URL 就會是正確對外可訪問的。 -
Error Workflow 沒被觸發
幾個常見原因:(a)Error Workflow 本身沒 Active 打開;(b)Error Workflow 的 trigger 不是 Error Trigger 節點;(c)出錯的 workflow 的 Settings 沒指定這個 Error Workflow。三個一起檢查,詳見 第 17 章。
-
改了 env var 但看起來沒生效
環境變數不會 hot reload——改完
.env或 docker-compose 之後要docker compose down && docker compose up -d(或系統服務 restart)才會讀新值。restart有時不夠(尤其改 docker-compose.yml),要完整 down + up。
常見問題
Personal 設定會不會被清掉?換裝置還在嗎?
n8n backup 有含 settings 嗎?搬機器要怎麼帶過去?
.env 或 docker-compose.yml,不是 n8n DB 內容。搬機器要另外複製 .env 檔(特別注意 N8N_ENCRYPTION_KEY 一定要帶過去,不然新機器解不開舊的 credentials)。有沒有匯出所有設定 / workflow 的按鈕?
n8n export:workflow --all --output=./backup.json 跟 n8n export:credentials --all --decrypted --output=./cred.json(decrypted 檔案含明文密碼,要妥善保管);(b)Personal / Instance 設定沒 export 命令,Personal 存 DB、Instance 存 env var,各自備份。企業級 backup 建議直接 dump 整個 PostgreSQL + 複製 .env。同一個帳號多裝置登入設定會同步嗎?
免費的 Community 版跟 Cloud / Enterprise 設定選項有差嗎?
我想把介面切成中文,Personal Settings 為什麼找不到 Language?
N8N_DEFAULT_LOCALE env var 控制(預設 en),改了會影響全公司——所以要協調 IT。而且 n8n 只吃基本 tag(en / de / zh ...),不吃 regional code(zh-Hant / zh-TW / de-AT),填了會 fallback 回 en。另外 n8n 官方 GitHub master 目前只 ship 英文 locale 檔,其他語系是靠 Crowdin 社群翻譯——所以就算你設 zh,未翻譯字串還是會顯示英文。這也是為什麼很多用戶乾脆維持英文。我要 workflow 一段時間才跑一次,可以在 UI 排「每個月 15 號」嗎?
0 9 15 * * = 每月 15 號早上 9 點)。這個 workflow 的 Timezone 一定要在 Settings tab 設 Asia/Taipei,不然 9 點會變 UTC 9 點(台灣 17 點)。我可以自己給自己開 admin 權限改 Instance 設定嗎?
.env。要嘛請現有 admin 幫改角色,要嘛請 IT 幫改 env var。這是保護機制,不是 bug。Credentials 是 Personal 還是 Workspace?我建的別人能用嗎?
Notification email 收不到,該檢查什麼?
N8N_EMAIL_MODE=smtp 跟 N8N_SMTP_* 那組 env var,找 IT 確認)——沒配 SMTP 再怎麼勾都寄不出;(c)確認你的 email 沒被寄到垃圾信匣、或被公司 mail filter 擋掉。這三個是照順序查的。