Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Telegram + Google Sheets: kvitton loggas och sorteras

Rickard Andersson Partner, Nodenordic.se

Kvitton samlas snabbt på hög. Sedan tappar du en halv eftermiddag på att skriva in summor igen, gissa kategorier och rätta “oops”-misstag som smyger sig in i ditt kalkylark.

Frilansare känner av det vid deklarationen. En småföretagare känner av det varje vecka. Och om du driver kundops på en byrå blir kvittologgning i Telegram ytterligare en “snabb uppgift” som i tysthet äter upp din dag.

Det här arbetsflödet gör om Telegram-meddelanden (bilder eller text) till strukturerade, kategoriserade poster i Google Sheets och skickar sedan en korrekt formaterad sammanfattning tillbaka i chatten. Du får lära dig vad det gör, vad du behöver och hur du kör det stabilt.

Så fungerar den här automatiseringen

Här är hela arbetsflödet du kommer att sätta upp:

n8n Workflow Template: Telegram + Google Sheets: kvitton loggas och sorteras

Varför det här spelar roll: utgiftsspårning som inte urartar

Manuell utgiftsspårning fallerar på tråkiga, dyra sätt. Du planerar att logga kvitton “senare”, men senare blir fredag kväll eller månadsskifte, när du är trött och stressar. En suddig bild ligger i kamerarullen, papperskvittot bleknar och transaktionen dyker upp som ett kryptiskt butiksnamn i bankflödet. Även om du faktiskt matar in allt får du ändå inkonsekventa kategorier, saknade datum och totalsummor som inte matchar kvittot eftersom du råkade trycka fel på en siffra. Multiplicera det med varje kaffeköp, leverantörsinköp eller taxiresa. Det är inte svårt arbete. Det är oändligt arbete.

Friktionen byggs på. Här är det som brukar skapa fel.

  • Du lägger cirka 5 minuter per kvitto bara på att kopiera grunderna (butik, datum, total), och det blir timmar vid månadens slut.
  • Kategorierna glider eftersom du gör bedömningar i stunden, vilket gör att raden “Mat” till slut döljer prenumerationer och förbrukningsmaterial.
  • Kvittofoton hamnar lite varstans, så att bevisa ett köp senare blir en skattjakt.
  • En missad nolla eller en siffra på fel plats kan sabba utgiftssammanfattningar, och du märker det inte förrän du redan bygger rapporter.

Det du bygger: Telegram-kvitton till kategoriserade rader i Sheets

Du sätter upp en automatisering som lyssnar på meddelanden som skickas till din Telegram-bot. Om du skickar en textutgift tas den som den är. Om du skickar ett kvittofoto hämtar arbetsflödet bilden från Telegram och kör OCR (textigenkänning) med Tesseract, vilket gör om bilden till kopierbar text. Därefter tolkar en AI-modell (via OpenRouter) underlaget, extraherar viktiga fält (butik, plats, datum, artiklar, total) och tilldelar en kategori som Mat & dryck, Hushåll eller Transport. Till sist får du en formaterad sammanfattning tillbaka i Telegram och en korrekt strukturerad rad sparad i Google Sheets så att din utgiftsspårning förblir konsekvent utan daglig handpåläggning.

Arbetsflödet börjar med ett Telegram-meddelande. Det routar meddelandet baserat på “foto vs text”, och standardiserar sedan allt till en enda strukturerad payload. Därifrån parsar och kategoriserar AI:n, och du får antingen en sammanfattning eller en felvarning om totalsumman är ogiltig.

Det du bygger

Förväntade resultat

Säg att du loggar 10 kvitton i veckan. Manuellt tar även en noggrann process cirka 5 minuter per kvitto, så du lägger nästan en timme bara på att mata in data (och det är innan du rättar fel). Med det här arbetsflödet skickar du en bild eller en kort text till Telegram på cirka 30 sekunder och väntar sedan på sammanfattningen medan arket uppdateras i bakgrunden. Du får tillbaka ungefär 45 minuter varje vecka, och dessutom slipper du den där “städspurten” vid månadsskiftet.

Innan du börjar

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Telegram för att ta emot kvittofoton och texter
  • Google Sheets för att lagra korrekta, strukturerade utgiftsrader
  • OpenRouter API-nyckel (hämta den i din OpenRouter-dashboard)

Svårighetsnivå: Nybörjare. Du kopplar in behörigheter, klistrar in en API-nyckel och väljer rätt Google Sheet och kolumner.

Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).

Steg för steg

Ett Telegram-meddelande triggar allt. Din bot tar emot antingen en textbeskrivning (“Köpte kaffe på…”) eller ett kvittofoto. Den enda ingången gör vanan lätt att hålla fast vid.

