iT邦幫忙

1

【Day 17】條件式智慧分流:n8n If 節點實現 Notion 與 Google Calendar 雙向自動流轉

  • 分享至 

  • xImage
  •  

在昨天的 Day 16 中,我們成功將 Google Calendar API 串接入自動化管線,讓 AI 提煉出的任務能自動登錄至行事曆。然而,並非所有待辦事項都適合放進行事曆中——例如「倒垃圾」或「整理房間」這種沒有固定精確時段的常規任務,如果全數塞進 Google Calendar,反而會讓行事曆變得極度雜亂。

今天我們要利用 n8n 的 If 條件判斷節點 實現「條件式智慧分流」:只有具備明確時間點(Specific Time)的任務才同步至 Google Calendar,其餘常規任務則專注留在 Notion 看板,打造更符合真實生活場景的雙軌任務管理!


為什麼需要條件式智慧分流?

在時間管理方法論中,「行事曆(Calendar)」與「待辦清單(To-Do List)」扮演著截然不同的角色:

  1. Google Calendar(硬性時間):適合放有固定開始與結束時間、必須在特定時段執行的行程(如「明早 10:00 與客戶開會」、「週五下午 15:00 醫生看診」)。
  2. Notion 看板(軟性時間/無時間):適合放有截止日期但無固定時段、或僅有優先級別的任務(如「本週找時間買牛奶」、「記得歸還書籍」)。

透過 AI 先一步辨識時間屬性,再由 n8n 進行自動分流,能確保行事曆維持清爽,同時不遺漏任何日常備忘。


核心實作步驟說明

1. 擴充 Dify / JS 的時間屬性標籤

  • 在前面的步驟中,我們讓 Dify 解析任務時,除了提煉 task 與 priority 外,特別針對 time 進行結構化判斷。
  • 如果使用者輸入的內容包含明確時間(如「明天下午三點」),has_exact_time 標籤設為 true;若僅包含模糊時間或完全無時間(如「有空記得...」),則設為 false。

2. 在 n8n 新增 If 節點進行條件分支

  • 在 Code in JavaScript 節點後方,新增一個 If 節點。

  • Condition 1:選擇 Boolean 或 String 判斷:

  • Value 1:{{ $json.has_exact_time }}

  • Operation:Equal / is true

  • 分支輸出走向:

  • True 分支(具備明確時間):同時連線至 Google Calendar 節點(建立行事曆行程)與 Notion 節點(備份至看板)。

  • False 分支(僅常規任務):僅連線至 Notion 節點,跳過 Google Calendar。

3. 設定 Google Calendar 條件參數與防呆

  • 對於走入 True 分支 的資料,才將其 time 參數餵給 Google Calendar 節點,避免因非標準時間格式導致 API 報錯。
  • 使用 n8n 的 DateTime 工具將時間格式化為標準 ISO 8601 格式(例如 2026-10-17T15:00:00+08:00)。

4. 端到端分流測試與驗證

  • 測試情境 A(明確時間):發送「明天下午三點跟廠商開會」。

  • 系統判斷 has_exact_time: true ➔ 同時寫入 Google Calendar 與 Notion。

  • 測試情境 B(模糊/無時間):發送「記得撥空倒垃圾」。

  • 系統判斷 has_exact_time: false ➔ 僅寫入 Notion,行事曆維持乾淨!

今天我們成功建立了行事曆與待辦看板之間的智慧分流牆,讓自動化管線更加貼近真實時間管理需求。明天「Day 18」我們將把輸入端升級,導入全台灣普及率最高的溝通工具——「LINE Official Account(LINE 官方帳號 API)」,讓你能直接在 LINE 聊天室傳送文字或語音進行 AI 任務管理!


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言