跳至主要內容

里程碑

我用 n8n+LINE 做了一個會幫我寫記帳月報的 AI 小幫手「肯算(KenSuan)」

Ken @kenken0831發布於 已編輯

前言

嗨大家好,我是 Ken,在想我的第一個作品要分享些什麼時,就剛好以上哲課程中的簡單記帳應用去延伸,因為我本身一直有一個很大的痛點,就是我覺得現有的記帳 app,都很難讓我去區分我今天是用了哪些方式支付這些款項的,又或者說,我今天紀錄了付款方式為刷卡,但當中又是刷了 國泰、台新還是富邦銀行的卡呢?
大家應該也很有感,如果手上的卡片多了,每個月收到對帳單的時候都是場惡夢,深怕有一些奇怪的款項跑出來,但自己卻沒有發現,對吧?我也是,所以想說先慢慢把這個 workflow 打造起來,從日常下手 XD

作品介紹

「肯算」是一個 LINE 記帳機器人,背後用 n8n 串接 LINE Messaging API、n8n Data Table(當資料庫)和 Gemini 幫我分析我的支出狀況、給予財務管理建議,以及產出視覺化的月報。在操作上,平常只要很直觀地在 LINE 上用一句話就能記帳。

主要功能

  • 一句話記帳:輸入「品項+金額+付款方式/卡片名稱」,自動判斷類別,品項會存成備註,可以補記昨天或指定日期的帳。
  • 按鈕記帳:不想打字就點「記帳」,依序選類別、金額、付款方式和卡片。
  • 多張信用卡分開記:每筆都記錄是哪張卡刷的,月報會依各卡的帳單週期加總。
  • 修改、撤銷、補備註:記錯了直接在卡片上點「修改」,金額、日期、付款方式、類別、備註都能改。
  • 本月總覽:輸入「本月」就會回一張卡片,有總額、和上月同期的比較、各類別長條圖和最近幾筆紀錄。
  • 每月 1 號自動月報:LINE 上收到視覺化卡片和 AI 分析,信箱收到一份有圓餅圖、每日趨勢、信用卡帳單的 HTML 報表,以及 CSV 備份。

心得

1. 想法是做出來的,不是想出來的

一開始我只想「能記帳就好」。做出第一版之後,才陸續冒出「要能記錄過去的支出」、「要能即時看本月花多少」、「要有跟上個月的支出情況比較」這些需求。很多優化的點子,都是真的在實作的過程中才發現的。

2. 也要學會做減法

過程中我做過「代墊分帳」功能,還嘗試用 LINE 的 LIFF 做跳出式表單。結果 n8n Cloud 會把 webhook 回傳的網頁關進沙箱,LIFF 根本初始化不了,整段代墊流程也越長越複雜(但這段肯定有其他解法,我只是先選擇 pass)。最後我決定先整段拿掉,回到「記帳、修改、分析」這個核心。拿掉之後,整個 workflow 反而清楚很多。

3. 我負責想清楚和把關,AI 負責寫

這個 workflow 裡有不少程式碼,但幾乎都是跟 AI 討論出來的。我覺得很好用的協作模式是:我把想要的功能和遇到的狀況講清楚,AI 提供程式碼,我負責審視、套用、測試。

有幾次我只貼了其中一段程式,結果卡片上的按鈕沒有出現,或是跳出「變數重複宣告」的錯誤。這些經驗逼我去搞懂每個節點各自負責什麼,後來看到錯誤訊息,大概就知道問題出在哪裡。

4. Prompt 的關鍵:數字讓程式算,AI 只負責解讀

月報的 AI 分析一開始我很擔心它亂算數字。所以 prompt 改成:所有金額、比例都由程式先算好,用 JSON 交給 AI,並明確規定「直接引用,不要自行加總,也不要編造資料中沒有的數字」。這樣 AI 寫出來的觀察就可靠很多。

當然,過程當中也有出現跟預期不一樣的地方。像是:AI 在 10 月初回顧 9 月時,寫的卻是「本月的三個重點」,讀起來很混亂。後來我在 prompt 裡規定一律用像「2026 年 9 月」這種年月格式解決這個問題,所以說,動態調整是非常必須的!!

還遇過 AI 明明有輸出,月報上卻顯示「AI 分析暫時無法產生」。最後發現是 AI 節點的輸出欄位名稱和程式讀取的欄位名稱不一樣,這也很值得分享,如果大家遇到問題,先嘗試去看實際的輸出 JSON,不要用猜的,會加速 debug 的速度。

經驗分享

大家應該會發現我的流程裡有一段計算簽章跟驗簽的節點,其實一開始我完全沒想到要做簽章,這是 AI 提醒我的,剛好我最近在複習密碼學,就把這個機制加了進來。

因為 webhook 網址是公開的,任何人只要知道網址,都能假裝成 LINE 送訊息進來。而 userId 只是訊息裡的一段文字,而且它不是密碼,可能從截圖、執行紀錄或分享出去的檔案外流。只要有人拿到我的 userId,就能假裝是我,直接把亂七八糟的款項寫進我的帳本。

簽章的解法很像「只有雙方知道的暗號」,我和 LINE 共用一把密鑰(Channel Secret),LINE 每次送訊息都會用它算出一個「簽章」附上,我收到後自己再算一次比對。對得上,就代表這則訊息真的是 LINE 送的;假冒的人沒有密鑰,就算 userId 填對了,簽章也算不出來。

所以現在肯算有兩道關卡:透過簽章確認「是不是 LINE 送來的」,透過 userId 確認「是不是我本人傳的」。

實作建議

先做出「最小可以用的版本」,用幾天再加功能,不要一開始就想把所有功能做完。
把 AI 當成隊友,而不是代工。你要說得出需求,也要大致看得懂它改了哪裡,出問題時才有辦法一起除錯。

肯算-1.PNG
肯算-2.JPG
肯算-3.PNG
肯算-4.PNG
肯算 workflow.png

4 個愛心1 則留言

登入並驗證手機後就能留言。登入

留言

  1. 上哲 @nuva.ceo

    肯算真的大爆笑 xDDD 而且這個 UI 是怎麼回事氣死人的漂亮,給我出去賣!!!!