$38
統一的 Notion ToDo 資料庫操作介面,涵蓋完整 CRUD 功能。
直接建立一筆待辦項目。必填:todo_title。
兩種使用方式:
依條件篩選後回傳 ToDo 清單,包含 page_id 供後續 update/delete 使用。
分頁參數:
limit:每頁筆數,預設 20,最大 100offset:跳過前 N 筆,預設 0回傳結果含 total(總筆數)、returned(本次回傳筆數)、offset、limit。
若還有下一頁,會額外回傳 next_offset,請用 offset=next_offset 取得後續資料。
統計各狀態的數量,並列出即將到期與逾期項目。
將符合 filter_* / keyword 條件的項目依「標題」分組,回傳:
groups[*]:每一組重複項目,含 items(各 page_id 與欄位)、keep_suggestion(建議保留)、delete_suggestion(建議刪除的 page_ids)all_delete_ids:所有 group 的 delete_suggestion 串接,可直接餵給 delete_batch標題正規化:去除末端 (1) / (2) 序號、空白正規化、大小寫視為相同,因此
「整理並優化網頁部分內容與結構 (1)」與「整理並優化網頁部分內容與結構」會被視為同一組。
參數:
dedupe_by:ToDo(預設,依標題)或 ToDo+專案(再加上專案串接,避免不同專案的同名項目被誤判)keep:oldest(預設保留最早建立)或 newestfilter_status / filter_date / filter_due_date / filter_hours / filter_project / filter_assignee / keyword / filter_logic典型流程:
1. find_duplicates(filter_date="2026-04-15") → 取得 groups + all_delete_ids
2. 向使用者報告有哪幾組重複、將保留/刪除哪些
3. delete_batch(page_ids=all_delete_ids) → preview(不帶 confirm)
4. delete_batch(page_ids=all_delete_ids, confirm=true) → 實際封存
僅更新有傳入的欄位,未傳入的欄位維持原值。
定位方式(二擇一):page_id(UUID)或 keyword(以名稱查找,僅匹配 1 筆時自動執行)。
依篩選條件查出多筆後,統一更新指定欄位。
filter_status、filter_date、filter_due_date、filter_assignee、filter_project、keyword、page_ids(JSON Array)set_status、set_assignee、set_due_date、set_projectfilter_date="2026-04-15", set_status="已完成"將指定頁面設為 archived。
定位方式(二擇一):page_id(UUID)或 keyword(以名稱查找,僅匹配 1 筆時自動執行)。
依篩選條件查出多筆後,逐筆封存。為避免誤刪,採用兩段式流程:
第一次呼叫(只帶 filter_*,不帶 confirm)→ 回傳 status: "preview" 與命中清單(含 page_ids),不會刪除任何資料。
第二次呼叫有兩種等效方式:
confirm=true + 相同的 filter_* 條件 → 以相同條件重查並執行page_ids(從 preview 回傳取得)→ 跳過確認直接執行filter_status、filter_date、filter_due_date、filter_hours、filter_assignee、filter_project、keyword、filter_logic(and / or,預設 and)page_ids(JSON Array,帶此參數視為已確認)filter_status="已完成" → preview → confirm=truefilter_due_date="2026-04-17" → preview → confirm=truefilter_date="before:2026-04-15" → preview → confirm=true不同 action 對「到期日/狀態/負責人/專案」使用不同前綴,請嚴格依下表選用:
| Action | 設定到期日 | 設定狀態 | 設定負責人 | 設定專案 |
|---|---|---|---|---|
create | due_date | status | assignee | project |
update | due_date | status | assignee | project |
update_batch | set_due_date | set_status | set_assignee | set_project |
list / delete_batch | ❌ 不設定 | ❌ 不設定 | ❌ 不設定 | ❌ 不設定 |
filter_* 前綴只用於篩選(list / update_batch / delete_batch 找出目標),絕不用於設定目標值。
// 錯:把「設定新到期日」誤用為 filter
{"action": "update", "page_id": "xxx", "filter_due_date": "2026-04-17"}
// 錯:單筆 update 用了 update_batch 的 set_ 前綴
{"action": "update", "page_id": "xxx", "set_due_date": "2026-04-17"}
// 單筆更新到期日
{"action": "update", "page_id": "xxx", "due_date": "2026-04-17"}
// 批次更新到期日(依條件篩選後統一設定)
{"action": "update_batch", "filter_date": "2026-04-15", "set_due_date": "2026-04-17"}
// 查詢到期日在某日前的項目
{"action": "list", "filter_due_date": "before:2026-04-17"}
註:為容錯,系統會在
create/update收到filter_*或set_*前綴時自動映射為直接欄位值,但仍請依正確命名呼叫以免語意誤判。
| 參數 | 語法 | 說明 |
|---|---|---|
filter_status | "已完成" | 精確匹配狀態 |
filter_status | "not:已完成" | 排除該狀態(查所有未完成) |
filter_date | "today" | 今天建立的 |
filter_date | "2026-04-15" | 指定日期建立的 |
filter_date | "2026-04-01:2026-04-15" | 日期範圍 |
filter_date | "before:2026-04-15" | 該日之前建立的 |
filter_date | "after:2026-04-15" | 該日之後建立的(含當日) |
filter_due_date | "overdue" | 已逾期 |
filter_due_date | "upcoming" | 未來 7 天內到期 |
filter_due_date | "before:2026-04-15" | 到期日在該日之前 |
filter_due_date | "after:2026-04-15" | 到期日在該日之後 |
filter_due_date | "2026-04-15:2026-04-20" | 到期日範圍 |
filter_hours | "8" | 工時等於 8 |
filter_hours | ">=8" / ">8" | 工時大於等於 / 大於 |
filter_hours | "<=4" / "<4" | 工時小於等於 / 小於 |
filter_hours | "5:10" | 工時範圍 [5, 10] |
filter_logic | "and" (預設) / "or" | 多個 filter_* 以 AND 或 OR 串接 |
| 變數 | 說明 |
|---|---|
NOTION_TOKEN | Notion Integration Token(必要) |
NOTION_DATABASE_ID | 目標 Notion 資料庫 ID(必要) |
OPENAI_API_KEY | 僅 create_batch 的 Schema Mapping 需要 |
所有 action 統一回傳 JSON,含 status 和 action 欄位。