Arbetsflödet avgör: foto eller text. Om det finns en bild hämtar n8n Telegram-filen och laddar ner själva bilddatan. Om det är ren text mappar arbetsflödet in den i en standardiserad payload så att den kan behandlas på samma sätt senare.

OCR och AI gör röran strukturerad. Tesseract läser kvittotext från bilden, sedan klassificerar en OpenRouter-chattmodell utgiften och extraherar fält som butik, datum, artiklar, total och kategori. En strukturerad parser håller utdata konsekvent så att ditt ark inte fylls av slumpmässiga format.

Du får en sammanfattning och korrekt loggning. Ett kodsteg bygger ett tydligt sammanfattningsmeddelande för Telegram, och en kontroll av “ogiltig totalsumma” routar till antingen en felvarning eller den slutliga sammanfattningen. Den strukturerade datan skrivs också till Google Sheets för rapportering och avstämning.

Du kan enkelt ändra kategorilistan och sammanfattningsformatet efter dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: konfigurera Telegram-triggern

Konfigurera arbetsflödet så att det lyssnar efter nya Telegram-meddelanden som indata för utgifter och kvitton.

  1. Lägg till noden Telegram Intake Trigger i ert arbetsflöde.
  2. Autentiseringsuppgifter krävs: anslut era telegramApi-uppgifter.
  3. I Telegram Intake Trigger låter ni Updates vara inställt på message (som i arbetsflödet).
  4. Lämna Flowpast Branding som en referensnotering (ingen konfiguration behövs).

Steg 2: routa text- kontra bildindata

Dela upp flödet baserat på om inkommande Telegram-meddelande innehåller ett foto och hämta samt OCR-tolka bilder när de finns.

  1. Konfigurera Detect Image Presence för att kontrollera om det finns ett foto, med Left Value satt till {{ $json.message.photo }} och operatorn exists.
  2. Notera att Detect Image Presence skickar utdata parallellt till både Retrieve Telegram File och Map Text Payload.
  3. I Retrieve Telegram File ställer ni in URL till =https://api.telegram.org/bot[CONFIGURE_YOUR_TOKEN]/getFile?file_id={{ $json.message.photo[3].file_id }}.
  4. I Fetch Image File ställer ni in URL till =https://api.telegram.org/file/bot[CONFIGURE_YOUR_TOKEN]/{{ $node['Retrieve Telegram File'].json['result']['file_path'] }} och behåller Response Format som file.
  5. Koppla Fetch Image File till OCR Image Text för att extrahera text från kvitton.
  6. I Map Text Payload mappar ni meddelandetexten till parserns indata med message satt till {{ $json.message.text }}.

⚠️ Vanlig fallgrop: ersätt [CONFIGURE_YOUR_TOKEN] i URL:erna för både Retrieve Telegram File och Fetch Image File med er riktiga Telegram-bot-token, annars kommer filnedladdningarna att misslyckas.

Steg 3: konfigurera AI-klassificering och parsning

Använd AI-kedjan för att klassificera utgiftstext och säkerställa strukturerad utdata för sammanfattningar.

  1. I Classify Expense Input ställer ni in Text till {{ $json.text }} och behåller Prompt Type som define.
  2. Säkerställ att Classify Expense Input har Has Output Parser aktiverat och är kopplad till Structured Receipt Parser.
  3. Behåll schemat i Structured Receipt Parser som det är angivet i JSON Schema Example för att normalisera butik, varor och totalsummor.
  4. Autentiseringsuppgifter krävs: anslut era openRouterApi-uppgifter i OpenRouter Chat Model.
  5. OpenRouter Chat Model är kopplad som språkmodell för Classify Expense Input — säkerställ att autentiseringsuppgifterna läggs till i OpenRouter Chat Model, inte i parserns subnod.

Steg 4: skapa sammanfattningen och validera totalsummor

Skapa en användarvänlig sammanfattning från parsade data och upptäck fel när totalsumman är noll.

  1. Använd Compose Summary Note för att formatera utdata; behåll den angivna JavaScript Code som bygger meddelandet och hanterar nolltotalsummor.
  2. Koppla Classify Expense Input till Compose Summary Note så att parsat utdata omvandlas till sammanfattningsmeddelandet.
  3. I Validate Zero Total behåller ni villkoret där Left Value är {{ $json.message }} och är lika med felsträngen.

Steg 5: konfigurera utdataåtgärder

