用 Telegram 和 Google Sheets 搭建個人記帳機器人

Piotr Grudzień
發布日期 閱讀時間約 14 分鐘
Pocket Ledger 的真實 Telegram 對話,以及顯示 EUR 12.20 和 USD 6.00 的 Google Sheets 彙總表

一杯咖啡、一張公車票、一本筆記本。等到打開試算表時,這些小額消費很容易已經忘了。如果傳一則 Telegram 訊息就能記錄,再傳一則就能查看每月總額呢?

本教學將搭建 Pocket Ledger,一個結合 Google Sheets 的 Telegram 記帳機器人。傳送一筆消費,確認機器人提出的詳細資料,再查詢每月總額。試算表負責儲存記錄和計算,機器人負責對話。以下就是完成後的成果。

第一個目標是儲存一筆咖啡支出,第二個目標是得到可在試算表中核對的總額。你也會了解,聊天回覆中的“已儲存”為什麼只算一半證據。

下載 Pocket Ledger 設定資料包,取得已排版的起始活頁簿、頭像、提示詞、Action 設定和測試清單。將活頁簿匯入 Quickchat AI 建立的試算表,再依照以下步驟操作。可複製的範例統一使用英文和 2026 年 11 月,方便你將結果與截圖對照。

搭建 Telegram 記帳機器人需要什麼?

你需要 Telegram、Google 帳號和 Quickchat AI 帳號。整個設定使用後台設定和試算表公式,無需架設程式。

  1. 建立 Quickchat AI 帳號,完成驗證,然後建立名為 Pocket Ledger 的 Agent。
  2. 準備好用於新試算表的 Google 帳號。先使用下方的虛構記錄。
  3. 為這次練習建立新的 Telegram 機器人。另備一個可信的 Telegram 帳號,用於最後的存取測試。

Quickchat AI 的 Free 方案適用於個人、非商業學習,包含有限額度。AI 對話和 Simulation Testing 都會消耗點數。選擇長期使用的方案前,請檢視當前的方案與額度。

示意圖:一個 Action 寫入支出列,另一個 Action 讀取彙總 兩個方向,兩個 Actions。儲存一列資料,並不代表 Agent 已經能夠讀取先前的總額。

步驟 1:如何連線你的私人 Telegram 機器人?

BotFather 建立機器人的身分,Quickchat AI 提供回覆訊息的 Agent。

開啟官方 @BotFather,傳送 /newbot,將機器人命名為 Pocket Ledger,並選擇一個以 bot 結尾且尚未被使用的使用者名稱。使用 /setuserpic 上傳資料包中的頭像。請妥善保管權杖,稍後直接將它貼到 Quickchat AI。

BotFather 建立 Pocket Ledger 機器人,權杖已遮蔽

選擇顯示名稱和唯一的使用者名稱。BotFather 權杖已遮蔽。

在 Quickchat AI 中開啟 External Apps → Telegram → Your own bot。選擇 Connect to Telegram,將憑據貼上到 Bot Token,然後提交對話方塊。開啟 Enable your own bot 並選擇 Save。BotFather 操作指南詳細展示了相關介面。

Quickchat AI 顯示 Pocket Ledger 已連線,Enable your own bot 開關已開啟 連線的機器人使用同一個 Pocket Ledger 名稱,你也會在 Telegram 中看到它。

在 Telegram 中開啟新機器人的連結,在私訊中先傳送 /start,再傳送 Hello。/start 會傳送歡迎訊息;一般訊息才會建立後續步驟所需的 Inbox 對話與傳送者中繼資料。設定期間,讓涉及個人資料的 Actions 保持停用。

Pocket Ledger 在真實 Telegram 私訊對話中回覆 start 和 Hello

對 Hello 的回覆確認 Telegram 已連通 Quickchat AI。Hello 對話也會出現在 Quickchat Inbox 中。

在 Quickchat AI 的 Inbox → Details → Visitor 中開啟這段對話。找到 Telegram User Id 和 Telegram Chat Type(對應中繼資料鍵為 telegram_user_id 和 telegram_chat_type)。使用游標停留時出現的複製控制項複製數字使用者 ID,並確認聊天類型是 private。

Inbox 訪客詳細資料顯示 Telegram User Id 欄位和設為 private 的 Telegram Chat Type,個人資料已遮蔽 從此欄位取得傳送者 ID。截圖隱藏了個人識別資訊,請使用你自己的實際值。

