Notion記賬財務分析

👤 jimislg 📦 v1.0.5 ⭐ 4.5 ⬇️ 703 下載
📊 資料分析 免費 🔑 需 API Key

📖 技能介紹


name: notion-accounting-analysis description: Notion記賬財務資料分析技能,自動讀取支出收入流水錶,全量翻頁獲取資料,100%解析relation類別欄位,按年月類別標籤多維分析並生成Markdown財務報告。 tags: - notion - finance - accounting - analysis version: 1.0.4


Notion 記賬資料分析 Skill

適用場景:使用者說"分析我的 Notion 記賬資料"、"生成財務報告"、"檢視收支趨勢"時觸發。 前置條件:使用者提供 Notion Integration Token(secret_xxx 格式)和 data_source_id。


核心能力

  1. 全量資料獲取 — 自動翻頁(處理 Notion API has_more),不漏任何記錄
  2. relation 欄位 100% 解析 — 先收集所有 relation ID,再批次併發查詢對應名稱,零遺漏

    小蔥技能站7w4.net發現了升級外掛。

  3. 多維分析 — 按年/月/類別/標籤/大額 TOP 多角度剖析
  4. 智慧報告生成 — 自動輸出 Markdown 報告到 /workspace/,帶最佳化建議
  5. 異常主動提示 — 若 relation ID 無法解析,會列出 ID 並提示如何修復

已知 relation ID → 類別名稱(已驗證)

relation ID(前8位) 對應類別
2e1bd123...817c 房租
2e1bd123...80e8 旅遊娛樂
2e1bd123...8081 房貸
2e1bd123...815a 餐飲
2e1bd123...8004 總記賬
2e1bd123...806f 醫療
2e1bd123...8059 購物
2e1bd123...80d4 所得稅
2e1bd123...817f 交通
2e1bd123...81dd 人情往來
2e1bd123...8084 專項
2e1bd123...810d 運動
2e1bd123...8054 公司額外
2e1bd123...81de 日用

💡 若發現新的 relation ID 查不到名稱:在 Notion 中開啟該記錄頁面 → 右上角 ...Add connections → 新增 Integration 即可。


欄位識別規範(重要踩坑記錄)

支出流水錶通常有兩個分類欄位,優先順序:

欄位 型別 處理方式
支出類別 relation 通過 API 查詢名稱,必須
標籤 select 直接儲存名稱,可用

錯誤:只用 select,忽略 relation → 類別大量丟失。 正確:relation 用 ID 查表,select 直接用,兩者結合覆蓋 100% 類別。


執行流程

第 1 步:確認資料來源

使用者未提供 data_source_id 時,用搜索介面查詢:

curl -s -X POST "https://api.notion.com/v1/search" \
  -H "Authorization: Bearer $NOTION_API_TOKEN" \
  -H "Notion-Version: 2025-09-03" \
  -d '{"query": "支出", "page_size": 20}' \
  | jq '.results[] | {id, title: .properties.Name.title[0].plain_text}'

第 2 步:全量獲取資料(必須翻頁)

// 錯誤:只查第一頁 → 資料不完整
const page = await fetch('/v1/data_sources/{id}/query', {page_size: 100});

// 正確:迴圈直到 has_more = false
let cursor = null;
do {
  const body = cursor ? {page_size:100, start_cursor:cursor} : {page_size:100};
  const page = await fetch('/v1/data_sources/{id}/query', body);
  results.push(...page.results);
  cursor = page.has_more ? page.next_cursor : null;
} while (cursor);

第 3 步:relation ID 批次解析(必須)

// 第一步:收集所有 relation IDs(不重複)
const allIds = [...new Set(results.flatMap(r =>
  (r.properties['支出類別']?.relation || []).map(rel => rel.id)
))];

// 第二步:併發查詢所有 ID(每個只查一次)
const relMap = Object.fromEntries(
  await Promise.all(allIds.map(async id => [id, await resolvePageName(id)]))
);

第 4 步:分析並輸出報告

# 可直接使用附帶的分析指令碼
node analyze.mjs <token> <expense_data_source_id> [income_data_source_id] [year]

常見錯誤處理

現象 原因 解決方案
類別全是"未分類" 只用了 select,relation 全部丟失 改用 relation ID 查表
總支出比預期少 只查了第一頁(100條),還有後續頁 迴圈翻頁直到 has_more=false
relation ID 查不到名稱 記錄不在 integration 可見範圍內 Notion 頁面 → Add connections
金額對不上 select 和 relation 重複計算了同一筆 select 和 relation 只取一個欄位

分析報告模板

# {年份} 年度財務分析報告

> 資料來源:Notion 支出流水錶 & 收入流水錶
> 分析範圍:{年}年({n}筆支出,{n}筆收入)

## 一、收支總覽
## 二、月度趨勢
## 三、類別分析(relation 100% 解析)
## 四、標籤分析
## 五、TOP N 大額支出
## 六、最佳化建議

🤖 AI 評測

這個 Skill 質量很高,文件寫得很詳細,程式碼邏輯清晰,能全自動分析 Notion 記賬資料並生成專業財務報告。最實用的功能是解決了 Notion 分類資料看不明白的問題,能把類別 ID 全部轉換成真實名稱。不足的地方是欄位名是固定寫死的,如果你的記賬表用的是其他欄位名稱,可能需要手動改程式碼才能用,缺少一個簡單的配置檔案來調整這些設定。

📊 多維度評分

適應性4.5
規範性4.5
有效性4.5
可靠性4.4
可信度4.5

📁 包含檔案 (4 個)

📄 README.md 2.6 KB
📄 SKILL.md 4.6 KB
📄 _meta.json 145 B
📄 analyze.mjs 13.3 KB