← All selected work

PERSONAL PROJECT · USED DAILY

An expense ledger that starts with a conversation.

A conversational expense tracker built around the habit of opening Telegram, with a spreadsheet ledger behind it.

The problem

Logging purchases meant opening a separate app or spreadsheet and entering the same details repeatedly. I wanted a simpler way to keep records within a tool I already used.

What I built

An Apps Script webhook receives messages and voice notes from Telegram. The workflow transcribes audio, extracts transaction details, presents category buttons, and writes confirmed entries to Google Sheets.

Designed for everyday use

Categories are read from the spreadsheet. Missing details trigger a follow-up prompt, temporary transcription errors use retry logic, and a short deduplication window helps prevent repeated webhook deliveries from creating duplicate transactions.

Results and context

This is my personal system, used for daily tracking. The case study describes an under-five-second logging target and a free-tier setup. I have not published a timed test dataset or response-rate audit, so these are not presented as independently verified benchmarks.

Actual Telegram interface: categories, confirmations, and balance requests.
Actual Telegram interface: categories, confirmations, and balance requests.
The corresponding Google Sheets ledger and dashboard.
The corresponding Google Sheets ledger and dashboard.
← Back to selected workDiscuss your workflow ↗