該 ID 來自 Telegram 傳送者中繼資料。你的使用者名稱、訊息中輸入的數字以及機器人自身的 ID 都不是同一回事。接下來的步驟會用傳送者 ID 限制兩個 Actions。

步驟 2:如何準備 Google 試算表?

Google Sheets 整合會建立一個試算表和一個初始 Action。請沿用該檔案,讓 Action 和 Google 授權指向同一資源。

  1. 開啟 Actions & MCPs → Add Action → Google Sheets,授權你的 Google 帳號。Google Sheets 連線指南解釋了授權與初始設定。
  2. 立即關閉初始 Action。 它建立時已啟用。保留名稱 log_lead_to_google_sheet,因為重新連線時會按此名稱查詢它。我們將把它改為儲存支出。
  3. 開啟建立好的試算表,命名為 Pocket Ledger demo。在這個新的示範檔案中,選擇 File → Import → Upload,從資料包中選取 pocket-ledger-starter.xlsx,再選擇 Replace spreadsheet,然後按一下 Import data。這樣即可在 Quickchat AI 有權存取的檔案中準備好 Expenses 和 Summary。僅在新建的示範試算表中使用此選項。
  4. 核對下方三列起始資料。Summary 中的初始總額應為 EUR 7.70 和 USD 6.00。步驟 6 會說明公式並連接讀取 Action。

Quickchat AI 的 Google Sheets 連線對話框說明將建立的試算表和起始 Action 先連接 Google Sheets。授權流程會建立兩個 Actions 共用的試算表。

想自行建立工作表?將起始工作表重新命名為 Expenses。對於這些英文範例,請設定 File → Settings → Locale → United States。將 A:D 和 F:H 格式設為 Plain text,將 E 設為保留兩位小數的 Number,再將下方內容貼到 A1。凍結標題列並調寬各欄。按照步驟 6 新增 Summary。Google 也提供了將 Excel 活頁簿匯入現有試算表的說明。

複製三筆初始支出
date	month	item	category	amount	currency	note	conversation_url
2026-11-01	2026-11	coffee	food	4.50	EUR	synthetic example
2026-11-02	2026-11	bus ticket	transport	3.20	EUR	synthetic example
2026-11-03	2026-11	notebook	stationery	6.00	USD	synthetic example

Telegram 儲存之前的真實 Expenses 工作表,包含三筆虛構的起始消費 三筆起始支出已就緒,等待第四筆。E 欄的金額是數值,F 欄的幣別代碼是獨立的文字值。

conversation_url 欄會把每筆新支出連結到相應對話。三條手動錄入的範例記錄中,該列保持為空。Google 的 drive.file 權限涵蓋應用建立或明確授權給應用的檔案;此設定使用整合建立的試算表,不會授予存取整個 Drive 的權限。

步驟 3:如何將支出操作限制在你自己的私訊?

為每個讀取或寫入帳本的 Action 設定 Run only when。兩項條件必須同時滿足,所以在群聊中,僅僅匹配你的 ID 還不夠。

中繼資料鍵比較方式值
telegram_user_idequals步驟 1 中取得的真實數字傳送者 ID
telegram_chat_typeequalsprivate
  1. 開啟已停用的 log_lead_to_google_sheet Action,找到 Run only when。
  2. 新增上方兩項條件。使用準確的中繼資料鍵和 ID 數字,不要填使用者名稱或帶 @ 字首的內容。
  3. 儲存 Action,繼續保持停用。步驟 6 建立讀取 Action 時,也要應用相同條件。

支出 Action 編輯器中的所有者 ID 與私訊執行條件 本機示範中儲存 Action 的條件。將虛構 ID 替換為真實傳送者 ID,並在讀取 Action 上重複設定兩項條件。

概念圖:兩個個人資料 Actions 執行前,都必須滿足所有者身分與 Telegram 私訊條件 兩個 Actions 都需要兩項條件。其他傳送者或群聊必須在 HTTP 請求到達 Google Sheets 前被攔截。

這些是由伺服器強制執行的 Action 條件。在提示詞裡寫“只回答我”並不是存取控制。同時也要限制試算表共享範圍和 Quickchat AI 帳號存取權限。

步驟 4:如何讓機器人儲存已確認的支出?

修改初始 Action,使它按試算表欄位順序新增一列。設定 When to run → AI decides,讓它能夠等待確認。啟用前,再為 Agent 設定確認規則。

