🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Telegram to Google Sheets, receipts logged clean

Lisa Granqvist Partner Workflow Automation Expert

Receipts are never the problem. The chasing, retyping, and “where did that one go?” is. A photo lands in a chat, then it becomes a half-finished spreadsheet row, then it turns into a month-end scramble.

Telegram receipts logging hits small business owners hard, but marketing managers who buy tools constantly feel it too. Same for freelancers who need clean expenses for clients. This workflow turns receipt photos into tidy Google Sheets rows, without the copy-paste.

You’ll see what triggers it, how Mindee extracts the details, and how the sheet stays audit-ready while you get confirmation back in Telegram (plus a text alert when you want it).

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Telegram to Google Sheets, receipts logged clean

The Problem: Receipt data ends up messy (or missing)

Expense tracking falls apart in the boring middle: someone snaps a receipt, someone else forgets to log it, and later you’re squinting at totals and dates from a blurry photo. Even when you do log it, the spreadsheet row is inconsistent. One person types “Uber” as “UBER,” another pastes the total including tip, and somebody misses tax entirely. Then duplicates creep in because the same receipt got forwarded twice. By the time you’re reconciling, you’re not doing “bookkeeping,” you’re doing detective work.

It adds up fast. Here’s where it breaks down.

  • A single receipt can take about 5 minutes to read, type, and double-check, and it’s easy to lose 2 hours a week if you have a steady trickle of small purchases.
  • Manual entry creates inconsistent categories and merchant names, which makes reports unreliable later.
  • Duplicates happen when receipts are shared across chats or submitted twice, and you usually notice only after the damage is done.
  • Missing totals and dates turn into “best guess” bookkeeping, which is exactly what auditors (and accountants) hate.

The Solution: Telegram → Mindee → Google Sheets, with confirmations

This workflow starts the moment you send a receipt photo into Telegram. n8n forwards that image to Mindee through an HTTP request, where the receipt is read and converted into structured data (think merchant, date, total, currency, and other fields you care about). Next, n8n assigns your “expense-ready” fields so every row in your spreadsheet uses the same column names and formatting. Finally, it appends a new line to Google Sheets, then sends you a quick Telegram confirmation so you know it worked. If you want a backstop notification, it can also send a text message via Twilio.

The workflow begins with a Telegram receipt intake trigger. After Mindee extracts the details, n8n cleans and maps them into the columns you’ve chosen. Google Sheets gets the final row, then Telegram (and optionally Twilio) confirms the log entry.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you process 10 receipts a week (coffee meetings, ads, software, parking). Manually, even a conservative 5 minutes each is about 50 minutes, plus extra time when two receipts are missing totals or someone forgets the date. With this workflow, you spend maybe 1 minute sending the photo in Telegram, then wait for processing while you do something else. The Google Sheets row shows up automatically, and you get a confirmation message when it’s logged.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Telegram for receipt photo intake and confirmations
  • Mindee API to extract receipt details reliably
  • Google Sheets as your expense log destination
  • Twilio to send SMS alerts (optional)
  • Mindee API key (get it from your Mindee dashboard)

Skill level: Beginner. You’ll connect accounts, paste an API key, and pick the right spreadsheet columns.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

Receipt intake from Telegram. You send a receipt image to your Telegram bot/chat, and that message triggers the workflow immediately.

Receipt details get extracted. n8n sends the image to Mindee using an HTTP request, then receives structured fields back so you’re not reading totals off a photo.

Your expense fields get cleaned and mapped. A Set step assigns consistent columns (like vendor, date, total, category) so Google Sheets doesn’t become a junk drawer.

Rows are appended and confirmations go out. Google Sheets gets a fresh row, then Telegram sends a “logged” message. If you enable it, Twilio sends a text alert too.

You can easily modify the spreadsheet columns to match your chart of accounts or reimbursement rules based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Telegram Trigger

Set up the workflow entry point so receipt images and messages are captured from Telegram.

  1. Add the Telegram Receipt Intake node as your trigger.
  2. Credential Required: Connect your telegramApi credentials in Telegram Receipt Intake.
  3. Set Updates to * and enable Download in Additional Fields to capture receipt images.
  4. Verify the webhook is generated and active for Telegram Receipt Intake.

Step 2: Connect the Receipt Extraction Service

Send the Telegram receipt image to the extraction API so structured fields are returned.

  1. Add the Receipt Detail Extraction node and connect it to Telegram Receipt Intake.
  2. Credential Required: Connect your httpHeaderAuth credentials in Receipt Detail Extraction.
  3. Set URL to https://api.mindee.net/products/expense_receipts/v2/predict.
  4. Set Request Method to POST and Authentication to headerAuth.
  5. Enable Send Binary Data and set Body Content Type to multipart-form-data.
⚠️ Common Pitfall: If the receipt file isn’t downloaded by Telegram Receipt Intake, the API call will fail. Ensure Download is enabled.

Step 3: Set Up Field Mapping

Normalize the extracted fields so they are ready for spreadsheet and notification outputs.

  1. Add the Assign Expense Fields node after Receipt Detail Extraction.
  2. Set Keep Only Set to true.
  3. Map Category to {{$node["Receipt Detail Extraction"].json["predictions"][0]["category"]["value"]}}.
  4. Map Date to {{$node["Receipt Detail Extraction"].json["predictions"][0]["date"]["iso"]}} and Time to {{$node["Receipt Detail Extraction"].json["predictions"][0]["time"]["iso"]}}.
  5. Map Merchant to {{$node["Receipt Detail Extraction"].json["predictions"][0]["merchant"]["name"]}}.
  6. Map Amount to {{$node["Receipt Detail Extraction"].json["predictions"][0]["total"]["amount"]}} and Currency to {{$node["Receipt Detail Extraction"].json["predictions"][0]["locale"]["currency"]}}.
  7. Map Added by to {{$node["Telegram Receipt Intake"].json["message"]["chat"]["first_name"]}} {{$node["Telegram Receipt Intake"].json["message"]["chat"]["last_name"]}}.

