Skip to main content

AI expense tracker: Telegram voice/photo/text to sheets

Workflow preview

Workflow preview
100%
AI expense tracker: Telegram voice/photo/text to sheets preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

Why I built this? (The Problem) Most expense tracker apps (like Money Lover, Spendee, or Wallet) have a common friction point: Data Entry . You have to unlock your phone, find the app, wait for it ...

Best for

  • Personal Productivity automation workflows
  • AI Chatbot automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.googlesheets, n8n-nodes-base.if, n8n-nodes-base.switch, n8n-nodes-base.code, n8n-nodes-base.set, @n8n/n8n-nodes-langchain.googlegemini, n8n-nodes-base.telegram, n8n-nodes-base.telegramtrigger

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Cuong Nguyen.

Original n8n.io source

1.1 Workflow description

Title
AI expense tracker: Telegram voice/photo/text to sheets
Workflow name
AI expense tracker: Telegram voice/photo/text to sheets

Why I built this? (The Problem)

Most expense tracker apps (like Money Lover, Spendee, or Wallet) have a common friction point: Data Entry. You have to unlock your phone, find the app, wait for it to load, navigate menus, and manually select categories. It’s tedious, so we often forget to log small expenses.

I wanted a solution that lives where I already spend my time: Telegram. This workflow allows you to log expenses in seconds—just by sending a text, a voice note while driving, or a photo of a receipt. No UI navigation required.

Comparison: This Workflow vs. Traditional Apps

Feature Traditional Expense Apps This n8n Workflow
Data Ownership Data is locked in their proprietary database. 100% Yours. It lives in your Google Sheet. You can export, pivot, or connect it to Looker Studio.
Input Speed Slow. Requires multiple taps/clicks. Instant. Send a text/voice/photo to a Telegram bot.
Flexibility Rigid categories & logic. Infinite. You can customize the AI prompt, categories, and currency logic.
Cost Often requires monthly subscriptions for premium features. Low Cost. Runs on your n8n instance + Gemini Flash API (which is currently free/very cheap).
UI/UX Beautiful, pre-built mobile dashboards. Raw Data. You view data in Google Sheets (though you can build a dashboard there)

Key Features

  • Multi-Modal Input: Just send what you have. -- Text: "Lunch 50k, Taxi 30k" (Splits into 2 rows). -- Voice: Speak naturally, AI transcribes and extracts data. -- Photo: OCRs receipts and parses details.

  • Global Currency Support: Uses Gemini AI to intelligently detect currency. You can set a default currency (e.g., USD, VND) in the Config node.

  • Smart Extraction & Categorization: -- Automatically splits multiple items in one message (e.g., "Lunch 20k and Grab 50k" → 2 separate rows). -- AI automatically assigns categories (Food, Transport, Bills, etc.) based on the item name.

  • Budget Management: Use the command /add budget 500 to instantly top up your monthly budget.

  • "Quiet" Reporting: Instead of spamming you after every message, the system waits for 30 minutes of inactivity before sending a daily summary report (Debounce logic).

Setup Instructions

1. Prerequisites

2. Configure the Workflow

  • Credentials: Connect Telegram, Google Sheets, and Google Gemini (PaLM).

  • Config Node: Open the CONFIG - User Settings node and update these fields.

    -- spreadsheet_id: The ID of your copied Google Sheet -- sheet_gid_dashboard: The ID of your sheet Dashboard -- sheet_gid_budget: he ID of your sheet Budget_Topups -- currency_code: Your currency code (e.g., USD, EUR, VND). -- currency_symbol: Your currency symbol (e.g., $, €, ₫). -- locale: Your locale for number formatting (e.g., en-US, vi-VN).

  • Data Table: Create a table in n8n with columns: chat_id, report_token, updated_at (All type: String). Link this table to the relevant nodes in the workflow.

3. Usage

  • Log Expense: Send "Coffee $5" or a photo.
  • Add Budget: Send command /add budget 1000

Need Help or Want to Customize This?

Contact me for consulting and support: Email: [email protected]

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Google Sheets: Get Rows (Dedup lookup)

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 2 - IF (Is Duplicate?)

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.3

Block 3 - Switch (Voice/Photo/Text)

Type / Role
n8n-nodes-base.switch - switch
Config choices
Version 3.4

Block 4 - Code (Restore Telegram Payload)

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 5 - Set (Text Context)

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 6 - Google Gemini Chat (Text → JSON)

Type / Role
@n8n/n8n-nodes-langchain.googleGemini - googleGemini
Config choices
Version 1

Block 7 - Code (Parse Gemini JSON)

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 8 - Code (Split expenses to items)

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 9 - Google Sheets → Append row(s)

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 10 - IF (Has expenses?)

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.3

Block 11 - Set (Photo Context)

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 12 - Code (Pick Best Photo)

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 13 - Code (Normalize Gemini Image Output)

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 14 - Telegram → Send Error Message and wait for response

Type / Role
n8n-nodes-base.telegram - telegram
Config choices
Version 1.2

Block 15 - Telegram → Send Final Message

Type / Role
n8n-nodes-base.telegram - telegram
Config choices
Version 1.2

Block 16 - Google Gemini (Analyze Image)

Type / Role
@n8n/n8n-nodes-langchain.googleGemini - googleGemini
Config choices
Version 1

Block 17 - Set (Voice Context)

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 18 - Telegram → Get Voice File

Type / Role
n8n-nodes-base.telegram - telegram
Config choices
Version 1.2

Block 19 - Telegram → Get Image File

Type / Role
n8n-nodes-base.telegram - telegram
Config choices
Version 1.2

Block 20 - Google Gemini (Analyze Audio)

Type / Role
@n8n/n8n-nodes-langchain.googleGemini - googleGemini
Config choices
Version 1

Block 21 - Code (Normalize Gemini Audio Output)

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 22 - Code (Normalize Gemini Text Output)

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 23 - Switch (Command Router)

Type / Role
n8n-nodes-base.switch - switch
Config choices
Version 3.4

Block 24 - Code (Parse Budget Amount)

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Showing the first 24 of 47 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow AI expense tracker: Telegram voice/photo/text to sheets
Complexity advanced
Nodes 47
Categories Personal Productivity, AI Chatbot
Author Cuong Nguyen
Published 22 Dec 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/12006/12006.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does AI expense tracker: Telegram voice/photo/text to sheets do?

Why I built this? (The Problem) Most expense tracker apps (like Money Lover, Spendee, or Wallet) have a common friction point: Data Entry . You have to unlock your phone, find the app, wait for it ...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Personal Productivity, AI Chatbot use case.