設定支出欄位

在 What to ask the user first 下,用以下引數替換潛在客戶欄位。引數名稱必須與下方完全一致。

引數格式必填要輸入的描述
dateText是所有者確認的支出日期,格式為 YYYY-MM-DD。缺失時詢問。
monthText是從已確認日期提取 YYYY-MM。
itemText是購買專案的簡短名稱。
categoryText是與所有者確認的簡單類別,例如餐飲或交通。
amountDecimal Number是不帶貨幣符號的正數金額。
currencyText是已確認的 ISO 幣別程式碼,例如 EUR 或 USD。符號含義不明確時先詢問。
noteText否可選備註。未提供時留空。

保留現有 API Endpoint 中的真實試算表 ID。把範圍改為 Expenses!A:H,保留 POST 方法,並在 Query Params 中設定 valueInputOption=RAW 和 insertDataOption=INSERT_ROWS。如果 URL 已有這些查詢設定,請刪除重複項。

複製追加請求參考設定
POST https://sheets.googleapis.com/v4/spreadsheets/YOUR_CREATED_SHEET_ID/values/Expenses!A:H:append
Query Params:
valueInputOption = RAW
insertDataOption = INSERT_ROWS
Headers:
Authorization = Bearer {{google_sheets_access_token}}
Content-Type = application/json

YOUR_CREATED_SHEET_ID 只是說明用佔位符。保留初始 URL 中已有的真實 ID,不要用該佔位符覆蓋。在 Authorization 值中選擇已有的 Google Sheets System Token,並在請求體中選擇內建對話 URL 變數。

在 Body 標籤頁中輸入:

{"values":[["{{date}}","{{month}}","{{item}}","{{category}}","{{amount}}","{{currency}}","{{note}}","{{conversation_url}}"]]}

真實 API Endpoint Body 編輯器中的支出列與引數標籤 本機支出 Action 設定。請求體決定儲存格順序,amount 引數的格式決定其數字類型。

保留編輯器中 {{amount}} 兩邊的引號。 由於這個完整佔位符引用的是 Decimal Number 引數,替換後會生成 4.5 這樣的 JSON 數字。去掉引號會導致編輯器中的 JSON 無效。在最終試算表中,檢查 E 欄是否為數字且已納入公式計算。

Google 的 append API負責新增列。RAW 會把以 = 開頭的備註等內容保留為字面文字,不會當作公式計算。金額類型由數字引數提供。

複製儲存 Action 的描述
Save one personal expense to the configured Google Sheet. Call only after the owner explicitly confirms the proposed date, item, category, amount and currency. Ask for missing or ambiguous fields before saving. After confirmation, append one row once. Report success only after a successful API response. If the outcome is uncertain, tell the owner to inspect the Sheet before submitting again.

為 Pocket Ledger 設定指令

開啟 Identity → Main Prompt 並貼上以下內容。提示詞同時提到兩個 Actions,這樣新增彙總讀取 Action 後,第二個目標就能使用。

Quickchat AI 中 Pocket Ledger 的 Main Prompt 編輯器 Main Prompt 位於 Identity。此本機截圖用於定位欄位;請使用下方完整的可複製文字。

確認規則讓你有時間檢查。在核准這筆消費前,可以將「EUR 4.50」改成「EUR 5.00」;Agent 應更新提案並再次要求確認。

複製 Pocket Ledger 的 Main Prompt
You are Pocket Ledger, a personal expense notebook.

For an expense, collect its date, item, positive amount and ISO currency code. Suggest a simple category and include an optional note only when supplied. Ask for an explicit YYYY-MM-DD date if it is missing or relative; do not guess today's date or the owner's timezone. Clarify ambiguous currency symbols. Derive month as YYYY-MM from the confirmed date.

Show the proposed date, item, category, amount and currency. Wait for explicit confirmation. Apply corrections and ask for confirmation again. Only then call log_lead_to_google_sheet once for that expense. Do not claim it was saved unless the Action succeeds. If a request fails or its outcome is uncertain, explain that and ask the owner to inspect the Sheet before retrying.

For monthly totals, ask for an explicit month and currency when unclear, then call read_expense_summary. Quote the matching month, currency and total returned from the Sheet. Keep currencies separate. A missing summary row is unavailable, not zero. Never calculate totals from remembered conversation messages.

