n8n Schedule 節點教學:精通 5 種模式,讓你的工作流定時自動執行

n8n 排程

在 n8n 的自動化世界中,所有流程的起點都是一個「觸發器 (Trigger) 節點」。它就像是自動化生產線的啟動按鈕,決定了你的工作流「何時」以及「為何」開始運作。而在眾多觸發器中,有一個最基本、也最不可或缺的角色,那就是 Schedule 節點

你是否曾想過:

  • 如何讓 n8n 在每天早上 9 點,自動抓取最新的銷售數據並產生日報表?
  • 如何設定一個每週五下午 5 點自動發送週報的流程?
  • 如何建立一個在每個月最後一天,才執行的自動化發票提醒任務?

所有這些「在特定時間點自動執行」的需求,都必須仰賴 Schedule 節點來實現。它就像是為你的自動化流程裝上的一個功能強大的智慧鬧鐘,讓你能精準控制任務的執行時機。

這篇文章將是你最完整的 n8n Schedule 節點教學。我們將帶你深入解析它的五種排程模式,從簡單的每小時執行,到使用 Cron 語法實現複雜的自訂排程,並透過實戰案例與技巧分享,讓你徹底掌握 n8n 的時間魔法,將你的自動化能力提升到全新層次。

什麼是 Schedule 節點?為你的自動化裝上「鬧鐘」

Schedule 節點是一個觸發器節點 (Trigger Node),這意味著它永遠是一個工作流的第一個節點。它的功能非常單純:不需要任何外部事件(如 Webhook 或表單提交),而是根據你設定的「時間規則」,定時自動地啟動整個工作流。

與 Webhook 這類「事件驅動」的觸發器不同,Schedule 節點是「時間驅動」的。它讓你的自動化不再只是被動地等待外部指令,而是可以主動地、有規律地在指定時間執行任務,非常適合用來處理例行性的、週期性的工作。

當你將一個新的 Schedule 節點拉到畫布上時,你會看到它的設定面板中有一個核心選項:「Mode」。n8n 提供了多種模式來滿足你從簡單到複雜的各種排程需求。

模式詳解一:間隔執行 (Interval) – 每隔一段時間就觸發

這是最簡單的排程模式,它的邏輯是「每隔 X [時間單位] 執行一次」。

  • 何時使用: 當你不在乎確切的執行「時刻」,只關心執行的「頻率」時。例如,每 15 分鐘檢查一次網站狀態,或每 6 小時同步一次資料。
  • 設定選項:
    • Value: 數字,代表間隔的長度。
    • Unit: 時間單位,可以選擇 Minutes (分鐘)、Hours (小時)、Days (天)、Weeks (週)、Months (月)。
  • 實戰範例:
    • 任務: 每 30 分鐘檢查一次特定 API 的狀態。
    • 設定: Mode 選擇 IntervalValue30Unit 選擇 Minutes
  • 注意事項: Interval 的計時起點是你「啟動 (Activate) 工作流」的那一刻。如果你在早上 9:10 啟動了一個每小時執行的流程,那麼它會在 10:10、11:10… 執行,而不是在整點。

模式詳解二:固定時間 (Every Day/Week/Month/Year) – 日常排程的首選

這一系列的模式,適用於絕大多數的日常商業排程需求。它們的邏輯是「在每個 [時間單位] 的特定時刻執行」。

  • 何時使用: 當你需要任務在固定的、可預測的時間點發生時。
  • 模式與設定:
    • Every Day: 每天執行。你可以指定執行的 Hour (時) 和 Minute (分)。
      • 範例: Hour 設為 9Minute 設為 0,即為每天早上 9:00 執行。
    • Every Week: 每週執行。你可以選擇在一周的哪幾天 (Day of the Week) 的特定時間執行。
      • 範例: Day of the Week 勾選 FridayHour 設為 17Minute 設為 30,即為每週五下午 5:30 執行。
    • Every Month: 每月執行。你可以選擇在每個月的第幾天 (Day of the Month) 的特定時間執行。
      • 範例: Day of the Month 選擇 1Hour 設為 10Minute 設為 0,即為每個月 1 號上午 10:00 執行。
    • Once: 執行一次。設定一個未來的特定日期和時間,工作流只會在那個時間點執行一次。
n8n Schedule

模式詳解三:終極武器 Cron – 實現任何你想像得到的複雜排程

