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

Gmail + Telegram till Google Sheets – utgifter loggas

Rickard Andersson Partner, Nodenordic.se

Utgiftsspårning faller isär på tråkiga sätt. Du missar en liten UPI-avgift, du glömmer en kontantnotering du sms:ade till dig själv och plötsligt är din ”budget” bara ett hoppfullt kalkylark som du uppdaterar en gång i månaden.

Den här automationen för utgiftsloggning slår hårdast mot upptagna grundare och hushållsansvariga, men marknadschefer som kör teamkort och ops-personer som stämmer av verktyg känner det också. Resultatet är enkelt: dina transaktioner fångas upp, kategoriseras och loggas utan det dagliga copy-paste-slitet.

Du får se hur det här n8n-flödet hämtar transaktioner från Gmail och Telegram, använder AI för att strukturera detaljerna och skriver allt till Google Sheets så att din budgetuppföljning alltid är uppdaterad.

Så fungerar automationen

Hela n8n-flödet, från trigger till slutresultat:

n8n Workflow Template: Gmail + Telegram till Google Sheets – utgifter loggas

Problemet: utgiftsspårning kraschar när den är manuell

Om dina utgifter kommer från flera håll (bankaviseringar, UPI-appar som Google Pay eller Paytm, kortköp och slumpmässiga ”jag loggar det senare”-anteckningar) blir manuell spårning ett veckoprojekt för upprensning. Du letar igenom Gmail, kopierar belopp till ett ark, gissar kategorier och försöker sedan minnas vad ”₹430 till XYZ” faktiskt var. Ett missat mejl blir till två. Sedan bygger din budgetgenomgång på ofullständig data, vilket ärligt talat är värre än att inte ha någon uppföljning alls eftersom det ger en falsk trygghet. Även när du loggar allt smyger det in små formateringsfel och dubbla rader.

Friktionen byggs på. Här är var det oftast faller isär.

  • Du lägger cirka 10 minuter per transaktion på att kopiera detaljer från Gmail till ett ark, och det blir snabbt mycket under en månad.
  • UPI- och bankmejl ser olika ut, så dina kategorier blir inkonsekventa och dina rapporter blir röriga.
  • Telegram-”snabbanteckningar” är lätta att skicka och lätta att glömma, vilket gör att kontantutgifter och udda köp slinker igenom.
  • Budgetkontroller sker efter att skadan redan är skedd eftersom ingen räknar om totaler varje dag.

Lösningen: AI-kategoriserade utgifter från Gmail och Telegram till Sheets

Det här flödet bevakar två ingångar: nya finansrelaterade mejl i Gmail och utgifts-/budgetmeddelanden som skickas till en Telegram-bot. När ett meddelande kommer in körs innehållet genom en AI-tolk (Gemini-modeller i n8n, med en OpenAI Chat Model också med i flödet) som plockar ut de fält du faktiskt behöver för uppföljning: datum, belopp, kategori, beskrivning, källa och status. Sedan avgör den vad du menade (en budgetuppdatering eller en utgift) och lägger till en korrekt formaterad rad på rätt flik i Google Sheets. För Gmail-transaktioner identifierar den även konto/källa baserat på avsändaradressen eller UPI-mönster, filtrerar bort irrelevanta mejl och delar upp kredit kontra debet så att din uppföljning förblir strukturerad. Till sist får du ett bekräftelsemeddelande i Telegram och ditt ark är redo för månads- och årssammanställningar.

Flödet startar när Gmail- eller Telegram-triggers går igång. AI gör ostrukturerad text till konsekventa kolumner och Google Sheets blir din enda logg. Om dina totaler överstiger budgeten du satt i fliken Budgets kan du trigga en varning (flödet stödjer varningar och den föreslagna lösningen inkluderar ett Google Sheets Apps Script för e-postnotiser).

Det du får: automation vs. resultat

Exempel: så här ser det ut