Personal-data Actions are restricted to the owner's private Telegram chat. If a condition blocks an Action, do not claim success or suggest changing identity values in chat. This notebook handles typed expenses, not bank accounts, voice transcription or PDF receipts.

儲存提示詞,再次檢查兩項執行條件,然後啟用支出 Action。名稱仍為 log_lead_to_google_sheet,但新的引數、描述和請求體已定義了記帳流程。

步驟 5:如何儲存第一筆支出?

現在為帳本新增第一筆記錄。保持 Telegram、Inbox 和試算表同時開啟,觀察同一筆咖啡支出如何依序出現在各處。

  1. 在 Telegram 私訊中傳送 Coffee, 4.50 euros on 2026-11-04。
  2. 核對提案:日期為 2026-11-04,品項為 Coffee,類別為 Food,金額為 4.50,幣別為 EUR。Action 儲存記錄時,會將 month 推導為 2026-11。
  3. 確認前檢查 Expenses:此時仍應只有三列起始記錄。

傳送一次 Save it,然後在 Quickchat AI Inbox 中開啟這段對話。儲存成功的回覆旁有可展開的 1 action called。開啟它,查看簡短 Telegram 回覆背後發生了什麼。

Quickchat Inbox 中的咖啡儲存回覆和可展開的 one action called 資訊 Inbox 中的同一則確認回覆,可以展開檢查 Action。

展開 Result → Show full。核對日期、推導出的月份、數值金額、幣別和 HTTP 狀態。本次實際執行中,Google 傳回了 HTTP 200、updatedRows: 1 和 updatedRange: Expenses!A5:H5。

Inbox 中展開的支出 Action 顯示實際輸入和成功新增一列的回應,私人識別資訊已遮蔽 儲存 Action 將金額 4.5 作為數值傳送,並寫入了一列。私人識別資訊已遮蔽,傳回的範圍和結果仍可見。

最後開啟 Expenses。第 5 列應包含同一筆咖啡支出,月份欄為 2026-11,金額為 4.50,幣別為 EUR。最後一欄連結回 Inbox 對話,方便你從記錄追溯到建立它的訊息。

Telegram 確認後的 Google Sheets,Expenses 第 5 列出現了新咖啡支出 第四筆支出透過 Telegram 寫入。發布的圖片已遮蔽私人 Inbox 連結。

至此,你已經有了實用的日常習慣:傳送、確認、核對。接下來,給機器人一個可靠的資料來源,以便回答這個月的錢花到哪裡去了。

步驟 6:如何查詢每月總額?

讓 Google Sheets 計算總額,再由讀取 Action 取得結果。把計算保留在試算表中,即使對話結束,答案仍然可以核對。

新增 Summary 工作表

如果已匯入起始活頁簿,Summary 及其公式都已準備好。初始數值為 EUR 7.70 和 USD 6.00,儲存咖啡支出只會改變 EUR 列。如果手動建立試算表,請依照以下步驟操作。

儲存咖啡之前,起始 Summary 工作表顯示 EUR 7.70 和 USD 6.00 起點:兩種幣別,兩個獨立總額。

  1. 建立名為 Summary 的工作表。將 A:B 欄設為 Plain text,然後在 A1:C1 中輸入 month、currency、total。
  2. 在 A2:B2 中輸入 2026-11 和 EUR,再在 A3:B3 中輸入 2026-11 和 USD。
  3. 將此公式輸入 C2,再向下填充至 C3。將 C 欄設為保留兩位小數的數字格式。
=SUMIFS(Expenses!$E$2:$E$501,Expenses!$B$2:$B$501,A2,Expenses!$F$2:$F$501,B2)

SUMIFS 函式會累加月份和幣別都與彙總列匹配的金額。如果試算表地區設定要求引數間用分號,請將公式中的逗號換成分號。JSON 請求中的數字仍使用小數點。

儲存咖啡後的實際 Summary 公式和更新後的 11 月總額 選取 C2,查看算出 EUR 12.20 的公式。USD 列仍為 6.00。

範例計算分別顯示 11 月 EUR 12.20 與 USD 6.00 初始 EUR 7.70 加上新咖啡的 EUR 4.50,得到 EUR 12.20。USD 6.00 的筆記本計入單獨的總額。

起始公式涵蓋第 2 至 501 列。在此次截圖記錄的執行中,插入新列後,三個範圍都結束於第 502 列。Sheets 可能在插入列時調整參照;請檢查三個 Expenses 範圍是否始終對齊,並在記錄超出涵蓋範圍前一起擴展它們。為你希望查詢的每種月份與幣別組合新增一列彙總。

