# Automate income and expense tracking in Google Sheets: n8n workflow

> Started by an incoming Telegram message, and works across Google Sheets and Telegram. 27 steps, 4 branches: large, and worth reading before you trust it...

Source: https://millionrounds.com/workflow/automate-income-and-expense-tracking-in-google-sheets (Millionrounds; every figure on the page links to its filing or article)

[Automation library](https://millionrounds.com/workflows) · [Money admin](https://millionrounds.com/workflows?category=Money+admin#library)

# Automate income and expense tracking in Google Sheets

Started by an incoming Telegram message, and works across Google Sheets and Telegram. 27 steps, 4 branches: large, and worth reading before you trust it with anything live.

Large

[Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Fautomate-income-and-expense-tracking-in-google-sheets)

**27 steps** Large: read it before trusting it with anything live

**4** Branches: places the flow splits

**0** Loops or waits

**2** Services it connects to

## The flow

Starts it 1 Logic 13 Service 13

The steps in the order they run, from what starts it.

- 1 **Telegram - Incoming Webhook** Telegram trigger *Starts it*
- 2 **Detect Message Type** Code *Logic*
- 3 **Route by Input Type** Switch *Logic*
- 4 **Handle /start or Message Input** Switch *Logic*
- 5 **Parse Callback Response** Code *Logic*
- 6 **Show Income/Expense Options** Telegram *Service*
- 7 **Validate Input Format** Code *Logic*
- 8 **Route Based on Callback Type** Switch *Logic*
- 9 **Extract Data Type** Code *Logic*
- 10 **Update Approval Status** Google Sheets *Service*
- 11 **Get Row for Detail View** Google Sheets *Service*
- 12 **Show Income Input Format** Code *Logic*
- 13 **Show Expense Input Format** Code *Logic*
- 14 **Route Based on Data Type** Switch *Logic*
- 15 **Get Approved Row** Google Sheets *Service*
- 16 **Format Expense Detail Message** Code *Logic*
- 17 **Send Income Format Message** Telegram *Service*
- 18 **Send Expense Format Message** Telegram *Service*
- 19 **Parse Income Data** Code *Logic*
- 20 **Parse Expense Data** Code *Logic*
- 21 **Notify User of Approval Result** Telegram *Service*
- 22 **Send Expense Detail to Supervisor** Telegram *Service*
- 23 **Save Income to Sheet** Google Sheets *Service*
- 24 **Save Expense to Sheet** Google Sheets *Service*
- 25 **Notify User Income Recorded** Telegram *Service*
- 26 **Notify User Expense Pending** Telegram *Service*
- 27 **Send Approval Request** Telegram *Service*

## How it's built

- **Starts on:** An incoming Telegram message
- **Steps:** 27, with 4 branches
- **Size:** Large: read it before trusting it with anything live
- **Connects to:** Google Sheets, Telegram
- **Model:** None. This is plumbing, not judgement

## Questions

What does it need to run?

An n8n account, plus your own Google Sheets and Telegram accounts. You connect your own accounts after importing it; none are included.

What starts it?

It starts on an incoming Telegram message.

Does it use AI?

No. Every step is fixed logic or a call to a service, so it does the same thing every time.

How long does it take to set up?

Take your time. At 27 steps it is large: read it before trusting it with anything live.

How do I import it?

Copy the workflow, open a new workflow in n8n and paste. The steps appear on the canvas, ready for your own accounts.

**Before you run it**

Nothing here has been tested by us. It is somebody's working automation, read and described from its own steps. Treat the connections it wants as a list of accounts it will touch, and read the 27 steps before you point it at anything that matters.

## Run it in n8n

- **Create your n8n account** Free to start. n8n is where the workflow runs. [Create an n8n account ↗](https://millionrounds.com/n8n)
- **Download the workflow** Free with a Millionrounds account. [Download free](https://millionrounds.com/login?next=%2Fapp%2Fworkflow%2Fautomate-income-and-expense-tracking-in-google-sheets)
- **Paste it into n8n** Open a new workflow in n8n and paste. Then connect your own accounts.

Stored with the author's traces removed: canvas notes, instance identifiers, saved credential names and any live document they had left behind.

## Connects to

Each opens the other workflows that use it.

[Google Sheets](https://millionrounds.com/workflows?service=Google+Sheets#library)[Telegram](https://millionrounds.com/workflows?service=Telegram#library)

## Workflows like it

Also money admin, with the same services where possible, closest in size first.

- [**Deliver digital products with WhatsApp and Telegram** 27 steps · Google Sheets, Telegram](https://millionrounds.com/workflow/deliver-digital-products-with-whatsapp-and-telegram)
- [**Automated invoice processing with Telegram and OpenAI** 27 steps · calls a model · Google Sheets, Telegram](https://millionrounds.com/workflow/automated-invoice-processing-with-telegram-and-openai)
- [**Process and approve invoices with OpenAI and Google Sheets** 27 steps · calls a model · Gmail, Google Sheets](https://millionrounds.com/workflow/process-and-approve-invoices-with-openai-and-google-sheets)
- [**Approve invoices with Claude and Google Drive** 28 steps · Google Drive, Google Sheets](https://millionrounds.com/workflow/approve-invoices-with-claude-and-google-drive)
- [**Kick off client projects after Stripe payment** 28 steps · ClickUp, Gmail](https://millionrounds.com/workflow/kick-off-client-projects-after-stripe-payment)
- [**Generate service quotes with OpenAI and Telegram** 26 steps · calls a model · Gmail, Telegram](https://millionrounds.com/workflow/generate-service-quotes-with-openai-and-telegram)
