Kassaflödes-“avstämningar” har en tendens att bli en daglig skattjakt. Du hämtar inbetalningar från ett ställe, utbetalningar från ett annat, klistrar in siffror i ett kalkylark och oroar dig ändå för att du missat något viktigt.
Det här är den typen av röra som drabbar ekonomichefer först, men grundare och operativa ansvariga känner av det också. Med den här Sheets Slack cashflow-automationen får du en daglig ögonblicksbild av nettoläget som postas till Slack och loggas i Google Sheets, utan att du behöver vakta processen.
Nedan ser du exakt vad arbetsflödet gör, vad du får ut av det och vad du behöver för att köra det stabilt.
Problemet: daglig kassaflödesuppföljning blir manuell bevakning
”Hur ser vår kassaposition ut idag?” låter som en enkel fråga tills du är den som ska svara. Inbetalningar ligger i ett system, utbetalningar i ett annat, och din ”källa till sanning” blir till slut ett kalkylark som bara är uppdaterat om någon faktiskt uppdaterade det. Sedan sitter du och kopierar totalsummor, dubbelkollar kategorier, letar efter saknade rader och försöker sammanfatta allt i ett Slack-meddelande som folk faktiskt läser. Gör du det varje dag bränner du verklig tid, och du normaliserar osäkerhet. Ärligt talat är det den värsta delen.
Friktionen byggs på. Här är var det oftast faller isär.
- Det är lätt att missa sena transaktioner, så den ”dagliga ögonblicksbilden” är redan inaktuell när du delar den.
- Manuella sammanställningar bjuder in till misstag, särskilt när du ska summera in- och utflöden under tidspress.
- Intressenter ber om samma uppdatering i Slack eller via mejl, vilket gör att du skriver om samma rapport om och om igen.
- Utan en konsekvent logg kan du inte se mönster (eller bevisa vad som ändrades) när frågor dyker upp senare.
Så fungerar automationsflödet
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: Google Sheets + Slack: daglig kassaflödesbild
flowchart LR
subgraph sg0["Daily at 6 PM Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Daily at 6 PM", pos: "b", h: 48 }
n1["<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/>Get Cash Inflows"]
n2["<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/>Get Cash Outflows"]
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/code.svg' width='40' height='40' /></div><br/>Calculate Inflows"]
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/code.svg' width='40' height='40' /></div><br/>Calculate Outflows"]
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/merge.svg' width='40' height='40' /></div><br/>Merge Data"]
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/code.svg' width='40' height='40' /></div><br/>Calculate Net Cash Flow"]
n7@{ icon: "mdi:database", form: "rounded", label: "Save to Google Sheets", 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/>Generate HTML Report"]
n9@{ icon: "mdi:message-outline", form: "rounded", label: "Email Report", pos: "b", h: 48 }
n10@{ icon: "mdi:cog", form: "rounded", label: "Backup to Google Drive", 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/slack.svg' width='40' height='40' /></div><br/>Post to Slack"]
n12@{ icon: "mdi:cog", form: "rounded", label: "Convert to PDF", pos: "b", h: 48 }
n5 --> n6
n0 --> n1
n0 --> n2
n11 --> n10
n12 --> n9
n1 --> n3
n3 --> n5
n2 --> n4
n4 --> n5
n8 --> n11
n7 --> n12
n6 --> n7
n6 --> n8
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 n7 database
class n1,n2 api
class n3,n4,n6,n8 code
classDef customIcon fill:none,stroke:none
class n1,n2,n3,n4,n5,n6,n8,n11 customIcon
Lösningen: en daglig ögonblicksbild som räknar, loggar och publicerar sig själv
Det här arbetsflödet körs enligt ett dagligt schema och gör de tråkiga delarna åt dig. Vid den satta tiden hämtar det inbetalningar och utbetalningar via HTTP-förfrågningar och sammanfattar sedan båda flödena så att du får strukturerade totalsummor i stället för rå transaktionsbrus. Därefter kombinerar det båda sidorna, beräknar ditt nettokassaläge för dagen och lägger till den ögonblicksbilden i ett Google Sheet så att du får en revisionsvänlig logg. Det bygger också en HTML-sammanfattning för snabb läsning, postar en kort Slack-notis och skickar en mejlrapport med en genererad PDF bifogad. Slutligen arkiverar det rapporten i en Google Drive-mapp, så att du hittar gårdagens uppdatering på sekunder.
Arbetsflödet startar med en schemalagd trigger i n8n. Därifrån hämtar det in- och utflöden, slår ihop dem och beräknar nettoläget från de kombinerade totalsummorna. Resultatet skickas till tre ställen: Google Sheets för loggning, Slack för synlighet och mejl/PDF för en formell daglig dokumentation.
Det du får: automation vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du gör en daglig uppdatering för ett litet team: du kollar inbetalningar (cirka 10 minuter), kollar utbetalningar (ytterligare 10), uppdaterar arket (10) och skriver sedan en Slack-sammanfattning och mejlar den (10 till). Det är ungefär 40 minuter per dag, och det är lätt att bli avbruten halvvägs. Med det här arbetsflödet sätter du schemat en gång, och sedan kör det i bakgrunden: en minut för att bekräfta första gången, några minuters bearbetning, och Slack-inlägget plus mejlet kommer automatiskt. Du granskar mest avvikelser, inte bygger rapporten.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Google Sheets för den dagliga kassaflödesloggen.
- Slack för att posta den dagliga ögonblicksbilden till en kanal.
- Gmail API-nyckel (hämta den i Google Cloud Console).
Svårighetsnivå: Medel. Du kopplar konton, mappar några fält och testar med verkliga (eller exempel-)betalningsdata.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett dagligt schema sätter igång allt. ”Scheduled Evening Trigger” körs vid den tid du väljer, så att ögonblicksbilden landar när folk faktiskt tittar (slutet av dagen, början av dagen, vad som passar).
Betalningar hämtas från dina källor. Två HTTP-förfrågningar hämtar data för in- och utgående betalningar. Här pekar du arbetsflödet mot dina endpoints (betalningsleverantör, intern tjänst eller valfritt API som returnerar din transaktionsdata).
Totalsummor sammanfattas och nettoläget beräknas. Arbetsflödet summerar in- och utflöden var för sig, slår ihop dem och beräknar ditt nettokassaläge så att du får en strukturerad siffra plus stödjande kontext.
Resultatet loggas och publiceras. Ögonblicksbilden läggs till i Google Sheets, en HTML-sammanfattning genereras för läsbarhet och därefter får Slack en kort uppdatering. En mejlrapport skickas med en renderad PDF och filen arkiveras i Google Drive för att enkelt kunna hittas senare.
Du kan enkelt ändra schematiden så att den matchar din granskningsrutin utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera schematriggern
Ställ in arbetsflödet så att det körs enligt ert kvällsschema så att det kan hämta och sammanfatta dagens kassaflöde automatiskt.
- Lägg till noden Scheduled Evening Trigger som arbetsflödets trigger.
- Öppna Scheduled Evening Trigger och ställ in schemaregeln till ert önskade cron-uttryck under rule → interval → field med
cronExpression. - Verifiera att Scheduled Evening Trigger skickar output parallellt till både Retrieve Incoming Payments och Retrieve Outgoing Payments.
Steg 2: Anslut källorna för inkommande och utgående betalningar
Konfigurera API-anropen som hämtar in- och utbetalningstransaktioner från er bokföringsplattform.
- I Retrieve Incoming Payments, ställ in URL till
https://api.accounting.com/transactions. - I Retrieve Outgoing Payments, ställ in URL till
https://api.accounting.com/transactions. - Bekräfta att Retrieve Incoming Payments kopplas till Summarize Incoming Totals och att Retrieve Outgoing Payments kopplas till Summarize Outgoing Totals.
Steg 3: Sätt upp bearbetning och logik för sammanslagning
Sammanfatta in- och utflöden, slå ihop dem och beräkna nettokassapositionen som används längre fram i flödet.
- I Summarize Incoming Totals, behåll jsCode-logiken som beräknar
total_inflow, kategorisummor och antal. - I Summarize Outgoing Totals, behåll jsCode-logiken som beräknar
total_outflow, kategorisummor och antal. - Konfigurera Combine Payment Streams med mode satt till
combineoch combinationMode satt tillmergeByPosition. - I Compute Net Cash Position, behåll jsCode som beräknar
net_cash_flowochcash_flow_statusbaserat på totaler för in-/utflöde.
Combine Payment Streams skickar output till Compute Net Cash Position, som därefter skickar output parallellt till både Append to Google Spreadsheet och Build HTML Summary.
Steg 4: Konfigurera lagring av rapport och PDF-generering
Lägg till den dagliga sammanfattningen i ett kalkylark och generera en PDF-rapport för distribution.
- Öppna Append to Google Spreadsheet och ställ in operation till
append, sheetName tillDaily_Cash_Flowoch documentId till[YOUR_ID]. - Säkerställ att kolumnmappningarna i Append to Google Spreadsheet använder uttryck som
={{ $json.date }},={{ $json.total_inflow }}och={{ $json.net_cash_flow }}. - Inloggning krävs: Anslut era googleApi-credentials i Append to Google Spreadsheet.
- I Render PDF Document, ställ in documentTemplateId till
[YOUR_ID]. - Inloggning krävs: Anslut era pdfMonkeyApi-credentials i Render PDF Document.
Steg 5: Konfigurera utdata för meddelanden och arkivering
Bygg HTML-sammanfattningen för Slack, skicka PDF:en via e-post och arkivera resultatet i Google Drive.
- I Build HTML Summary, behåll jsCode som bygger
html_reportför den dagliga sammanfattningen. - Konfigurera Slack Summary Alert med det angivna text-meddelandet som använder uttryck som
{{ $json.total_inflow }}och{{ $json.net_cash_flow }}. - Inloggning krävs: Anslut era slackApi-credentials i Slack Summary Alert.
- Ställ in Dispatch Email Update med subject
Daily Cash Flow Report - {{ $now.format('MMM dd, yyyy') }}, och ställ in toEmail och fromEmail till[YOUR_EMAIL]. - Behåll PDF-bilagan i Dispatch Email Update som
data:application/pdf;base64,={{ $json.pdf_base64 }}under options → attachments. - Inloggning krävs: Anslut era smtp-credentials i Dispatch Email Update.
- I Archive to Drive Folder, välj ert driveId och folderId (för närvarande
My Driveochroot). - Inloggning krävs: Anslut era googleDriveOAuth2Api-credentials i Archive to Drive Folder.
Build HTML Summary skickar output till Slack Summary Alert, som sedan skickar resultat till Archive to Drive Folder. Append to Google Spreadsheet skickar output till Render PDF Document, som sedan skickar output till Dispatch Email Update.
Steg 6: Testa och aktivera ert arbetsflöde
Kör ett fullständigt test för att verifiera datahämtning, bearbetning, lagring och notiser innan ni aktiverar schemat.
- Klicka på Execute Workflow för att köra Scheduled Evening Trigger manuellt och observera att båda API-anropen körs parallellt.
- Bekräfta att Append to Google Spreadsheet lägger till en ny rad i
Daily_Cash_Flowmed totaler och status. - Verifiera att Render PDF Document ger output
pdf_base64och att Dispatch Email Update skickar PDF-bilagan. - Kontrollera Slack för det formaterade meddelandet från Slack Summary Alert och bekräfta att arkiveringssteget körs i Archive to Drive Folder.
- När allt är validerat, slå om arbetsflödet till Active så att schemat körs automatiskt.
Vanliga fallgropar
- Google Sheets-inloggningar kan löpa ut eller kräva specifika behörigheter. Om det slutar fungera, börja med att kontrollera statusen för Google-anslutningen i n8n under Credentials.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Slack-bottokens misslyckas ofta för att appen saknar behörigheten chat:write eller för att kanalen inte har lagts till. Kontrollera scopes i din Slack-app och bekräfta att boten är inbjuden till målkanalen.
Vanliga frågor
Cirka 30–60 minuter om dina betalkällor och konton är redo.
Nej. Du kopplar främst konton och mappar några fält i HTTP-förfrågningarna och stegen för Google Sheets.
Ja. n8n har ett gratisalternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer startar på $20/månad för högre volymer. Du behöver också räkna med kostnader för PDF-rendering (PDFMonkey-prissättning beror på volym) och eventuella API-kostnader från dina betalningsleverantörer.
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 serveradministration.
Ja, och det är en av de enklaste ändringarna. Uppdatera tiden för ”Scheduled Evening Trigger” och justera sedan texten i Slack- och mejlmeddelandet så att den speglar rapportfönstret (till exempel ”gårdagens stängning” kontra ”idag hittills”). Många team anpassar också koden i ”Build HTML Summary” för att lägga till ett par extra rader, som största inflödeskategori, största utflödeskategori och påminnelser om saknade anteckningar. Om du vill köra en andra gång mitt på dagen kan du klona triggern och skicka den till en annan Slack-kanal.
Oftast beror det på utgången OAuth eller att Google-kontot inte längre har åtkomst till målarket. Återanslut Google Sheets-inloggningen i n8n och bekräfta att spreadsheet-ID och fliknamn fortfarande stämmer. Om det bara fallerar när rader läggs till, kontrollera att rubrikkolumnerna inte har ändrats och att arbetsflödets mappade fält fortfarande finns.
Några tusen per dag brukar fungera bra, så länge dina betal-API:er levererar data stabilt och din n8n-instans har tillräckligt med minne.
Ofta, ja, eftersom det här arbetsflödet behöver bearbetning i flera steg: två datahämtningar, sammanfattningar, en sammanslagning, en beräkning, en logg, en PDF-rendering och sedan utskick i flera kanaler. n8n hanterar den typen av förgreningar och ”limlogik” bekvämt, och egen drift kan bli en stor kostnadsfördel när du kör det varje dag. Zapier eller Make kan fortfarande fungera om dina källor redan erbjuder en enda endpoint för ”nettokassa” och du bara behöver ett enkelt Slack-inlägg. Är du osäker, prata med en automationsexpert så får du en rak rekommendation utifrån din volym och dina verktyg.
När det här väl rullar slutar du jaga siffran. Arbetsflödet skickar ögonblicksbilden, loggar historiken och lämnar dig med ett jobb: fatta beslut utifrån den.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.