AutomationFlowsAI & RAG › Track & Query Expenses via Telegram with Gpt-4.1 Mini & Google Sheets

Track & Query Expenses via Telegram with Gpt-4.1 Mini & Google Sheets

BySridevi Edupuganti @edupuganti on n8n.io

Track and query your expenses effortlessly through Telegram using voice or text messages. This AI-powered workflow transcribes voice input via AssemblyAI, processes transactions with a GPT-4.1 mini agent, stores data in Google Sheets with comprehensive timestamp metadata, and…

Event trigger★★★★★ complexityAI-powered32 nodesTelegram TriggerTelegramHTTP RequestGoogle SheetsGoogle Sheets ToolGmail ToolOpenAI ChatMemory Buffer Window
AI & RAG Trigger: Event Nodes: 32 Complexity: ★★★★★ AI nodes: yes Added:

This workflow corresponds to n8n.io template #10290 — we link there as the canonical source.

This workflow follows the Agent → Gmail Tool recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Track & Query expenses via Telegram (voice,text) to Google Sheets using AI",
  "tags": [],
  "nodes": [
    {
      "id": "928d4973-7705-45a1-af7f-6c371c15c53a",
      "name": "Telegram Input",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        1136,
        624
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "66532cda-8c54-4d31-85ae-b45446c6eadb",
      "name": "Route by Message Type",
      "type": "n8n-nodes-base.switch",
      "position": [
        1120,
        992
      ],
      "parameters": {},
      "typeVersion": 3.3
    },
    {
      "id": "9dda6df0-0fee-4915-9fe4-4c92db2b509d",
      "name": "Check Voice Quality",
      "type": "n8n-nodes-base.switch",
      "position": [
        1392,
        720
      ],
      "parameters": {},
      "typeVersion": 3.3
    },
    {
      "id": "153bd166-5b09-4ff3-915a-336b8ee7d324",
      "name": "Send Processing Notification (Voice)",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1600,
        592
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "e232b913-1fa2-4a1a-86d2-40610ddec858",
      "name": "\ud83c\udf99\ufe0f Download Voice File",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1600,
        848
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "08f5bd90-2114-411f-ad25-caf8bab96526",
      "name": "Upload to AssemblyAI",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1792,
        848
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "afc541b4-95a5-463a-955e-886df059f716",
      "name": "Start Transcription",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1952,
        784
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "28660a57-ba29-4d2d-8707-92d161e5d1ff",
      "name": "Get Transcription Result",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2304,
        784
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "e9dff5cb-bc4a-41ce-808e-e89b51e5f07a",
      "name": "Check Transcription Status",
      "type": "n8n-nodes-base.if",
      "position": [
        2480,
        848
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "038f48cd-31a4-4260-8a4b-00df77f2d6d8",
      "name": "Send Processing Notification (Text)",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1424,
        1248
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "83705fc8-e107-4ae2-8ee3-eaeeda79388f",
      "name": "Read Transaction History",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2784,
        1248
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "32632cc1-c07e-4540-a43a-c0d77add2ea2",
      "name": "Calculate Starting Balance",
      "type": "n8n-nodes-base.code",
      "position": [
        2992,
        880
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "6131fee5-c38a-4747-8cc0-1278d50643aa",
      "name": "Append Transaction to Sheet",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        3296,
        1376
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "abffd5e5-5e62-479e-bc88-af3ee0b905d7",
      "name": "Read Sheet for Queries",
      "type": "n8n-nodes-base.googleSheetsTool",
      "notes": "Use this tool to read transaction data from the expense tracker sheet. You can retrieve all rows to answer questions about past transactions, spending patterns, categories, etc",
      "position": [
        3504,
        1440
      ],
      "parameters": {},
      "typeVersion": 4.7
    },
    {
      "id": "c6e7ad47-880e-4367-b113-c684ccbca564",
      "name": "Send Low Balance Alert",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        3664,
        1408
      ],
      "parameters": {},
      "typeVersion": 2.1
    },
    {
      "id": "fc266481-df01-4290-b9c2-6f6641dfc64e",
      "name": "GPT-4.1 Mini Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2944,
        1392
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "e9096a27-8871-40d0-957a-14eb3d55e771",
      "name": "Conversation Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        3104,
        1424
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "8a70e794-f277-46d0-adf3-e267099b85fd",
      "name": "Generate Voice Response",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3920,
        1152
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "14fe0eec-939d-484a-8596-c73bde3d1d21",
      "name": "Send Voice to Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        4256,
        1008
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "6243945a-fdee-4b23-a1a3-eb3a4e097c65",
      "name": "Send Text to Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        4272,
        1280
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "94fb4c69-b912-49a8-9352-eca8e33df3c5",
      "name": "AI Expense Analyzer",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        3248,
        880
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "1604833f-0ae6-4a24-945e-bf8155993bf1",
      "name": "Wait for Transcription",
      "type": "n8n-nodes-base.wait",
      "position": [
        2128,
        848
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "b0f405ba-57a6-491d-a670-2e99c31db2cb",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        400
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "154c57ad-7b0e-4c30-b421-6a192515d6a4",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1344,
        400
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "66792e3d-2ca6-4188-aa36-067f92d53b7d",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1344,
        1104
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "0b47e1f5-7df9-47c4-b9fd-ac4a6bf52ae9",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2656,
        400
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "a0fe4d11-718b-46fa-b6bf-efaac2b9ae09",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3792,
        400
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "6673d4bf-2a4a-4539-abac-a5c625541f7d",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3824,
        944
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "4d5f85bd-70fa-4ede-b4e1-bbfaebd0c6b0",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3824,
        608
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "a892b23a-920e-4d29-ae59-6d06b6e61f45",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "02d8a9e8-e6eb-4ec8-93da-4266954653af",
      "name": "Track API Costs",
      "type": "n8n-nodes-base.code",
      "position": [
        3920,
        704
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "cd0f2050-720d-4ba1-8e26-63fc541c9c20",
      "name": "Log Cost to Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        4208,
        704
      ],
      "parameters": {},
      "typeVersion": 4.7
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "Telegram Input": {
      "main": [
        [
          {
            "node": "Route by Message Type",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Track API Costs": {
      "main": [
        [
          {
            "node": "Log Cost to Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GPT-4.1 Mini Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Expense Analyzer",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Expense Analyzer": {
      "main": [
        [
          {
            "node": "Generate Voice Response",
            "type": "main",
            "index": 0
          },
          {
            "node": "Track API Costs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Voice Quality": {
      "main": [
        [
          {
            "node": "Send Processing Notification (Voice)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "\ud83c\udf99\ufe0f Download Voice File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Conversation Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Expense Analyzer",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Start Transcription": {
      "main": [
        [
          {
            "node": "Wait for Transcription",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to AssemblyAI": {
      "main": [
        [
          {
            "node": "Start Transcription",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Message Type": {
      "main": [
        [
          {
            "node": "Check Voice Quality",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send Processing Notification (Text)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Sheet for Queries": {
      "ai_tool": [
        [
          {
            "node": "AI Expense Analyzer",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Send Low Balance Alert": {
      "ai_tool": [
        [
          {
            "node": "AI Expense Analyzer",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Transcription": {
      "main": [
        [
          {
            "node": "Get Transcription Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Voice Response": {
      "main": [
        [
          {
            "node": "Send Voice to Telegram",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send Text to Telegram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Transcription Result": {
      "main": [
        [
          {
            "node": "Check Transcription Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Transaction History": {
      "main": [
        [
          {
            "node": "Calculate Starting Balance",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calculate Starting Balance": {
      "main": [
        [
          {
            "node": "AI Expense Analyzer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Transcription Status": {
      "main": [
        [
          {
            "node": "Read Transaction History",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait for Transcription",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append Transaction to Sheet": {
      "ai_tool": [
        [
          {
            "node": "AI Expense Analyzer",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "\ud83c\udf99\ufe0f Download Voice File": {
      "main": [
        [
          {
            "node": "Upload to AssemblyAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Processing Notification (Text)": {
      "main": [
        [
          {
            "node": "Read Transaction History",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Track and query your expenses effortlessly through Telegram using voice or text messages. This AI-powered workflow transcribes voice input via AssemblyAI, processes transactions with a GPT-4.1 mini agent, stores data in Google Sheets with comprehensive timestamp metadata, and…

Source: https://n8n.io/workflows/10290/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato 2. Uses @blotato/n8n-nodes-blotato, googleSheets, lmChatOpenAi, toolThink. Event-driven trigger; 94 nodes.

@Blotato/N8N Nodes Blotato, Google Sheets, OpenAI Chat +9
AI & RAG

This project is a template for building a complete academic virtual assistant using n8n. It connects to Telegram, answers frequently asked questions by querying MongoDB, keeps the community informed a

Telegram, MongoDB, Telegram Trigger +6
AI & RAG

Telegram Trigger receives incoming messages (text, voice, photo, document). Switch routes by message type to appropriate processors: Text → forwarded as-is. Voice → downloaded and sent to Transcribe a

Memory Buffer Window, Telegram Trigger, Telegram +12
AI & RAG

Transform your Telegram messenger into a powerful, multi-modal personal or team assistant. This n8n workflow creates an intelligent agent that can understand text, voice, images, and documents, and ta

Memory Buffer Window, Telegram Trigger, Telegram +10
AI & RAG

Digital marketers, content creators, social media managers, and businesses who want to use AI marketing automation for YouTube Shorts without spending hours on production. This AI workflow helps anyon

OpenAI, HTTP Request, OpenAI Chat +7