當以上所有模式都無法滿足你刁鑽的排程需求時,就是 Cron 登場的時刻。Cron 是一種在電腦系統中用來設定週期性任務的標準語法,它極度靈活且強大。

  • 何時使用:
    • 每週一至週五的上班時間(9:00 – 18:00)每小時執行一次。
    • 每個月的最後一個星期五執行。
    • 每年的 6 月和 12 月的 1 號凌晨執行。
  • Cron 語法結構: Cron 表達式由 5 個欄位組成,中間用空格隔開,分別代表: 分鐘(0-59) 小時(0-23) 日(1-31) 月(1-12) 星期幾(0-6, 0和7都代表週日)
    • *:代表「每一個」。例如,在「分鐘」欄位寫 * 代表每一分鐘。
    • ,:代表「和」。例如,在「小時」欄位寫 9,12,18 代表在 9 點、12 點和 18 點。
    • -:代表「範圍」。例如,在「星期幾」欄位寫 1-5 代表週一到週五。
    • /:代表「間隔」。例如,在「分鐘」欄位寫 */15 代表每 15 分鐘。
  • 實用 Cron 範例大全:
    • 0 9 * * 1-5: 每週一至週五的早上 9:00。
    • */30 9-17 * * 1-5: 每週一至週五,從早上 9 點到下午 5 點,每 30 分鐘一次。
    • 0 10 1 * *: 每個月 1 號的上午 10:00。
    • 0 22 L * *: 每個月最後一天的晚上 10:00 (n8n 支持 L 這個特殊字元)。

如果你對 Cron 語法不熟,強烈推薦使用 Crontab.guru 這個線上工具,它可以即時為你翻譯 Cron 表達式的意思,非常方便!

Schedule vs. Wait 節點:我該用哪個來處理「延遲任務」?

這是新手常會混淆的問題。Schedule 和 Wait 節點都能處理與「時間」相關的任務,但它們的根本角色完全不同。

比較項目Schedule 節點Wait 節點
節點類型觸發器 (Trigger)執行器 (Action)
在流程中的位置永遠是第一個節點可以在流程中的任何位置
功能啟動一個全新的工作流在現有工作流執行中暫停
使用情境每天產生日報表在用戶註冊 24 小時後發送教學信

簡單的判斷法則:

  • 如果你的問題是「我希望流程在…時候『開始』」,請使用 Schedule 節點。
  • 如果你的問題是「我希望流程跑到一半,『等待』一段時間後再繼續」,請使用 Wait 節點。

實用技巧與注意事項

精通 Schedule 節點的設定後,你還需要知道一些專業的實踐技巧,來確保你的排程任務穩定可靠。

注意時區 (Timezone) 設定!

這是最常導致排程不如預期的陷阱!n8n 的排程時間是根據你伺服器環境的時區來決定的。如果你的 n8n 是透過 Docker 部署,預設的時區可能是 UTC+0。

解決方案: 在你的 docker-compose.ymldocker run 指令中,務必設定 GENERIC_TIMEZONE 這個環境變數,將其指定為你所在的時區。

  • 台灣使用者設定: GENERIC_TIMEZONE=Asia/Taipei

設定正確的時區,才能確保你設定的「早上 9 點」,是你所在地的早上 9 點,而不是格林威治的早上 9 點。

結合錯誤處理 (Error Handling)

排程任務通常在背景自動執行,如果沒有妥善的錯誤處理,它失敗了你可能都不知道。強烈建議在你的排程工作流中,為所有可能失敗的關鍵節點(特別是 HTTP Request)都加上錯誤處理路徑,在出錯時自動發送通知到你的 Slack 或 Email。

測試你的排程

在正式啟用 (Activate) 工作流之前,你可以隨時點擊 Schedule 節點右上角的「播放」按鈕 (Execute Node),這會立即執行一次工作流,讓你可以在不等待排程時間的情況下,先行測試後續的所有節點是否運作正常。

n8n Schedule 教學

結語

Schedule 節點是 n8n 自動化的心跳與節奏。它將你的工作流從被動的接收者,轉變為主動的執行者,讓你的系統能夠年復一年、日復一日地,在最精準的時間點,為你完成各種例行任務。

今天,我們不僅學會了從簡單到複雜的五種排程模式,更理解了它與 Wait 節點的根本差異,以及設定時區等關鍵的專業技巧。掌握了 Schedule 節點,你就掌握了 n8n 時間自動化的鑰匙。現在,就去找出那些你每天、每週、每月都在重複做的例行公事,為它們設定一個 Schedule 節點,讓 n8n 成為你最可靠的定時小幫手吧!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端