新增讀取 Action

開啟 Actions & MCPs → Add Action → API Action。使用下方請求並選擇 Generate;生成的 Actions 初始為停用狀態。將其命名為 read_expense_summary,並保持 When to run 為 AI decides,讓結果能夠用於當前回覆。沿用相同的真實試算表 ID 和 Google Sheets System Token,無需使用者提供引數。

複製 Action 建立請求
Create a read-only Google Sheets Action named read_expense_summary. Use GET for the Summary!A1:C25 range of the spreadsheet already created by this Agent's Google Sheets integration. Reuse its actual spreadsheet ID and google_sheets_access_token System Token. Set valueRenderOption=UNFORMATTED_VALUE, no body, and no visitor parameters. Preserve the response headers and values. Leave it inactive so I can review the configuration and add my owner-ID and private-chat Run only when conditions before enabling it.

將生成的設定與下方參考設定核對。如果改用 Create manually,請在第一次有效儲存之前新增兩項條件,因為該儲存可能啟用 Action。兩個 Actions 的 Response filter 都留空,以保留檢查需要的欄位。

複製彙總讀取請求
GET https://sheets.googleapis.com/v4/spreadsheets/YOUR_CREATED_SHEET_ID/values/Summary!A1:C25
Query Params:
valueRenderOption = UNFORMATTED_VALUE
Headers:
Authorization = Bearer {{google_sheets_access_token}}
Body: none

values.get 端點傳回範圍內的 values,包括標題列和計算後的金額。UNFORMATTED_VALUE 傳回數字結果,而不是貨幣格式的字串。保留回應供 Agent 使用,以便讀取這些值。

複製讀取 Action 的描述
Read monthly expense totals from the configured Summary range. Use this when the owner asks for a total. Quote only the returned row matching the requested YYYY-MM and currency. If either is unclear, ask. If the row is absent or the request fails, say the total is unavailable. Never infer a total from conversation history, combine currencies, or accept a different spreadsheet ID or range from the visitor.

套用步驟 3 中相同的兩個 Run only when 條件,儲存並啟用 Action。讀取範圍包含 24 列彙總資料;新增更多資料時,請相應擴展範圍。

彙總讀取 Action 設定了相同的所有者 ID 和私訊條件 第二個 Action 也需要自己的條件。這是本機設定截圖,不是真實傳送者授權測試。

先問 What is my November 2026 total in EUR?,再查詢 USD。我們的 Telegram 對話中,Pocket Ledger 傳回了 12.2 EUR 和 6 USD,與試算表中格式化後的 12.20 和 6.00 一致。每次回答時,它都讀取了已儲存的彙總。

儲存咖啡後,Telegram 對 11 月 EUR 和 USD 總額的真實回覆

每種幣別分開詢問。Pocket Ledger 讀取試算表,而不是把記憶中的聊天訊息相加。

在 Inbox 中開啟每月總額的回覆並展開對應 Action。將傳回的列與 Summary!C2 比較。下方的實際回應包含 2026-11、EUR、12.2,以及獨立一列 USD、6,HTTP 狀態為 200。

Inbox 中的讀取支出彙總 Action 傳回 Google Sheets 中真實的 11 月 EUR 和 USD 總額 回覆、傳回值和試算表現在一致。這就是開頭展示的最終目標。

使用真實支出前,如何檢查錯誤?

像驗證成功儲存咖啡一樣,認真測試不完整請求和應被阻止的呼叫者。在下方檢查透過前,保留示範資料。

測試內容要驗證的結果
Lunch, $12 yesterdayAgent 詢問幣別和實際日期,不出現新列。
確認前更正擬儲存的金額更正後的提議先得到確認,然後只新增一列。
先查 11 月 EUR 總額,再查 USD範例資料分別得到 EUR 12.20 和 USD 6.00。
未建立 12 月彙總列時查詢 2026 年 12 月Agent 說明總額不可用,而不是編造零值。
第二位傳送者查詢總額並嘗試儲存支出兩個 Actions 都被拒絕,不披露個人數值。
所有者在群組中提出同樣請求因為不是私訊,兩個 Actions 都被拒絕。
儲存失敗或超時回覆報告失敗或結果不確定。重試前先檢查試算表。