Step 4: Configure Output and Notifications

Store the expense and send confirmation and SMS alerts.

  1. Add Append Expense Spreadsheet after Assign Expense Fields.
  2. Credential Required: Connect your googleSheetsOAuth2Api credentials in Append Expense Spreadsheet.
  3. Set Operation to append, Authentication to oAuth2, Range to A:G, and provide the Sheet ID.
  4. Connect Append Expense Spreadsheet to Telegram Confirmation Notice.
  5. Credential Required: Connect your telegramApi credentials in Telegram Confirmation Notice.
  6. Set Text to =✅ Bill of {{$node["Assign Expense Fields"].json["Amount"]}} {{$node["Assign Expense Fields"].json["Currency"]}} from {{$node["Assign Expense Fields"].json["Merchant"]}}, dated {{$node["Assign Expense Fields"].json["Date"]}} at {{$node["Assign Expense Fields"].json["Time"]}}. Category was {{$node["Assign Expense Fields"].json["Category"]}}. and Chat ID to {{$node["Telegram Receipt Intake"].json["message"]["chat"]["id"]}}.
  7. Connect Telegram Confirmation Notice to Text Alert Dispatch.
  8. Credential Required: Connect your twilioApi credentials in Text Alert Dispatch.
  9. Set To and From to your SMS numbers and set Message to =A receipt worth {{$node["Assign Expense Fields"].json["Amount"]}} {{$node["Assign Expense Fields"].json["Currency"]}} was submitted by {{$node["Assign Expense Fields"].json["Added by"]}} and has been added to the following spreadsheet: https://docs.google.com/spreadsheets/d/{{$node["Append Expense Spreadsheet"].parameter["sheetId"]}}/.
⚠️ Common Pitfall: If Sheet ID is blank in Append Expense Spreadsheet, the SMS link in Text Alert Dispatch will be invalid.

Step 5: Test and Activate Your Workflow

Run a controlled test to confirm each node processes a receipt correctly, then turn on the workflow.

  1. Click Test workflow and send a receipt image to your Telegram bot chat.
  2. Confirm Receipt Detail Extraction returns receipt fields and Assign Expense Fields outputs the mapped data.
  3. Verify a new row is appended in Google Sheets by Append Expense Spreadsheet.
  4. Check that Telegram Confirmation Notice returns a confirmation message and Text Alert Dispatch sends the SMS.
  5. When successful, switch the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Telegram bot permissions can be finicky. If receipts stop triggering, check the bot’s access to the chat and confirm the correct bot token is saved in n8n credentials.
  • If you’re using Wait-like behavior (or Mindee is slow during busy periods), processing times vary. Bump up the waiting/timeout settings if the Google Sheets step runs before extraction data is actually available.
  • Google Sheets failures are often schema-related: renamed columns, moved tabs, or a changed spreadsheet ID. Verify the target sheet and column mapping in the Google Sheets node before assuming the workflow is “broken.”

Frequently Asked Questions

How long does it take to set up this Telegram receipts logging automation?

About 30 minutes if your Telegram bot and Google Sheet are ready.

Do I need coding skills to automate Telegram receipt logging?

No. You’ll mostly paste credentials and map a few fields to your Google Sheets columns.

Is n8n free to use for this Telegram receipts logging workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Mindee API usage and Twilio SMS costs if you enable texts.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Telegram receipts logging workflow for multi-currency expenses?

Yes, but you’ll want to be intentional. You can keep Mindee as-is and adjust the Assign Expense Fields (Set) step to store currency codes and totals in separate columns. Many teams also add a “home currency” column and a manual “FX rate” column for later reconciliation. If you prefer automatic conversion, you can swap in another HTTP Request to a currency-rate API before appending to Google Sheets.

Why is my Telegram connection failing in this workflow?

Usually it’s a bot token issue or the bot was removed from the chat. Recheck the Telegram credentials in n8n, then confirm the bot still has permission to read messages where you’re sending receipts. If it works in one chat but not another, it’s almost always a chat access problem. Also make sure you’re sending a photo/file type the workflow expects, not an album format that arrives differently.

How many receipts can this Telegram receipts logging automation handle?

A lot, as long as your n8n plan and APIs can keep up. On n8n Cloud Starter, you’re limited by monthly executions, so high-volume teams may need a higher plan. If you self-host, there’s no execution cap, but your server resources and Mindee rate limits become the bottleneck. Practically, most small teams can run this all month without thinking about it.

Is this Telegram receipts logging automation better than using Zapier or Make?

Often, yes. n8n is nicer when you want control over data cleanup (like mapping fields, checking conditions, or merging values) without paying extra for every branch. It also gives you self-hosting, which can matter once receipt volume climbs. Zapier or Make can be simpler for a two-step “Telegram to sheet” setup, but receipts usually need extraction and cleanup, which is where n8n earns its keep. If you want help choosing, Talk to an automation expert.

Once receipts flow straight into Google Sheets, you stop babysitting the spreadsheet. Honestly, that’s the whole win.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal