Du spenderar pengar, och sedan glömmer du att logga det. Senare sitter du och gräver i bankappar och kvitton och försöker minnas vad ”Cafe 14” var och varför din budget känns fel.
Den här uppsättningen för utgiftsloggning i Telegram passar företagare som betalar saker i farten, men marknadsförare som hanterar kampanjkostnader och frilansare som följer upp kundutgifter känner samma friktion. Resultatet är enkelt: utgifterna hamnar i Google Sheets automatiskt, kategoriserade, tidsstämplade och bekräftade tillbaka till dig.
Du får se hur arbetsflödet förvandlar ett röstmeddelande eller en text till strukturerade rader, löpande saldo och till och med varningar vid lågt saldo, utan att du behöver passa det.
Så fungerar den här automatiseringen
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: Telegram till Google Sheets: utgifter loggas åt dig
flowchart LR
subgraph sg0["Telegram Message Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Telegram Message Trigger"]
n1@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Route by Message Kind", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Assess Voice Clarity", pos: "b", h: 48 }
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Notify Voice Processing"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>🎙️ Retrieve Voice Clip"]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Upload to Speech API"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Begin Transcription Job"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch Transcript Result"]
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Verify Transcript Status", pos: "b", h: 48 }
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Notify Text Processing"]
n10@{ icon: "mdi:database", form: "rounded", label: "Fetch Transaction History", pos: "b", h: 48 }
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Compute Opening Balance"]
n12@{ icon: "mdi:database", form: "rounded", label: "Append Record to Sheet", pos: "b", h: 48 }
n13@{ icon: "mdi:database", form: "rounded", label: "Retrieve Sheet for Queries", pos: "b", h: 48 }
n14@{ icon: "mdi:message-outline", form: "rounded", label: "Dispatch Low Balance Alert", pos: "b", h: 48 }
n15@{ icon: "mdi:brain", form: "rounded", label: "Compact GPT Model", pos: "b", h: 48 }
n16@{ icon: "mdi:memory", form: "rounded", label: "Chat Memory Buffer", pos: "b", h: 48 }
n17["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Create Voice Reply"]
n18["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Post Voice to Telegram"]
n19["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Post Text to Telegram"]
n20@{ icon: "mdi:robot", form: "rounded", label: "AI Expense Interpreter", pos: "b", h: 48 }
n21@{ icon: "mdi:cog", form: "rounded", label: "Pause for Transcription", pos: "b", h: 48 }
n22["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Track API Spend"]
n23@{ icon: "mdi:database", form: "rounded", label: "Record Cost to Sheet", pos: "b", h: 48 }
n0 --> n1
n22 --> n23
n15 -.-> n20
n20 --> n17
n20 --> n22
n2 --> n3
n2 --> n4
n16 -.-> n20
n6 --> n21
n5 --> n6
n1 --> n2
n1 --> n9
n13 -.-> n20
n14 -.-> n20
n21 --> n7
n17 --> n18
n17 --> n19
n7 --> n8
n10 --> n11
n11 --> n20
n8 --> n10
n8 --> n21
n12 -.-> n20
n4 --> n5
n9 --> n10
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n20 ai
class n15 aiModel
class n16 ai
class n1,n2,n8 decision
class n10,n12,n13,n23 database
class n5,n6,n7,n17 api
class n11,n22 code
classDef customIcon fill:none,stroke:none
class n0,n3,n4,n5,n6,n7,n9,n11,n17,n18,n19,n22 customIcon
Problemet: utgiftsspårning faller i verkligheten
De flesta misslyckas med utgiftsspårning av en anledning: den kräver att du gör det exakt när du är upptagen. Du köper en tågbiljett, betalar för annonser, plockar upp förbrukningsmaterial, delar en middagsnota och säger till dig själv att du ska logga det senare. Senare blir ”i slutet av veckan”, som blir ”i slutet av månaden”, vilket slutar i en rörig ikapp-session med saknade detaljer och fel kategorier. Tidskostnaden är inte bara att skriva siffror. Det är den mentala belastningen av att minnas vad som hände och förklara konstiga rader när du till slut tittar på totalsummorna.
Det byggs upp snabbt. Här är var det faller isär i vardagen.
- Du tappar sammanhanget kring ett köp, så kategorier blir gissningar och rapporteringen blir meningslös.
- Manuell inmatning är lätt att hoppa över, vilket gör att din ”budget” alltid ligger en vecka efter verkligheten.
- Ett meddelande innehåller ofta flera utgifter, och de flesta verktyg tvingar dig ändå att dela upp dem för hand.
- När du inte snabbt kan svara på ”vad spenderade jag på mat förra veckan?”, slutar du lita på siffrorna.
Lösningen: logga utgifter genom att skicka ett Telegram-meddelande
Det här n8n-arbetsflödet gör Telegram till din ”utgiftsinkorg”. Du skickar en text som ”Mat 42” eller ett snabbt röstmeddelande när du går ut ur en butik, och arbetsflödet gör resten. Om det är röst laddar det upp ljudet till AssemblyAI, väntar på transkribering och kontrollerar att transkriptionen är klar. Sedan tolkar en GPT-4.1 mini-agent vad du menade, delar upp flera utgifter vid behov, kategoriserar dem och räknar ut ett löpande saldo utifrån din befintliga historik i Google Sheets. Till sist lägger den till en strukturerad rad i Google Sheets med rik metadata (tidsstämplar, kör-ID:n, originaltext) och svarar i Telegram med en bekräftelse i text och vid behov även som röst.
Arbetsflödet startar med ett botmeddelande i Telegram. Därifrån routar det röst kontra text, transkriberar vid behov och hämtar din transaktionshistorik för att beräkna aktuellt saldo. När AI:n har tolkat utgiften blir Google Sheets den enda källan till sanning och Telegram blir din snabba bekräftelseloop.
Det du får: automatisering kontra resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du loggar 5 utgifter per dag (kaffe, bränsle, en verktygsprenumeration, lunch, förbrukningsmaterial). Manuellt tar det kanske 3 minuter styck när du väl har hittat beloppet, valt kategori och lagt till en notering, alltså cirka 15 minuter per dag. Med det här arbetsflödet skickar du ett röstmeddelande på 10 sekunder eller en rad text och väntar på bekräftelsen; räkna med ungefär 1 minut per utgift. Det är runt 10 minuter tillbaka per dag, och loggen blir faktiskt komplett.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Telegram-bot för att ta emot röst- eller textmeddelanden
- Google Sheets för att lagra utgifter och saldon
- OpenAI API-nyckel (hämta den i OpenAI API-dashboarden)
- AssemblyAI API-nyckel (hämta den från ditt AssemblyAI-konto)
- Gmail OAuth (valfritt) för att skicka varningar vid lågt saldo
Svårighetsgrad: Medel. Du kopplar konton, lägger in API-nycklar och säkerställer att dina kolumner i Sheets matchar det som arbetsflödet skriver.
Vill du inte sätta upp det här själv? Prata med en automationsspecialist (gratis 15-minuters konsultation).
Så fungerar det
Ett Telegram-meddelande triggar arbetsflödet. Din bot tar emot antingen en textutgift (”Taxi 18”) eller ett röstmeddelande, och arbetsflödet routar vidare baserat på meddelandetyp.
Röst transkriberas, men bara när den går att använda. Arbetsflödet kontrollerar tydligheten i röstmeddelandet, laddar ner ljudet, laddar upp det till AssemblyAI, startar ett transkriberingsjobb, väntar och fortsätter polla tills det finns en färdig transkription.
Dina befintliga data i arket hämtas in som kontext. Det hämtar transaktionshistorik från Google Sheets, räknar ut ingående saldo och skickar med den kontexten till AI Expense Interpreter så att kategorier och totalsummor blir konsekventa.
AI-agenten gör om stökig text till strukturerade rader. GPT-4.1 mini-agenten extraherar handlare, belopp, kategori och anteckningar (även när du nämner flera utgifter på en gång), och sedan lägger arbetsflödet till posten i Google Sheets och loggar API-kostnader i en separat flik för kostnadsspårning.
Du får en bekräftelse tillbaka i Telegram. Den skickar ett textsvar och kan även skapa en röstbekräftelse med OpenAI TTS. Om ditt saldo sjunker under din gräns kan Gmail skicka en varning.
Du kan enkelt justera kategorierna och gränsvärdet för lågt saldo så att det matchar din budgetering. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera Telegram-triggern
Det här arbetsflödet startar när en användare skickar ett Telegram-meddelande, så triggern måste vara kopplad till er Telegram-bot.
- Lägg till noden Telegram Message Trigger som arbetsflödets trigger.
- Inloggningsuppgifter krävs: anslut era Telegram-inloggningsuppgifter för Telegram Message Trigger.
- Verifiera att er bot kan ta emot både röst- och textmeddelanden från den avsedda chatten.
- Koppla Telegram Message Trigger till Route by Message Kind.
Steg 2: routa meddelanden och hantera transkribering av röst
Meddelanden routas efter typ, och röstmeddelanden transkriberas innan kostnadsutvinning.
- Konfigurera Route by Message Kind för att förgrena text- respektive röstinmatningar.
- Koppla röstgrenen till Assess Voice Clarity och sedan till Notify Voice Processing för återkoppling till användaren.
- Koppla Assess Voice Clarity till 🎙️ Retrieve Voice Clip och skicka ljudet till Upload to Speech API, därefter Begin Transcription Job.
- Ställ in Pause for Transcription så att den väntar på slutförande, och anropa sedan Fetch Transcript Result.
- Använd Verify Transcript Status för att loopa tillbaka till Pause for Transcription om transkriptet inte är klart.
- Koppla textgrenen till Notify Text Processing för att bekräfta begäran.
Steg 3: koppla Google Sheets för kostnadskontext
Arbetsflödet hämtar transaktionshistorik och loggar kostnader för spårbarhet och kontext.
- Konfigurera Fetch Transaction History för att läsa er utgiftsjournal från Google Sheets.
- Inloggningsuppgifter krävs: anslut era Google Sheets-inloggningsuppgifter för Fetch Transaction History.
- Skicka utdata till Compute Opening Balance för att beräkna saldokontekst för AI:n.
- Konfigurera Record Cost to Sheet för att skriva poster om API-kostnader.
- Inloggningsuppgifter krävs: anslut era Google Sheets-inloggningsuppgifter för Record Cost to Sheet.
Steg 4: konfigurera AI-tolkaren för utgifter och verktyg
AI-agenten tolkar meddelandet, extraherar utgifter, uppdaterar Sheets och kan skicka aviseringar.
- Konfigurera AI Expense Interpreter som den centrala agenten för att tolka utgifter och skriva utdata.
- Koppla Compact GPT Model som språkmodell för AI Expense Interpreter.
- Inloggningsuppgifter krävs: anslut era OpenAI-inloggningsuppgifter för Compact GPT Model.
- Koppla Chat Memory Buffer till AI Expense Interpreter för kortsiktig kontext i konversationer.
- Säkerställ att verktygskopplingar finns för Append Record to Sheet, Retrieve Sheet for Queries och Dispatch Low Balance Alert.
Steg 5: konfigurera svar, aviseringar och parallella åtgärder
När AI:n har tolkat meddelandet genererar den svar och loggar API-kostnad. Telegram-svar skickas parallellt.
- Koppla AI Expense Interpreter parallellt till både Create Voice Reply och Track API Spend.
- Create Voice Reply skickar utdata parallellt till både Post Voice to Telegram och Post Text to Telegram.
- Inloggningsuppgifter krävs: anslut era Telegram-inloggningsuppgifter för alla Telegram-noder (5 totalt): Notify Voice Processing, 🎙️ Retrieve Voice Clip, Notify Text Processing, Post Voice to Telegram och Post Text to Telegram.
- Konfigurera Track API Spend för att mata ut strukturerad kostnadsdata till Record Cost to Sheet.
Steg 6: testa och aktivera ert arbetsflöde
Kör ett manuellt test med både en textutgift och ett röstmeddelande för att verifiera hela flödet.
- Klicka Execute Workflow och skicka en textutgift till boten; bekräfta att Notify Text Processing och tolkningen av utgiften körs.
- Skicka en röstanteckning och bekräfta flödet via Upload to Speech API, Begin Transcription Job, Pause for Transcription och Fetch Transcript Result.
- Verifiera att Fetch Transaction History och Compute Opening Balance körs före AI Expense Interpreter.
- Bekräfta att Record Cost to Sheet skriver raden för API-kostnaden.
- När ni är nöjda, växla arbetsflödet till Active för användning i produktion.
Vanliga fallgropar
- Behörigheter i Google Sheets kan blockera skrivningar. Om rader inte dyker upp, kontrollera Google Sheets OAuth-anslutningen i n8n och bekräfta att arket är delat med det Google-konto som är kopplat.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
- OpenAI-prompter som börjar generiskt tenderar att förbli generiska. Lägg till din kategorilista och några exempel tidigt, annars kommer du att fortsätta ”fixa” kategorier för hand.
Vanliga frågor
Cirka 30 minuter om dina konton och ditt ark är redo.
Nej. Du kopplar Telegram och Google Sheets och klistrar in API-nycklar. Den enda ”tekniska” delen är att matcha dina kolumner i arket med det som arbetsflödet skriver.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad vid högre volym. Du behöver också räkna in användning av OpenAI och AssemblyAI, samt valfri OpenAI TTS om du aktiverar röstsvar.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, men du vill justera reglerna i AI Expense Interpreter så att den taggar varje post med en person eller ett chattnamn. Många lägger också till en enkel Switch så att en Telegram-grupp loggar till en flik, medan privata meddelanden loggar till en annan. Om du vill ha godkännanden kan du lägga in en ”Är du säker?”-bekräftelse i Telegram före noden som lägger till i Sheets.
Oftast är bot-token fel, återkallad eller sparad under fel n8n-inloggningsuppgift. Skapa om Telegram-uppgiften i n8n och bekräfta sedan att Telegram Message Trigger pekar på den. Om röstmeddelanden fallerar men text fungerar, kontrollera också att boten har åtkomst att ladda ner filer och att n8n kan nå Telegrams fil-URL från ditt nätverk.
I praktiken hundratals per dag för de flesta små team.
Ofta, ja, eftersom det här arbetsflödet inte bara är ”skicka text till ett ark”. Du gör villkorsstyrd routning (röst vs. text), pollar ett externt transkriberingsjobb, lagrar minne för konversationsfrågor, räknar saldon från tidigare rader och spårar API-kostnader. n8n hanterar den typen av förgreningar snyggt, och egen hosting kan ta bort körningsbegränsningar om volymen växer. Zapier eller Make kan fortfarande fungera om du bara vill ha den enklaste versionen (text → ark) och inte bryr dig om röst, saldoberegningar eller revisionsmetadata. Om du vill att någon kvalitetssäkrar vilken väg som passar din setup, prata med en automationsspecialist.
När det här väl rullar slutar din utgiftslogg vara ett ”projekt” och blir en vana som sker automatiskt. Det är ärligt talat då budgeteringen börjar fungera igen.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.