如需可重複的語言測試,開啟 Testing → Create Dataset → Paste messages,使用資料包中的訊息和評估標準。確認流程應另外透過一段完整對話測試。Preview 或 Simulation 中提供的中繼資料屬於測試資料,不能證明真實的第二位 Telegram 傳送者被攔截。

Quickchat AI 真實 Testing 介面中的 Pocket Ledger 測試資料集 本機資料集已準備好用於測試。它的存在不代表 Simulation 已完成,也不能證明 Google Sheets 已發生寫入。

如果行為不符合預期,修改一條相關指令,再用相同輸入重測,重新檢查呼叫和試算表。例如,提前追加資料時,應檢查儲存 Action 中要求確認的措辭。確認是一條指令,不是資料庫唯一性保證。 超時後,檢查試算表比再次傳送更重要。

流程驗證透過後,刪除虛構支出列,保留標題和公式,併為實際使用的月份與幣別新增彙總列。第一筆真實消費可以沿用記錄咖啡的同一套小步驟。

AI 助手能幫忙設定 Pocket Ledger 嗎?

已連線帳號管理功能的助手可以幫助準備 Agent 並檢查 Action 設定。透過 Quickchat AI 的 ChatGPT 頁面或 Claude 頁面,按照 Manage with AI 操作。將資料包和以下請求交給它:

Help me configure Pocket Ledger from this setup kit. Inspect the available Quickchat AI tools first. Prepare the Main Prompt and the two HTTP Actions using the exact field names, numeric amount type and fixed ranges. Keep log_lead_to_google_sheet as the starter name. Ask me to complete Google OAuth and Telegram Bot Token setup in the dashboard. Apply both owner/private run conditions before enabling either Action. Do not run credit-consuming tests or append expenses until I ask. Report any setting your tools cannot configure so I can complete it in the dashboard.

Google 授權和 Telegram 連線由所有者完成。無論設定是誰輸入的,都要複核並執行上方相同的檢查。

常見問題

如何用 Telegram 和 Google Sheets 記錄支出?

將 Telegram 機器人連線到 Quickchat AI Agent,並授權 Google Sheets。設定一個在確認後追加支出的 Action,以及一個讀取公式計算每月彙總的 Action。兩個 Actions 都只允許你的 Telegram 使用者 ID 在私訊中使用。

機器人能告訴我這個月花了多少錢嗎?

可以,前提是請求的月份和幣別在設定的 Summary 範圍內有對應列。Google Sheets 用 SUMIFS 計算總額,再由讀取 Action 取得。只有新增功能的 Action 無法查詢總額,缺少彙總列也不等於零。

別人能透過 Telegram 機器人檢視我的支出嗎?

兩個涉及個人資料的 Actions 都必須要求已驗證的 telegram_user_id 與你的 ID 匹配,且 telegram_chat_type 等於 private。這些條件會阻止其他傳送者和群組呼叫。新增個人資料前測試這兩種情況,並限制試算表和 Quickchat AI 帳號的存取權限。

這個 Telegram 記帳機器人免費嗎?

建立 Telegram 機器人是免費的。Quickchat AI 的 Free 方案支援個人、非商業學習,提供有限的 AI 點數。AI 回覆和 Simulation Testing 都消耗點數;長期使用取決於可用額度和方案。

需要 Apps Script、Python 或自動化伺服器嗎?

此設定使用 Quickchat AI Actions 和 Google Sheets 公式。你只需把提供的請求設定、JSON 請求體和提示詞貼上到後台,無需部署 Apps Script、Python 機器人或自動化伺服器。

可以使用已有的記帳試算表嗎?

此設定使用 Quickchat AI Google Sheets 整合建立的試算表。drive.file 授權不會讓它無限制存取你的 Drive。不要把試算表 ID 替換成任意已有檔案的 ID,並假定該檔案可存取。

機器人能讀取收據照片或語音訊息嗎?

本教程僅涵蓋輸入文字的支出記錄。使用收據提取前,需要單獨驗證 Telegram 圖片傳遞和確認流程。語音轉寫和 PDF 收據解析不屬於此設定。

如何處理不同幣別和重複記錄?

每種幣別都有獨立的每月總額,此設定不會換算貨幣。確認可以減少誤錄,但不能實現原子級重複寫入防護。儲存超時後,請先檢查試算表,再決定是否重發。

Quickchat AI Quickchat AI Ask Quickchat AI a question