里程碑
n8n × LINE 行程助理(從未接觸n8n的超級初學者第一個自動化)
Eurus @ankh_u2625發布於 已編輯
一、背景與動機
常常在安排好行程或待辦事項後,因為嫌設提醒麻煩就省略,結果事後忘記。例如:要提前一個月訂高鐵票、這星期三要洗衣服、連續五個星期一要回診。
因此我希望用 AI 自動化解決這件事:我只要把行程用日常說話的方式傳到 LINE 聊天室,AI 就會分析內容,自動幫我建立 Google 行事曆事件並設好提醒,再回覆確認訊息。
二、系統功能與設計
使用方式:在 LINE 傳一句話,例如「10/25~28 回家」或「10/25 00:00~00:10 訂高鐵票」,系統會自動建立行事曆事件,並回覆「收到,已加入行事曆」。
工作流程(圖一)
順序--節點----作用
1-- Webhoo k------接收 LINE 傳來的訊息
2-- If ------篩選要處理的訊息
3-- Edit Fields ------整理出訊息文字
4-- AI Agent(Google Gemini)------把句子解析成固定格式的資料:事件名稱、日期、時間、類別
5--Code in JavaScript ------計算正確的開始/結束時間與提醒時間
6-1-- Google Calenda ------建立行事曆事件並設定提醒
6-2 -- HTTP Request ------透過 LINE 回覆確認訊息
提醒時間規則(依事件性質自動判斷)
事件類型→範例→提前提醒
- 日常小事→訂高鐵票、洗衣服→30 分鐘
- 長期準備→作業、報告→1 週
- 特殊事件→(有固定時間、非持續性),ex:回診、講座、社團幹部會議→1 天
- 只寫日期、沒寫時間→ex:回家,設成全天事件→提前 1 天
- 訊息中有明確指定→「提前30分鐘提醒」→以指定為優先
設計考量:原本在想要不要每次都在訊息裡寫提醒要提前多久,但這又和想省麻煩的理念背道而馳。最後,決定讓 AI 依類別自動判斷,只有想特別指定時才額外說明,這樣平常傳訊息可以更簡短。
三、撰寫過程遇到的問題
問題----原因--------解決方式
(1)
不會寫JavaScript
----還未接觸過
------和AI進行討論確認我要的成果,再請他撰寫
(2)
Code 節點出現錯誤
----節點串接錯誤:Code 與 AI Agent 並排,Code 收到的是原始文字,不是解析後的資料
------改成依序串接:AI Agent → Code → Google Calendar → LINE 回覆
(3)
Google Calendar 回報 Bad reques
----提醒分鐘數欄位多了一段文字,送出的值變成「Minutes Before:1440」而不是數字 1440
------欄位只留運算式 {{ Number($json.minutes) }}
(4)
行程出現在錯誤的年份(2024)
----AI 看不到今天的日期,System Message 的日期語法沒有在運算式模式下生效
------切換成 Expression 模式;並在 Code 節點加入年份修正,日期已過則自動排到明年
(5)
多日行程(10/25~28)的結束日要處理
----Google 全天事件的結束日不包含當天
------在 Code 節點中把結束日加 1 天
(6)
不同事件需要不同提醒時間
----日常、特殊、長期準備的提醒需求不同
------設計分類規則,AI 負責分類,Code 負責固定計算提醒時間
四、目前成果(圖二、三、四)
已完成從 LINE 傳訊息到自動建立 Google 行事曆事件,並回覆確認的完整流程,實測成功。
可處理單日、多日、有時間、無時間(全天)的行程。
可依事件類型自動設定不同的提前提醒時間。
五、心得
身為在上課前完全沒聽過 n8n 的超級初學者,真的沒想到這麼快就能開始創造讓自己生活更方便的小系統。還記得看到群組訊息傳 localhost、自架、VM 這些名詞,所有都是第一次見到。經過這次學習後,雖然仍有很多不懂的名詞,但我真切感受到自己的知識庫正在持續擴大。
一開始設計系統時,我原打算加入新聞推播,以及記錄、彙整行李物品的功能。但和 AI 討論設計後發現比預期更花時間,考慮到繳交期限和自己目前的能力,我決定先把「設行事曆」這個核心功能做出來交上,後續再繼續更新。
這次n8n 串接 LINE 實作不僅為我自己開發一個新的世界,同時讓我見識到AI自動化流程的可能性。在除錯的過程,我了解到明面上看起來是 A 節點的錯,可原因也許出在別的地方(例如:欄位裡多了一行文字、前面節點的串接順序)。因此,一定要先對n8n有基礎的認知,再學會看錯誤訊息和每個節點的輸出,排除沒問題的部分,一步步往前找原因。
六、待納入功能
- 每日推播國貿相關新聞:整理新聞之間的關聯性,我回報閱讀完畢後,系統再出題驗證理解。
- 記錄並彙整行李物品:平常把想到的物品傳到聊天室持續記錄(例如「10月回校-厚衣物」「10月回家-保養品」),整理行李那天再調出清單。
- 解析失敗時的回覆:目前如果傳的不是行程,系統不會回覆,之後想補上「看不懂,請再說一次」的提示。
0 個愛心0 則留言
登入並驗證手機後就能留言。登入