Säg att du får ungefär 2 bank-/UPI-transaktionsmejl per dag och att du även skickar in 1 manuell utgiftsanteckning i Telegram. Manuellt är det ungefär 10 minuter per post för att öppna meddelandet, läsa, formatera en rad och välja en kategori, alltså runt 30 minuter per dag (cirka 15 timmar i månaden). Med det här flödet lägger du kanske 2 minuter på att skicka en Telegram-anteckning vid behov, och Gmail-posterna sker av sig själva medan du jobbar. Du tittar fortfarande igenom arket ibland, men den dagliga loggningen försvinner i praktiken.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för att lagra flikarna Expenses och Budgets.
  • Gmail för inkommande bank- och UPI-transaktionsmejl.
  • Telegram-bot för att snabbt lägga in manuella utgifter eller budgetar.
  • Gemini API-nyckel (hämta den från Google AI Studio eller ditt Google Cloud-projekt).

Kunskapsnivå: Medel. Du kopplar konton, klistrar in API-nycklar och gör en lätt uppsättning i Google Sheets (flikar och kolumner) utan att skriva kod i n8n.

Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Gmail eller Telegram startar flödet. En Gmail-trigger bevakar nya meddelanden, medan en Telegram-trigger lyssnar på meddelanden som skickas till din bot. Två ingångar, en uppföljning.

Filtrering till enbart ekonomi sker tidigt. Ett litet kodbaserat filter kontrollerar avsändarmönster (HDFC, Indian Bank, Indian Overseas Bank och vanliga UPI-format) så att du inte loggar slumpmässigt inkorgsbrus. Om den inte kan matcha avsändaren mot en känd källa hoppar den över posten.

AI gör rörig text till strukturerade kolumner. Flödet skickar mejlkroppen eller Telegram-meddelandet till en AI-kedja för ”strukturering”, och sedan plockar en strukturerad parser ut konsekventa fält som datum, belopp, konto, typ (kredit/debet) och kategori. Det är den här delen som gör arket användbart på lång sikt.

Google Sheets blir systemet som gäller. Utgifter hamnar i fliken Expenses (med separata grenar för kredit och debet), budgetar hamnar i fliken Budgets och Telegram skickar tillbaka en bekräftelse så att du vet att det loggades korrekt.

Du kan enkelt ändra avsändaridentifiering och kategorier så att de matchar dina egna banker och din budgetstruktur. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: Konfigurera triggrarna

Det här arbetsflödet startar från Telegram-meddelanden och Gmail-aviseringar, så båda triggernoderna måste konfigureras först.

  1. Öppna Telegram Intake Trigger och anslut er Telegram-bot för att lyssna på Updates som är satt till message.
  2. Autentiseringsuppgifter krävs: Anslut era telegramApi-autentiseringsuppgifter i Telegram Intake Trigger (detta krävs även om det inte är förkonfigurerat).
  3. Öppna Gmail Intake Trigger och bekräfta att Poll Times är satt till everyHour.
  4. Autentiseringsuppgifter krävs: Anslut era Gmail OAuth-autentiseringsuppgifter i Gmail Intake Trigger (inte konfigurerat i mallen).
⚠️ Vanlig fallgrop: Om Telegram- eller Gmail-autentiseringsuppgifter saknas kommer triggrarna aldrig att utlösas, även om arbetsflödet är aktivt.

Steg 2: Anslut Google Sheets

Alla finansposter läggs till längst ned i arken Budgets och Expenses i kalkylarket Finances.

  1. Öppna Append Budget Sheet Row och ställ in Document till [YOUR_ID] och Sheet till Budgets.
  2. Mappa kolumnvärdena i Append Budget Sheet Row till uttryck som {{$json.output.Month}}, {{$json.output['Budget Amount']}} och {{$json.output.UpdatedAt}}.
  3. Autentiseringsuppgifter krävs: Anslut era googleSheetsOAuth2Api-autentiseringsuppgifter i Append Budget Sheet Row (inte konfigurerat i mallen).
  4. Öppna Append Expense Sheet Row och bekräfta att Document är [YOUR_ID] och att Sheet är Expenses.
  5. Säkerställ att Append Expense Sheet Row mappar fält som {{$json.output.Amount}}, {{$json.output.Category}} och {{$json.output.MessageId}}.
  6. Autentiseringsuppgifter krävs: Anslut era googleSheetsOAuth2Api-autentiseringsuppgifter i Append Expense Sheet Row, Append Credit Expense Row och Append Debit Expense Row.
