Dina KPI:er finns förmodligen “någonstans”. I Google Analytics. I ett kalkylark. I någons huvud. Och i samma ögonblick du behöver fatta ett beslut letar du efter siffror, ifrågasätter dem och hoppas att gårdagens data inte i tysthet har skapat fel.
Det här är exakt vad grundare fastnar med sent på kvällen. Marknadsansvariga märker det när spend ändras snabbt. Och operatörer får sitta och sy ihop rapporter eftersom ingen annan har tid. En solid KPI WhatsApp automation löser det genom att skicka en daglig ögonblicksbild dit du faktiskt tittar.
Det här workflowet hämtar mätvärden från Google Analytics och Google Sheets, beräknar KPI:er som ROAS och CAC, lägger till AI-skrivna slutsatser och skickar sedan en strukturerad sammanfattning till WhatsApp och e-post. Du får se vad det gör, vad du behöver och hur du anpassar det.
Så fungerar automatiseringen
Hela n8n-workflowet, från trigger till slutlig output:
n8n Workflow Template: Google Sheets + Analytics: KPI:er skickas till WhatsApp
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Yesterday's Revenue", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "Yesterday's Registered Users", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Yesterday's Report", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check data", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n6@{ icon: "mdi:database", form: "rounded", label: "Yesterday's Marketing Expenses", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Condition for google report", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Condition for marketing repo..", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "Get only Total Revenue Amount", pos: "b", h: 48 }
n10@{ icon: "mdi:cog", form: "rounded", label: "Get only Total Users", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Get Only Total Users", pos: "b", h: 48 }
n12@{ icon: "mdi:cog", form: "rounded", label: "Get only Total Spend Amount", pos: "b", h: 48 }
n13@{ icon: "mdi:message-outline", form: "rounded", label: "Send Error Email", 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/>Merge all result"]
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/code.svg' width='40' height='40' /></div><br/>Normalize the data"]
n16["<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/>KPI Calculator"]
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/code.svg' width='40' height='40' /></div><br/>Business Decision Logic"]
n18@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n19@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n20@{ icon: "mdi:wrench", form: "rounded", label: "Calculator", 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/merge.svg' width='40' height='40' /></div><br/>Merge"]
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/whatsapp.svg' width='40' height='40' /></div><br/>Send message"]
n23@{ icon: "mdi:message-outline", form: "rounded", label: "Send Final Email", pos: "b", h: 48 }
n5 --> n10
n5 --> n13
n21 --> n22
n21 --> n23
n18 --> n21
n20 -.-> n18
n4 --> n9
n4 --> n13
n16 --> n17
n14 --> n15
n0 --> n1
n0 --> n2
n0 --> n3
n0 --> n6
n19 -.-> n18
n15 --> n16
n3 --> n7
n1 --> n4
n11 --> n14
n10 --> n14
n17 --> n18
n17 --> n21
n7 --> n11
n7 --> n13
n12 --> n14
n2 --> n5
n9 --> n14
n6 --> n8
n8 --> n12
n8 --> n13
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 n18 ai
class n19 aiModel
class n20 ai
class n4,n5,n7,n8 decision
class n6 database
class n15,n16,n17 code
classDef customIcon fill:none,stroke:none
class n14,n15,n16,n17,n21,n22 customIcon
Problemet: KPI-rapportering faller mellan stolarna
Dagliga KPI-kontroller låter enkla tills du gör dem manuellt. Du öppnar Google Analytics, exporterar siffror, klistrar in dem i ett ark, kollar annonskostnader och försöker sedan minnas hur “bra” såg ut förra veckan. Under tiden rullar verksamheten vidare. En missad spend-topp kan ligga oupptäckt i dagar. Eller så går en stark kampanj varm och du skalar inte eftersom du inte såg ROAS-trenden i tid. Det värsta är den mentala belastningen. Du samlar inte bara in mätvärden, du översätter dem till beslut samtidigt som du jonglerar allt annat.
Det blir snabbt mycket. Här är var det oftast fallerar.
- Någon måste manuellt hämta siffror från Google Analytics, och det blir en “i morgon bitti”-uppgift som hela tiden skjuts upp.
- Sheets uppdateras inkonsekvent, vilket gör att din “senaste” KPI ibland är två dagar gammal.
- När data kommer från flera håll (analytics, spend, registreringar) kan ett saknat värde slå ut ROAS eller CAC utan att du märker det.
- Du sitter och stirrar på dashboards utan ett tydligt nästa steg, så du skjuter upp beslutet igen.
Lösningen: Daglig KPI-sammanfattning skickad till WhatsApp (och e-post)
Det här n8n-workflowet körs dagligen och fungerar som en lättviktig business intelligence-agent. Det hämtar intäkts- och registreringsdata från din datakälla (MSSQL i exemplet), tar webbdata från Google Analytics och läser annonskostnader från Google Sheets. Sedan slår det ihop allt till ett enda strukturerat dataobjekt, validerar det och beräknar KPI:er som ROAS, CAC och tillväxttal. Därefter flaggar ett regelbaserat logiklager risk- och möjlighetstillstånd (tänk “normal”, “bevaka” eller “brådskande”). Till sist sammanfattar en AI-agent vad som har förändrats, förklarar vad det sannolikt betyder och föreslår åtgärder på klar svenska. Resultatet skickas till WhatsApp och e-post så att siffrorna hamnar där besluten faktiskt tas.
Workflowet startar med en Cron-trigger som kör varje dag. Data samlas in och kontrolleras för saknade payloads, standardiseras till ett konsekvent format och därefter körs KPI-beräkningarna. Efter affärsregler och AI-resonemang formateras slutmeddelandet och levereras via WhatsApp och e-post.
Det du får: Automatisering vs. resultat
| Vad detta workflow automatiserar | Resultaten du får |
|---|---|
|
|
Exempel: Så här ser det ut
Säg att du gör en snabb KPI-koll varje vardag: 10 minuter i Google Analytics, 10 minuter för att kontrollera annonskostnader i Google Sheets och ytterligare 10 minuter för att stämma av intäkter och registreringar. Det är cirka 30 minuter per dag, eller ungefär 2,5 timmar per vecka. Med det här workflowet är “arbetet” i princip noll: det körs enligt schema, och sedan lägger du cirka 2 minuter på att läsa WhatsApp-meddelandet och bestämma vad du ska göra. Du får tillbaka tiden, men ännu viktigare: du slutar missa förändringar som spelar roll.
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)
- Google Analytics för att hämta dagliga webbplatsmätvärden.
- Google Sheets för att läsa annonskostnader eller budgetinput.
- OpenAI API-nyckel (hämta den från din OpenAI-kontopanel).
Svårighetsnivå: Medel. Du kopplar konton, mappar fält och justerar KPI-trösklar så att de matchar din verksamhet.
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 det. En Cron-trigger kör vid den tid du väljer, så att din KPI WhatsApp automation sker konsekvent utan att någon behöver logga in.
Mätvärden hämtas från källorna du redan litar på. Google Analytics levererar webb- och användarsignaler, Google Sheets ger annonskostnadsinput, och workflowet kan även läsa intäkter och antal registreringar från en datakälla (MSSQL i den här versionen).
Workflowet rensar, kombinerar och beräknar. Data valideras först (så att saknade payloads inte korruptar dina siffror), och slås sedan ihop till ett enda JSON-objekt. Därifrån beräknas KPI:er som ROAS och CAC, och affärsregler märker läget som normalt eller värt extra uppmärksamhet.
Du får ett grundarvänligt meddelande i WhatsApp och e-post. AI-agenten skriver den korta förklaringen och föreslagna åtgärder, och sedan skickar n8n uppdateringen via WhatsApp plus en backup-sammanfattning via e-post.
Du kan enkelt justera KPI-trösklar och notifieringskanaler utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera den schemalagda triggern
Ställ in schemat som startar KPI-rapportkörningen varje dag.
- Lägg till noden Scheduled Automation Start på er canvas.
- Ställ in schemaregeln så att den kör dagligen kl.
8(workflowet använder Trigger At Hour =8). - Bekräfta att triggern skickar output till Fetch Prior Revenue, Retrieve Prior Signups, Load Prior Analytics och Get Prior Ad Costs parallellt.
Scheduled Automation Start skickar output till Fetch Prior Revenue, Retrieve Prior Signups, Load Prior Analytics och Get Prior Ad Costs parallellt.
Steg 2: Anslut datakällor
Hämta intäkts-, registrerings-, analys- och annonskostnadsdata från respektive system.
- Konfigurera Fetch Prior Revenue med Operation satt till
executeQueryoch Query satt tillSELECT * from yourtable. - Inloggningsuppgifter krävs: Anslut era microsoftSql-inloggningsuppgifter för Fetch Prior Revenue.
- Konfigurera Retrieve Prior Signups med Operation satt till
executeQueryoch Query satt tillselect * from yourtable. - Inloggningsuppgifter krävs: Anslut era microsoftSql-inloggningsuppgifter för Retrieve Prior Signups.
- Konfigurera Load Prior Analytics med Date Range satt till
yesterdayoch ert Property ID satt till[YOUR_ID]. - Inloggningsuppgifter krävs: Anslut era googleAnalyticsOAuth2-inloggningsuppgifter för Load Prior Analytics.
- Konfigurera Get Prior Ad Costs med Authentication satt till
serviceAccount, Document ID satt till[YOUR_ID]och Sheet Name satt tillgid=0. - Inloggningsuppgifter krävs: Anslut era googleApi-inloggningsuppgifter för Get Prior Ad Costs.
⚠️ Vanlig fallgrop: Säkerställ att ert Google Sheets-dokument och er GA4-egendom innehåller data för yesterday för att undvika tomma payloads som triggar felmejlet.
Steg 3: Validera inputs och summera KPI-komponenter
Kontrollera att varje payload finns och summera nyckelfält innan ni kombinerar mätvärden.
- I Validate Revenue Payload, behåll villkoret som kontrollerar att
{{ $('Fetch Prior Revenue').item.json }}finns. - I Verify Signup Payload, behåll villkoret som kontrollerar att
{{ $('Retrieve Prior Signups').item.json }}finns. - I Verify Analytics Payload, behåll villkoret som kontrollerar att
{{ $('Load Prior Analytics').item.json }}finns. - I Confirm Ad Cost Data, behåll villkoret som kontrollerar att
{{ $('Get Prior Ad Costs').item.json }}finns. - Konfigurera Summarize Revenue Total för att summera Field
TotalAmountmed Aggregationsum. - Konfigurera Count New Users för att summera Field
email(antal). - Konfigurera Map Total User Count för att sätta Total Users till
{{ $json.totalUsers }}. - Konfigurera Sum Advertising Spend för att summera Field
Ad Spendmed Aggregationsum. - Ställ in Combine All Metrics med Number of Inputs till
4och anslut output från Summarize Revenue Total, Count New Users, Map Total User Count och Sum Advertising Spend.
Steg 4: Standardisera och beräkna KPI-mätvärden
Normalisera sammanslagna mätvärden och beräkna ROAS och CAC för efterföljande logik.
- I Standardize Metrics, klistra in den tillhandahållna JavaScript-koden som mappar
sum_TotalAmount,count_email,Total Usersochsum_Ad_Spendtill ett och samma objekt. - I Compute KPI Metrics, behåll JavaScript-koden som beräknar
ROASochCACoch formaterar dem till två decimaler. - Bekräfta flödet Combine All Metrics → Standardize Metrics → Compute KPI Metrics.
Steg 5: Tillämpa affärsregler och konfigurera AI-insikter
Tillämpa tröskellogik och generera sedan en läsbar KPI-sammanfattning med AI-agenten.
- I Apply Business Rules, behåll JavaScript-koden som sätter
agentStatus,agentPriorityochinsightsbaserat på tröskelvärden för ROAS och CAC. - I AI Insight Agent, sätt Text till
=Business KPIs: {{ JSON.stringify($json) }} Write: 1. One-line business summary 2. One risk (if any) 3. One opportunity 4. One recommended action. - Koppla OpenAI Chat Engine som språkmodell för AI Insight Agent och välj modellen
gpt-4.1-mini. - Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter till OpenAI Chat Engine (inloggningsuppgifter ställs in på den överordnade modellnoden).
- Säkerställ att Math Utility Tool är anslutet som ett AI-verktyg till AI Insight Agent (inloggningsuppgifter, om de behövs, ska läggas till i AI Insight Agent).
Apply Business Rules skickar output till både AI Insight Agent och Combine AI Output parallellt.
Steg 6: Konfigurera utdata (WhatsApp och e-post)
Skicka den AI-genererade sammanfattningen och KPI-totalerna via WhatsApp och e-post.
- I Combine AI Output, sätt Mode till
combineoch Combine By tillcombineAll. - Konfigurera Send WhatsApp Update med Operation
sendoch Text Body satt till={{ $json.output }} Revenue :- {{ $json.revenue }} New Users :- {{ $json.registeredUsers }} Total Users :- {{ $json.totalUsers }} Total Ad Spend :- {{ $json.adSpend }}. - Inloggningsuppgifter krävs: Anslut era whatsAppApi-inloggningsuppgifter för Send WhatsApp Update.
- Konfigurera Send Summary Email med Subject
Yesterday's Revenue Report, To Email[YOUR_EMAIL], From Email[YOUR_EMAIL]och Text satt till=Dear User, {{ $json.output }} Revenue :- {{ $json.revenue }} New Users :- {{ $json.registeredUsers }} Total Users :- {{ $json.totalUsers }} Total Ad Spend :- {{ $json.adSpend }}. - Inloggningsuppgifter krävs: Anslut era smtp-inloggningsuppgifter för Send Summary Email.
Combine AI Output skickar output till både Send WhatsApp Update och Send Summary Email parallellt.
Steg 7: Lägg till felhantering
Skicka en avisering när någon av de nödvändiga datakällorna inte returnerar någon data.
- Konfigurera Dispatch Error Email med Subject
No Data Returned, To Email[YOUR_EMAIL]och From Email[YOUR_EMAIL]. - Behåll Text-innehållet exakt som det är angivet för att förklara saknade indata.
- Inloggningsuppgifter krävs: Anslut era smtp-inloggningsuppgifter för Dispatch Error Email.
- Säkerställ att felvägar från Validate Revenue Payload, Verify Signup Payload, Verify Analytics Payload och Confirm Ad Cost Data alla routas till Dispatch Error Email.
Steg 8: Testa och aktivera ert workflow
Kör ett manuellt test för att validera end-to-end-flödet och aktivera sedan schemat för produktion.
- Klicka på Execute Workflow för att köra Scheduled Automation Start manuellt.
- Verifiera att Combine All Metrics tar emot fyra inputs och att Standardize Metrics skickar ut ett enda KPI-objekt.
- Bekräfta att AI Insight Agent skapar ett
output-fält och att Send WhatsApp Update och Send Summary Email skickar meddelanden med KPI-värden. - Om någon datakälla är tom, bekräfta att Dispatch Error Email skickar aviseringen
No Data Returned. - När testet är lyckat, slå på workflowet Active för att aktivera den dagliga körningen.
Vanliga fallgropar
- Google Analytics-inloggningar kan gå ut eller kräva specifika behörigheter. Om något slutar fungera: kontrollera först Google-kopplingen i n8n-credentials och åtkomsten till din GA-egendom.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram misslyckas på grund av tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att redigera output för alltid.
Vanliga frågor
Cirka en timme om dina datakällor redan är åtkomliga.
Nej. Du kopplar främst konton och mappar några fält. Den enda “avancerade” delen är att justera KPI-regler, och du kan börja med standardinställningarna.
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 för högre volym. Du behöver också räkna in OpenAI API-kostnader, som vanligtvis är några cent per dag för en daglig sammanfattning.
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 obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det är en av de enklaste ändringarna. Workflowet har redan logik som stödjer leverans i flera kanaler, så du kan byta ut WhatsApp-steget mot Slack eller Telegram och återanvända samma formaterade meddelande. Många team skickar också WhatsApp till grundaren och Slack till resten av teamet, så att alla får rätt detaljnivå.
Oftast handlar det om behörigheter eller att en credential har gått ut. Koppla om Google Analytics i n8n och bekräfta sedan att kontot har åtkomst till rätt GA-egendom. Om det fortfarande misslyckas: kontrollera API-kvotbegränsningar och se till att du frågar efter rätt datumintervall för “igår” (tidszonskillnader kan ge tomma rader).
Många. Om du skickar en sammanfattning per dag klarar även de minsta uppläggen det, och egen hosting har ingen körningsgräns utöver din server. Om du börjar generera sammanfattningar per kampanj eller per land behöver du hålla koll på n8n:s exekveringsgränser i Cloud och eventuella API-kvoter i Google Analytics.
Ofta, ja, eftersom det här workflowet inte bara är “flytta data från A till B”. Du slår ihop flera källor, validerar payloads, beräknar KPI:er, tillämpar affärsregler och genererar sedan en AI-sammanfattning, vilket är där verktyg som n8n brukar kännas mer flexibla. Egen hosting är också viktigt om du väntar dig volym senare. Zapier eller Make kan ärligt talat vara snabbare för en enkel tvåstegsalert, och det är helt okej. Prata med en automationsexpert om du vill ha hjälp att välja rätt upplägg och undvika att behöva bygga om senare.
Det här är den typen av automatisering du sätter upp en gång och sedan litar på varje dag. Workflowet sköter den repetitiva kontrollen, så att du kan lägga din uppmärksamhet på beslutet.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.