Du kan det här vid det här laget. Någon pingar dig om ”en snabb jämförelse” och plötsligt sitter du och gräver i ett Google-kalkylark, filtrerar datum, kontrollerar totaler och kontrollerar igen eftersom du inte litar på första genomgången.
Det här är den typen av röra finansansvariga känner varje vecka, och det drabbar även byråägare och operatörer som driver slimmade team. Med den här automationen för Sheets Telegram-rapporter skickar du ett meddelande i Telegram och får tillbaka en felfri sammanfattning av ”aktuell period vs förra månaden vs samma period förra året”, plus en AI-skriven förklaring som du kan klistra in i en uppdatering.
Nedan ser du hur workflowet körs, vad det levererar och vad du behöver fylla i för att det ska matcha ditt kalkylark och din rapporteringsrytm.
Så fungerar den här automationen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: Google Sheets + Telegram: snabba ekonomijämförelser
flowchart LR
subgraph sg0["When Executed by Another Workflow Flow"]
direction LR
n5@{ icon: "mdi:play-circle", form: "rounded", label: "When Executed by Another Wor..", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Date", pos: "b", h: 48 }
n7@{ icon: "mdi:database", form: "rounded", label: "Get revenual from google sheet", pos: "b", h: 48 }
n8["<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/>Pivot last circle"]
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/code.svg' width='40' height='40' /></div><br/>Pivot current circle"]
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format data current circle", pos: "b", h: 48 }
n11@{ icon: "mdi:cog", form: "rounded", label: "Sum current circle", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format data last circle", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Sum last circle", pos: "b", h: 48 }
n14["<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/merge.svg' width='40' height='40' /></div><br/>Sum data last transfer month"]
n15["<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/merge.svg' width='40' height='40' /></div><br/>Sum data current transfer mo.."]
n16@{ icon: "mdi:cog", form: "rounded", label: "Change title 1", pos: "b", h: 48 }
n17@{ icon: "mdi:cog", form: "rounded", label: "Change title 2", pos: "b", h: 48 }
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/merge.svg' width='40' height='40' /></div><br/>Collect all"]
n19@{ icon: "mdi:cog", form: "rounded", label: "Change title out come", pos: "b", h: 48 }
n20@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format data last year circle", pos: "b", h: 48 }
n21["<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/>Pivot last year cirle"]
n22@{ icon: "mdi:cog", form: "rounded", label: "Sum last year circle", pos: "b", h: 48 }
n23["<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/merge.svg' width='40' height='40' /></div><br/>Add data last year"]
n24@{ icon: "mdi:cog", form: "rounded", label: "Change title", pos: "b", h: 48 }
n18 --> n19
n6 --> n7
n6 --> n10
n6 --> n12
n6 --> n20
n24 --> n18
n16 --> n18
n17 --> n18
n13 --> n14
n8 --> n13
n23 --> n24
n11 --> n15
n9 --> n11
n22 --> n23
n21 --> n22
n12 --> n14
n10 --> n15
n20 --> n23
n14 --> n17
n7 --> n9
n7 --> n8
n7 --> n21
n15 --> n16
n5 --> n6
end
subgraph sg1["When chat message received Flow"]
direction LR
n0@{ icon: "mdi:brain", form: "rounded", label: "DeepSeek Chat Model", pos: "b", h: 48 }
n1@{ icon: "mdi:memory", form: "rounded", label: "Window Buffer Memory1", pos: "b", h: 48 }
n2@{ icon: "mdi:wrench", form: "rounded", label: "Call n8n Workflow Tool", pos: "b", h: 48 }
n3@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n0 -.-> n4
n1 -.-> n4
n2 -.-> n4
n3 --> n4
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 n5,n3 trigger
class n4 ai
class n0 aiModel
class n2 ai
class n1 ai
class n7 database
class n8,n9,n21 code
classDef customIcon fill:none,stroke:none
class n8,n9,n14,n15,n18,n21,n23 customIcon
Problemet: ekonomijämförelser är långsamma, sköra och görs om hela tiden
Månadsvis (eller veckovis) ekonomirapportering låter enkelt tills du är den som ska göra den. Siffrorna ligger i ett ”hyfsat städat” Google-kalkylark, men varje jämförelse blir ändå manuell filtrering, pivotering, gruppering på Typ och fix av små datumavvikelser som skapar fel i totalerna. Sedan ska du förklara vad som förändrats, vilket är där ännu mer tid försvinner eftersom storyn är begravd i rader av transaktioner. Om du gör detta om och om igen är den verkliga kostnaden inte bara minuter. Det är kontextbyten och den ständiga känslan av att något kan ha missats.
Det blir snabbt mycket. Här är var det brukar fallera i riktiga team.
- Någon ber om ”den här perioden vs förra månaden” och du bygger om samma rapport från noll igen.
- Datumformat glider över tid, så dina filter utesluter i tysthet transaktioner och dina totaler matchar inte det banken visar.
- Även när totalerna stämmer tar det längre tid att skriva sammanfattningen än matematiken, eftersom du måste tolka mönster manuellt.
- Om du vill ha jämförelser mot förra året duplicerar du logik, vilket betyder dubbla misstag.
Lösningen: skriv i Telegram, få en trevägsjämförelse plus en AI-sammanfattning
Det här workflowet gör ditt strukturerade Google-kalkylark till en jämförelserapport vid begäran som levereras via Telegram. Du skickar ett chattmeddelande med det datumintervall du bryr dig om (till exempel ”1 jan till 31 jan”). n8n normaliserar datumen, hämtar underliggande transaktionsrader från Google Sheets och kör samma pivot- och aggregeringslogik för tre snitt: aktuell period, föregående månad och samma period förra året. De flödena slås ihop till ett konsekvent resultat, rubriker rensas upp och titlar justeras så att slutrapporten läser som en rapport, inte rådata. Till sist analyserar en AI-agent (DeepSeek som standard, men utbytbar) jämförelserna och genererar en färdig berättande sammanfattning som du kan klistra in för intressenter.
Workflowet startar med en Telegram-chattrigger och ett AI-chattgränssnitt som samlar in dina datum. Därifrån är Google Sheets den enda sanningskällan, medan n8n hanterar pivotering, totaler och sammanslagning av de tre tidsfönstren till en enhetlig jämförelse. Slutresultatet är en strukturerad sammanfattning plus en förklaring som du kan kopiera in i ett mejl, ett Slack-meddelande eller ett veckovis uppdateringsdokument.
Det du får: automation vs resultat
| Det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du skickar ekonomiuppdateringar en gång i veckan och att du spårar cirka 300 transaktioner i månaden i Google Sheets. Manuellt innebär en typisk jämförelse ”aktuell vecka vs förra månaden vs förra året” att filtrera datum, bygga (eller fixa) pivoter och dubbelkolla totaler, vilket lätt blir cirka 60 minuter per förfrågan. Med det här workflowet skickar du datumintervallet i Telegram (kanske 1 minut), n8n processar och aggregerar i bakgrunden (ofta ytterligare en till två minuter) och du får tillbaka en formaterad jämförelse plus en berättande sammanfattning. Det sparar ungefär en timme varje vecka, och svaret blir konsekvent varje gång.
Det du behöver
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Google Sheets för transaktionsdata som källa.
- Telegram för att begära och ta emot rapporter.
- DeepSeek API-nyckel (hämta den i din DeepSeek-kontos dashboard).
Svårighetsgrad: Medel. Du kopplar konton, bekräftar din kalkylarksstruktur och uppdaterar ett sub-workflow-ID samt några node-inställningar.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett Telegram-meddelande triggar förfrågan. Workflowet använder en trigger för chattmeddelanden så att du kan be om en jämförelse var du än är, utan att öppna kalkylarket.
AI-agenten samlar in (och rimlighetskontrollerar) datumen. En minnesbuffer håller kontext i konversationen, så att du kan finjustera en begäran utan att upprepa allt. Agenten kan också skicka vidare korrekt formaterade datuminmatningar till rapportlogiken, vilket minskar misstag av typen ”fel månad”.
Data från Google Sheets hämtas en gång och delas sedan i tre. n8n hämtar raderna från ditt kalkylark (med nödvändiga rubriker som Datum, Belopp, Typ) och kör sedan pivot-/aggregeringslogik för aktuell period, föregående månadscykel och föregående årscykel.
En sammanslagen rapport skapas och sammanfattas. De tre flödena kombineras, rubriker byts namn för att hålla resultatet konsekvent, titlar justeras för att bli lättlästa och AI-modellen skriver en kort berättelse som du kan klistra in i en rapportuppdatering.
Du kan enkelt ändra jämförelsefönstren (månad till vecka, eller kvartal) utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera chattriggern
Konfigurera arbetsflödet så att det startar från chattmeddelanden och, valfritt, från ett anrop av ett underarbetsflöde.
- Lägg till och öppna Chat Message Trigger och bekräfta att det är startnoden.
- Kopiera webhook-URL:en från Chat Message Trigger till er integration i chattklienten.
- Om detta arbetsflöde anropas av ett annat arbetsflöde, låt Subworkflow Execution Trigger vara aktiverad och ansluten till Normalize Date Fields.
Tips: Använd Chat Message Trigger för interaktiva körningar och Subworkflow Execution Trigger för schemalagd eller kedjad automatisering.
Steg 2: Anslut Google Sheets
Hämta intäktsdata från Google Sheets för alla rapporteringscykler.
- Öppna Retrieve Sheet Revenue och konfigurera kalkylarket och intervallet som behövs för er intäktsdata.
- Inloggningsuppgifter krävs: Anslut era Google Sheets-inloggningsuppgifter.
⚠️ Vanlig fallgrop: Retrieve Sheet Revenue har inga inloggningsuppgifter konfigurerade i arbetsflödets JSON – se till att ni lägger till dem innan ni testar.
Steg 3: Konfigurera AI-orkestrering
Koppla AI-agenten och dess verktyg för att bearbeta chattinmatningar och orkestrera rapporteringslogiken.
- Öppna AI Orchestration Agent och anslut den till Chat Message Trigger enligt bilden.
- Säkerställ att DeepSeek Chat Engine är ansluten som språkmodell för AI Orchestration Agent.
- Bekräfta att Sliding Memory Buffer är kopplad som minnesverktyg och att Invoke Workflow Tool är kopplad som verktyg.
⚠️ Vanlig fallgrop: Sliding Memory Buffer och Invoke Workflow Tool är AI-undernoder – lägg till inloggningsuppgifter eller API-konfiguration på AI Orchestration Agent eller modellnoden (inte på undernoderna).
Steg 4: Konfigurera dataförberedelser och parallella flöden
Normalisera datum, hämta data från arket och förgrena till bearbetning för aktuell cykel, föregående cykel och föregående år.
- Öppna Normalize Date Fields och lägg till de fält för datumnormalisering som krävs för er datamängd.
- Bekräfta parallell körning: Normalize Date Fields skickar utdata till Retrieve Sheet Revenue, Shape Current Cycle Data, Shape Previous Cycle Data och Shape Prior Year Data parallellt.
- Bekräfta parallell körning: Retrieve Sheet Revenue skickar utdata till Pivot Current Cycle, Pivot Prior Cycle och Pivot Prior Year Cycle parallellt.
- Granska kodnoderna Pivot Current Cycle, Pivot Prior Cycle och Pivot Prior Year Cycle och uppdatera logiken för era rapporteringsperioder.
Tips: Håll cykeletiketterna konsekventa i Shape Current Cycle Data, Shape Previous Cycle Data och Shape Prior Year Data för att undvika felaktiga sammanslagningar senare.
Steg 5: Aggregera, slå ihop och byt namn på utdataströmmar
Aggregera varje cykel, slå ihop strömmar och standardisera rubriker innan slutlig utdata.
- Verifiera aggregeringsnoderna i hela arbetsflödet (7 totalt), inklusive Aggregate Current Cycle, Aggregate Previous Cycle, Aggregate Prior Year, Rename Headers Primary, Rename Headers Secondary, Rename Final Headers och Adjust Output Titles.
- Bekräfta sammanslagningsflödet: Aggregate Current Cycle och Shape Current Cycle Data matar Merge Current Transfer Data → Rename Headers Primary.
- Bekräfta sammanslagningsflödet: Aggregate Previous Cycle och Shape Previous Cycle Data matar Merge Previous Transfer Data → Rename Headers Secondary.
- Bekräfta sammanslagningsflödet: Aggregate Prior Year och Shape Prior Year Data matar Merge Prior Year Data → Rename Final Headers.
- Säkerställ att Rename Headers Primary, Rename Headers Secondary och Rename Final Headers alla matar in i Combine All Streams, och därefter till Adjust Output Titles.
Steg 6: Testa och aktivera ert arbetsflöde
Verifiera att arbetsflödet returnerar den kombinerade rapporteringsdatamängden och aktivera det för löpande användning.
- Klicka på Execute Workflow och skicka ett testmeddelande via Chat Message Trigger.
- Bekräfta lyckad körning genom att kontrollera att Adjust Output Titles returnerar en enda kombinerad utdataström med datamängden.
- Om ni använder ett överordnat arbetsflöde, kör det för att validera att Subworkflow Execution Trigger startar pipelinen och når Adjust Output Titles.
- När utdata ser korrekt ut, slå om arbetsflödet till Active för användning i produktion.
Vanliga fallgropar
- Google Sheets-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera: kontrollera Google-anslutningen i din n8n-lista över credentials först och bekräfta sedan att kalkylarket är delat med det Google-kontot.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att sitta och redigera output för alltid.
Vanliga frågor
Cirka 30 minuter om ditt kalkylark redan är strukturerat.
Nej. Du kopplar mest konton och klistrar in rätt Sheet-ID och sub-workflow-ID.
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 med API-kostnader för DeepSeek (eller en annan chattmodell), vilket vanligtvis bara blir några dollar i månaden vid normal rapporteringsvolym.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, men du vill justera det på två ställen. Uppdatera datumparsning/normalisering så att agenten producerar rätt start- och slutdatum, och justera sedan pivotlogiken i avsnitten ”aktuell cykel / föregående cykel / föregående år” (Code- och Aggregate-noderna) så att de matchar veckovisa eller kvartalsvisa intervall. Många team byter också namn på ”Typ”-etiketterna här så att kategorierna matchar deras kontoplan.
Oftast handlar det om behörigheter. Säkerställ att kalkylarket är delat med samma Google-konto som används i dina n8n Google Sheets OAuth-credentials, och kontrollera sedan Sheet-ID och fliknamn i noden ”Retrieve Sheet Revenue”. Om det fungerade tidigare och plötsligt inte gör det, uppdatera OAuth-credentials i n8n eftersom Google-tokens kan löpa ut.
De flesta småföretag kan köra den utan problem med några tusen rader i kalkylarket.
Det beror på vad du menar med ”bättre”, ärligt talat. För ekonomijämförelser över flera perioder behöver du vanligtvis grenlogik, sammanslagning av flöden och lite datakonstruktion så att rubriker och totaler linjerar snyggt. n8n är starkt där, och egen drift är en praktisk fördel om du kör många exekveringar eller vill ha tajtare kontroll över din data. Zapier eller Make kan fortfarande fungera, men de här workflowen blir ofta en kedja av sköra steg, och kostnaden drar iväg när du lägger till paths och högre task-volym. Vill du ha hjälp att välja, prata med en automationsexpert så mappar vi det mot din rapporteringsrytm och dina verktyg.
När detta väl rullar blir ”kan du jämföra den här månaden med förra månaden?” ett tvåminuterssvar i stället för en återkommande uppgift. Sätt upp det en gång och låt sedan workflowet hålla din rapportering konsekvent.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.