Använd samma Google Sheets-autentiseringsuppgift för alla Google Sheets-noder för att undvika behörighetskonflikter mellan arken Budgets och Expenses.

Steg 3: Sätt upp AI-kedjan för tolkning

Arbetsflödet använder flera Gemini-chattmotorer och strukturerade parsers för att tolka budgetar och utgifter från Telegram- och Gmail-indata.

  1. Öppna Gemini Chat Engine A och lägg till era Gemini-autentiseringsuppgifter för användning av Telegram Message Parser.
  2. Autentiseringsuppgifter krävs: Anslut era googlePalmApi-autentiseringsuppgifter i Gemini Chat Engine A (inte konfigurerat i mallen).
  3. Bekräfta att Telegram Message Parser använder Text satt till {{$json.message.text}} och att dess systemmeddelande innehåller de obligatoriska reglerna för endast JSON-utdata.
  4. Verifiera att Budget Detail Extractor och Expense Detail Extractor använder Text satt till {{$json.text}} och Prompt Type satt till define.
  5. Säkerställ att Gemini Chat Engine B och Gemini Chat Engine C är anslutna som språkmodeller för Budget Detail Extractor respektive Expense Detail Extractor.
  6. Autentiseringsuppgifter krävs: Gemini Chat Engine B och Gemini Chat Engine C måste använda googlePalmApi-autentiseringsuppgifter (redan konfigurerat).
  7. För de strukturerade parsernoderna: behåll schemana i Expense Schema Parser och Budget Schema Parser som de är. Autentiseringsuppgifter för dessa parsers måste läggas till i deras överordnade noder (Budget Detail Extractor och Expense Detail Extractor), inte i undernoderna.
  8. Bekräfta att LLM Email Structuring använder Text satt till {{$json.snippet}} och är ansluten till Gemini Chat Engine D, som redan har googlePalmApi-autentiseringsuppgifter konfigurerade.
  9. Bekräfta att Parse Email Details använder Text satt till {{$json.text}} och är ansluten till Gemini Chat Engine E med googlePalmApi-autentiseringsuppgifter konfigurerade.
⚠️ Vanlig fallgrop: Om AI-noderna returnerar extra text runt JSON kommer Initial Budget vs Expense Check att misslyckas eftersom den förväntar sig strikt JSON-utdata.

Steg 4: Konfigurera filtrering och routningslogik

Routningsnoder avgör om indata är en budget eller en utgift och var utgiftsposter ska lagras.

  1. I Filter Finance Email Sources, behåll den befintliga JavaScript-koden för att vitlista avsändare av ekonomi-mejl och identifiera account-värdet.
  2. Bekräfta att Initial Budget vs Expense Check använder villkoret {{ JSON.parse($json.text.replace(/```json\n?|```/g, '').trim()).type }} är lika med budget.
  3. Säkerställ att Final Budget vs Expense Gate kontrollerar att {{$json.output.type}} är lika med budget innan den skriver till budgetarket.
  4. Verifiera att Credit vs Debit Branch kontrollerar att {{$json.output.type}} är lika med Credit för att routa till Append Credit Expense Row; den falska grenen routar till Append Debit Expense Row.

Steg 5: Konfigurera utdata-aviseringar

När en rad har lagts till skickar arbetsflödet en Telegram-bekräftelse till den användare som initierade flödet.

  1. Öppna Send Telegram Confirmation och bekräfta att Chat ID är satt till {{$('Telegram Intake Trigger').item.json.message.from.id}}.
  2. Uppdatera bekräftelsemeddelandet i Text vid behov, och se till att kalkylarks-URL:en är uppdaterad: https://docs.google.com/spreadsheets/d/[YOUR_ID]/edit?usp=sharing.
  3. Autentiseringsuppgifter krävs: Anslut era telegramApi-autentiseringsuppgifter i Send Telegram Confirmation (redan konfigurerat).