Skicka antingen en felvarning eller en lyckad utgiftssammanfattning till användaren baserat på valideringsresultatet.

  1. I Dispatch Error Alert ställer ni in Text till =hello {{ $('Telegram Intake Trigger').item.json.message.from.first_name }} {{ $json.message }} och Chat ID till {{ $('Telegram Intake Trigger').item.json.message.chat.id }}.
  2. Autentiseringsuppgifter krävs: anslut era telegramApi-uppgifter i Dispatch Error Alert.
  3. I Send Expense Recap ställer ni in Text till =hello {{ $('Telegram Intake Trigger').item.json.message.from.first_name }} Ini Rekap Belanjamu {{ $json.message }} och Chat ID till {{ $('Telegram Intake Trigger').item.json.message.chat.id }}.
  4. Autentiseringsuppgifter krävs: anslut era telegramApi-uppgifter i Send Expense Recap.

Steg 6: testa och aktivera ert arbetsflöde

Verifiera hela flödet med både textbaserade och bildbaserade kvitton och aktivera det sedan för produktionsanvändning.

  1. Klicka på Execute Workflow och skicka ett Telegram-meddelande till er bot med utgiftstext för att verifiera vägen Map Text PayloadClassify Expense Input.
  2. Skicka en kvittobild för att testa Retrieve Telegram FileFetch Image FileOCR Image TextClassify Expense Input.
  3. Bekräfta lyckade körningar genom att ta emot sammanfattningsmeddelandet från Send Expense Recap och felmeddelanden från Dispatch Error Alert när totalsummor är noll.
  4. När ni är nöjda, växla arbetsflödet till Active för kontinuerligt Telegram-intag.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Tips vid felsökning

  • Telegram-inloggningar kan löpa ut eller kräva specifika behörigheter. Om det slutar fungera, kontrollera din n8n-post under Credentials för Telegram API och bekräfta först att BotFather-token fortfarande är korrekt.
  • Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att redigera utdata för alltid.

Snabba svar

Hur lång tid tar det att sätta upp den här automatiseringen för kvittologgning i Telegram?

Cirka 30 minuter om din bot och ditt ark redan är klara.

Behövs kod för att få till den här kvittologgningen?

Nej. Du kopplar främst konton och klistrar in en API-nyckel.

Är n8n gratis att använda för det här arbetsflödet för kvittologgning i Telegram?

Ja. n8n har ett gratis self-hosted-alternativ och en gratis testperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna med OpenRouter-användning (ofta en lågkostnads- eller gratisnivåmodell, beroende på vad du väljer).

Var kan jag hosta n8n för att köra den här automatiseringen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och klarar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för kvittologgning i Telegram för andra use cases?

Ja, och det bör du troligen. De flesta börjar med att redigera kategorilistan i AI-steget “Classify Expense Input” och justerar sedan koden i “Compose Summary Note” så att sammanfattningen matchar hur de granskar utgifter. Om du inte behöver OCR kan du hoppa över bildgrenen helt och bara behålla spåret “Map Text Payload”. Du kan också byta ut loggningen i Google Sheets mot en annan databas senare och ändå behålla Telegram som intake.

Varför misslyckas min Telegram-anslutning i det här arbetsflödet?

Oftast är det en ogiltig eller roterad bot-token. Kontrollera token från BotFather igen och bekräfta att rätt Telegram-inloggning är vald både i Telegram Trigger och i noden “Send Expense Recap”. Om bilder inte laddas ner kan det också vara ett behörighetsproblem vid filhämtning eller en trasig Telegram-fil-URL, så granska exekveringsdatan runt “Retrieve Telegram File”.

Vilken volym kan det här arbetsflödet för kvittologgning i Telegram hantera?

För de flesta små team fungerar hundratals kvitton i månaden fint, och self-hosting tar bort exekveringsgränser helt.

Är den här automatiseringen för kvittologgning i Telegram bättre än att använda Zapier eller Make?

Ofta ja, eftersom det här arbetsflödet har grenar (foto vs text), OCR, strukturerad parsning och felhantering som lätt blir både krångligt och dyrt i enklare automationsverktyg. n8n ger dig också mer kontroll över hur data formas innan den hamnar i Google Sheets, vilket är där röriga loggar vanligtvis börjar. Nackdelen är uppsättning: OCR här använder en community-nod, så self-hosting ger den smidigaste upplevelsen. Om allt du behöver är “meddelande till rad i Sheets” kan Zapier eller Make gå snabbare. Prata med en automationsexpert om du vill ha hjälp att välja.

När det här väl rullar slutar kvitton vara en helgsyssla. Ditt ark förblir strukturerat, dina sammanfattningar förblir lättlästa och du får tillbaka tiden utan att behöva förlita dig på viljestyrka.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal