里程碑
不用再打開 Notion:用 LINE 直接新增到我的 To-do List
Dana @seni發布於 已編輯
為什麼想做這個?
我原本就有在使用 Notion 的 To-do List 。但實際使用一段時間後,我發現有時候我只是突然想到一件事情,例如:「明天要交作業」、「有空要整理照片」如果不馬上記下來可能很快就忘記了,但如果每次都要先打開 Notion、找到 To-do List、建立新項目、選分類、勾選 Must do、再填日期,其實會有一點麻煩。
所以我開始想:
如果我可以直接在 LINE 裡面講一句話,它就自動幫我整理成 Notion To-do,會不會方便很多?
設計理念
我希望它不只是堪用但沒有很好用,而是一個真的會想每天打開的小工具。所以我花了很多時間在構想這個chat bot應該要達到哪一些功能,也希望風格可以統ㄧ,這樣我每天點來開看的時候覺得賞心悅目,會更有動力去使用它!
- 整體視覺風格
以黑 × 白 × 灰作為主要視覺,希望它看起來簡單、乾淨,有一點手帳風格的感覺,可以包含一點可愛的元素,回覆訊息要清楚明瞭,一眼就可以看懂
LINE 官方帳號的頭像也做成黑白蠟筆風的小企鵝 (光看頭像就會很想點進去跟他聊天對吧!> < )
- LINE 回覆風格
✦ 狀態 / 標題
📎 To-do
📁 Project
└─ 子任務
🗓️ 日期
🖤 Must do
🤍 非必要
☁️ Reminder
☑️ 完成
🔎 搜尋失敗
♡ ✧˖° ✿ 🩶 ꕤ 裝飾與結尾
Notion To-do 結構
原本我的 Notion To-do List 本身就有一套分類。主要分成以下四種:
1. Task
一般需要完成的工作
Example:
交資料結構作業
整理照片
準備宿營行李2. Project
比較大型、底下會再拆成很多 Task 的工作
Example:
SAD Midterm
└─ 查企業相關資料
└─ Gantt Chart
└─ NPV
└─ 整理簡報3. Reminder
提醒性質,不用有什麼成果
Example:
提醒我明天去蝦皮領包裹4. 2min
兩分鐘左右可以快速完成的小事情
Example:
回訊息
傳檔案
確認資料除此之外,我的 To-do 還有:Must do、到期日、完成狀態、子任務等等的欄位,所以這個自動化需要先理解使用者的需求並加以分類,才可以成功填寫到對應欄位上。
整體 Workflow
這次主要使用:LINE Messaging API + n8n + OpenAI + Notion
整體概念大概是:
LINE
↓
Webhook
↓
AI Agent
↓
Structured Output Parser
↓
Switch
├─ add
├─ complete
├─ help
└─ clarify
↓
不同條件判斷
↓
Notion
↓
LINE 回覆看起來可能有點複雜,但其實就是把每一種可能情況慢慢拆開。
AI 怎麼判斷我要做什麼?
LINE 傳入來的自然語言會先交給 AI Agent
Example:
這禮拜我要完成 SAD Midterm ProjectAI 需要整理成:
{
"action": "add",
"title": "SAD Midterm",
"category": "proj.",
"mustDo": true,
"dueDate": null,
"parentProject": null
}這邊其實很能會遇到很多實際操作會遇到的問題,需要在操作的過程中一一修改。
遇到的困難
這次其實花的時間比我一開始想像中多很多。
雖然我之前已經看完小屋無事和ai小精靈的課程,但真的開始做自己的東西後,才發現很多情況是課程裡不會剛好教到的。所以大部分的時候都是遇到問題去請教ai,理解原因後重新修改流程,最後再重新測試。
雖然過程繁複,也花了很多時間測試,但在這個過程中,反而也學到了很多原本沒有碰過的東西
以下列出幾個製作的過程遇到的問題:
- Project 與子任務
Project 是這次比較麻煩的一部分
例如輸入:
這禮拜我要完成 SAD Midterm Project一開始 AI 會把 Project 名稱存成:
完成 SAD Midterm Project但下一次如果我說:
SAD Midterm 包含查企業相關資料它就會找不到原本的 Project。
所以後來我加入新的Project命名原則:
SAD Midterm
SAD Midterm Project
SAD Midterm 專案
最後都統一成:SAD Midterm這樣後面的只要打名稱可以都搜尋的到
- 日期分開處理
這也是我做到一半才發現的問題
如果使用者說:
「明天交資料結構作業」
系統可以得到:
dueDate = 2026-10-13但如果使用者說:
有空再整理照片
系統得到:
dueDate = nullNotion 的日期欄位不能直接接收 null,否則會出現:Invalid date
所以最後應該要多加一層 IF來做判斷:
有日期?
├─ yes → Create Page with Date
└─ no → Create Page without Date- 自然語言不是固定格式
「完成」這兩個字,不一定代表事情已經完成
像是「這禮拜我要完成 SAD Midterm」代表未來要做,所以是 add
但像「SAD Midterm 已經完成了」應該要分類到 complete
AI有時候會判斷錯「完成」背後真正的意思,這也是後來測試時花很多時間調整的地方
- 搜尋不到時 Workflow 會直接停住
一開始 Notion Search 如果完全沒有結果,後面的 Code 跟 IF 根本不會執行。
所以即使我已經寫好:「找不到這個 To-do」的回覆模板 LINE 還是不會回。
後來才發現應該要打開:
Always Output Data讓沒有結果時也可以繼續往下跑
成果
請參考下面的附圖!
結語
我那時候在思考做什麼成品出來的時候想要真的做出一個自己會用到的東西,所以我花了一段時間確定自己真正需要的功能、要如何達成之後,才開始動工。過程中當然遇到很多波折,但也就是在這些遇到的問題裡,慢慢把它修成我自己想像中的樣子。
最後完成後,我自己其實蠻滿意的。而且現在 n8n 還剩大概一個禮拜試用期。所以接下來的目標就是:用爆它! 不然花這麼多時間做完結果沒什麼用到的話,我覺得超級可惜 XD
@…
@…
20 個愛心16 則留言
登入並驗證手機後就能留言。登入