Steg 6: Testa och aktivera ert arbetsflöde

Kör end-to-end-tester från både Telegram och Gmail för att validera routning och uppdateringar i arken.

  1. Klicka på Execute Workflow och skicka ett Telegram-meddelande som ”Set budget for groceries 5000” för att trigga Telegram Intake Trigger.
  2. Verifiera att en ny rad visas i arket Budgets via Append Budget Sheet Row och att ett Telegram-svar skickas av Send Telegram Confirmation.
  3. Skicka ett testmejl med bankavisering till Gmail-inkorgen som används av Gmail Intake Trigger och bekräfta att Filter Finance Email Sources släpper igenom det.
  4. Kontrollera att posten routas via Credit vs Debit Branch och läggs till av antingen Append Credit Expense Row eller Append Debit Expense Row.
  5. När allt är verifierat, växla arbetsflödet till Active för användning i produktion.
Lyckade körningar skapar en ny rad i Google Sheets och skickar en Telegram-bekräftelse tillbaka till den ursprungliga Telegram-användaren.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Sheets-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först statusen för n8n-credentials och att kalkylarket är delat med det anslutna Google-kontot.
  • Om du använder Wait-noder eller extern rendering varierar behandlingstiderna. Öka väntetiden om noder längre ned 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.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automationen för utgiftsloggning?

Cirka en timme om ditt Google Sheet redan är förberett.

Behöver jag kunna koda för att automatisera utgiftsloggning?

Nej. Du kopplar mest konton, lägger till API-nycklar och mappar kolumner i Google Sheets.

Är n8n gratis att använda för det här flödet för automation av utgiftsloggning?

Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in kostnader för Gemini/OpenAI API, som oftast är små per meddelande men beror på din användning.

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

Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärt och klarar n8n bra. Egen drift ger obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här flödet för automation av utgiftsloggning för nya banker eller kategorier?

Ja, och det bör du. Kodsteget ”Filter Finance Email Sources” är där du lägger till eller ändrar avsändarmönster (banker, UPI-appar), och AI-extraktionsstegen kan uppdateras för att inkludera dina egna kategorier som Resor, Mat, Prenumerationer eller Kundmiddagar. Många justerar också kontrollerna för ”Budget vs Expense” så att Telegram-meddelanden som ”budget mat 12000” eller ”spenderade 450 kaffe” hamnar rätt. När det väl är intrimmat håller det sig konsekvent.

Varför fallerar min Gmail-anslutning i den här automationen för utgiftsloggning?

Oftast är det ett autentiseringsproblem: Gmail OAuth-tokenen har löpt ut, det anslutna Google-kontot har ändrats eller triggern tappade behörighet efter en säkerhetsgranskning. Återanslut Gmail-credential i n8n och bekräfta att flödet får läsa inkorgen. Kontrollera också filterlogiken: om avsändaren inte matchar dina bank-/UPI-mönster kan flödet ”fungera” men medvetet inte ge något utdata.

Hur många transaktioner kan den här automationen för utgiftsloggning hantera?

För de flesta privatpersoner och små team räcker det mer än väl.

Är den här automationen för utgiftsloggning bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här flödet behöver förgreningslogik (budget vs. utgift, kredit vs. debet) och AI-tolkning, och sådana flöden kan bli dyra eller klumpiga i enklare verktyg. n8n är flexibelt med ”if”-grindar, sammanslagning av vägar och strukturerad extraktion, så att du kan hålla allt i en automation istället för att jonglera flera Zaps. En annan stor anledning är egen drift, vilket kan göra loggning i hög volym prisvärd när du har många transaktionsmejl. Samtidigt: om du bara behöver ”Telegram-meddelande → lägg till rad i ark” kan Zapier eller Make kännas snabbare att sätta upp. Om du är osäker, prata med en automationsexpert och få en tydlig rekommendation.

När detta väl rullar slutar ditt ark att vara en ”någon gång”-adminuppgift och börjar spegla verkligheten. Flödet tar bort den repetitiva loggningen från din att-göra-lista så att du kan fatta beslut med aktuella siffror.

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