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

Slack + Google Sheets: smartare IoT-avvikelselarm

Rickard Andersson Partner, Nodenordic.se

Din IoT-stack fungerar förmodligen. Tills en sensor sticker iväg kl. 02:00, någon blir pingad och du lägger nästa morgon på att gräva i råa payloads och halvfärdiga loggar. Det värsta är osäkerheten. Var det på riktigt, eller bara brus?

Den här automatiseringen för Slack Sheets alerts träffar driftschefer först, men anläggningsansvariga och ingenjörer känner av den också. Du får tydligare larm, färre dubbletter och en Google Sheets-historik som faktiskt går att använda.

Nedan ser du arbetsflödet, vad det förändrar i vardagen och hur du sätter upp det utan att göra det till ett ”nytt projekt” som aldrig blir klart.

Så fungerar den här automatiseringen

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

n8n Workflow Template: Slack + Google Sheets: smartare IoT-avvikelselarm

Problemet: IoT-larm är brusiga, otydliga och svåra att granska

De flesta IoT-övervakningsupplägg fallerar på ett väldigt specifikt sätt. Antingen larmar de om allt (så folk börjar ignorera Slack) eller så larmar de om för lite (så du får veta det när en kund klagar eller en maskin stannar). Sedan finns ”vad hände?”-problemet: larmet kan innehålla en rå JSON-payload, men inte kontexten, inte tröskelvärdet och inte en rekommenderad åtgärd. Även när du får användbara signaler byggs dubbletter på. Samma sensor, samma värde, flera ping. Det tar energi och det kostar, eftersom någon måste fortsätta sortera riktiga problem från bakgrundsbrus.

Friktionen växer över tid. Här är var det brukar fallera i verkliga team.

  • Folk får larm utan tillräcklig kontext, så varje topp blir en miniutredning.
  • Dubblettvärden skapar dubblettlarm, vilket gör att Slack-kanaler känns opålitliga.
  • Allvarlighetsgrad är inte konsekvent, så ”varning” och ”kritiskt” behandlas likadant.
  • Det finns inget tydligt revisionsspår, vilket gör eftergranskningar efter incidenter till gissningslek.

Lösningen: AI-stödd avvikelsedetektering som skickar till Slack och loggar till Sheets

Det här flödet bevakar inkommande IoT-sensordata i realtid (eller i små batchar enligt schema), standardiserar den, tar bort dubbletter och ber sedan en AI-agent bedöma värdet mot dina trösklar. AI:n säger inte bara ”dåligt” eller ”bra”. Den returnerar strukturerad JSON med en allvarlighetsnivå, en lista med problem, en förklaring på klarspråk och en rekommenderad åtgärd. Därifrån routar n8n larmet. Kritiska händelser går till Slack och e-post. Varningar går till Slack i en kanal med lägre brusnivå. Allt, inklusive ”normala” värden, kan arkiveras i Google Sheets så att du har en pålitlig tidslinje när du behöver den.

Flödet startar från en MQTT-ström (topic sensors/+/data) eller ett 15-minuters batchschema. Efter normalisering och fingerprint-baserad deduplicering producerar OpenAI-agenten ett avvikelseutslag, och därefter skickar routingen rätt meddelande till rätt plats. Till sist fångar en rad i Google Sheets hela historiken för senare rapportering.

Det du får: automatisering vs. resultat

Exempel: så här ser det ut i praktiken

Säg att du övervakar 25 sensorer och idag går igenom larm två gånger per dag. Om varje ”topp” tar cirka 5 minuter att öppna loggar, jämföra mot trösklar och skriva en Slack-uppdatering, så blir 10 toppar på en dag ungefär 50 minuters uppmärksamhet. Och det är en lugn dag. Med det här flödet är ”jobbet” främst att godkänna dina trösklar en gång, och sedan låta Slack ta emot en kort, lättläst sammanfattning medan Google Sheets sparar posten automatiskt. Du utreder fortfarande riktiga problem, men du slutar bränna tid på rutinmässig sortering.

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)
  • MQTT-broker för att ta emot sensormätningar i realtid.
  • Slack för att leverera varningar och kritiska larm till kanaler.
  • Google Sheets för att arkivera mätvärden och AI-analys.
  • Gmail för att e-posta kritiska larm till responders.
  • OpenAI API-nyckel (hämta den i OpenAI API-dashboarden).

Svårighetsgrad: Mellannivå. Du kopplar konton, sätter trösklar och testar med några exempel-payloads från sensorer.

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

Så fungerar det

En sensormätning triggar flödet. Den kan komma direkt via MQTT (perfekt för realtidsövervakning) eller köras var 15:e minut för batchbearbetning när du vill ha förutsägbar belastning.

Payloaden struktureras och dedupliceras. n8n tolkar inkommande meddelande till en konsekvent struktur (sensorId, location, timestamp, temperature, humidity, CO2 och mer). Sedan skapar den ett fingeravtryck (hash) och tar bort dubbletter så att upprepade värden inte spammar dina AI-anrop eller ditt team.

AI avgör vad som är viktigt. OpenAI-chatmodellen driver en AI-agent som jämför mätvärden mot dina definierade trösklar och svarar i strikt JSON: avvikelse ja/nej, allvarlighetsgrad (critical/warning/normal), vad som är fel, varför och vad nästa steg är. Det här är ärligt talat delen som får larm att kännas ”mänskliga” utan att lägga till människor.

Larm routas till rätt ställe och allt arkiveras. Kritiskt går till Slack och Gmail, varning går till Slack, och alla vägar sammanfogas till en append i Google Sheets så att historiken förblir intakt.

Du kan enkelt justera trösklarna och routingreglerna så att de passar din miljö. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementation

Steg 1: Konfigurera MQTT-triggern

Skapa entry points i realtid och schemalagt som startar arbetsflödet och matar in data i bearbetningskedjan.

  1. Lägg till och konfigurera MQTT Intake Trigger med Topics inställt på sensors/+/data.
  2. Lägg till Scheduled Batch Trigger och ställ in schemaregeln till var 15:e minut.
  3. Anslut båda triggernoderna till Combine Start Signals.

⚠️ Vanlig fallgrop: MQTT-noder kräver vanligtvis broker-inloggningsuppgifter; om er broker är säkrad, lägg in dem i MQTT Intake Trigger innan ni testar.

Steg 2: Anslut kedjan för dataförberedelse

Definiera sensorgränser, avkoda payloads och ta bort dubbletter före AI-analys.

  1. I Combine Start Signals, låt Mode vara inställt på chooseBranch.
  2. Konfigurera Set Sensor Limits med Mode inställt på raw och JSON Output inställt på de angivna tröskelvärdena och alertConfig-blocket.
  3. I Decode Sensor Payload, behåll JavaScript Code som angivet för att tolka sensordata och bifoga tröskelvärden.
  4. I Create Data Hash, ställ in Type till SHA256, Value till {{ $json.sensorId + '-' + $json.timestamp + '-' + JSON.stringify($json.readings) }}, och Data Property Name till dataHash.
  5. I Filter Duplicate Records, ställ in Compare till selectedFields och Fields to Compare till dataHash.

Tips: Uppdatera [YOUR_ID] och [YOUR_EMAIL] i Set Sensor Limits innan ni går live.

Steg 3: Sätt upp AI-baserad avvikelsedetektering

Konfigurera AI-agenten och tolka dess JSON-svar för vidare routing.

  1. I AI Anomaly Analysis, behåll Text-prompten som angivet för att tvinga JSON-utdata och inkludera tröskelvärden.
  2. Säkerställ att OpenAI Chat Engine är ansluten som språkmodell för AI Anomaly Analysis med Model inställt på gpt-4o-mini och Temperature inställt på 0.3.
  3. I Interpret AI Response, behåll JavaScript Code för att parsa AI-JSON och sätta alertLevel och requiresAlert.

Inloggningsuppgifter krävs: Anslut era OpenAI-inloggningsuppgifter i OpenAI Chat Engine (inloggningsuppgifter läggs till i den överordnade språkmodellnoden, inte i AI Anomaly Analysis).

Steg 4: Konfigurera routing och larmutgångar

Routa avvikelser efter allvarlighetsgrad och skicka larm via e-post och Slack.

  1. I Severity Routing, behåll reglerna som matchar {{ $json.alertLevel }} mot critical och warning, med Fallback Output inställt på extra.
  2. Konfigurera Dispatch Critical Email med Send To inställt på {{ $('Set Sensor Limits').first().json.alertConfig.emailRecipients }}, och behåll de angivna uttrycken för Subject och Message.
  3. Konfigurera Post Critical Slack med Select inställt på channel och Channel inställt på ert kanal-ID för kritiska larm.
  4. Konfigurera Post Warning Slack med Select inställt på channel och Channel inställt på ert kanal-ID för varningslarm.
  5. Säkerställ att Severity Routing skickar utdata parallellt till både Dispatch Critical Email och Post Critical Slack, och till Post Warning Slack för varningar.

Inloggningsuppgifter krävs: Anslut era Gmail-inloggningsuppgifter i Dispatch Critical Email.

Inloggningsuppgifter krävs: Anslut era Slack-inloggningsuppgifter i Post Critical Slack och Post Warning Slack.

Steg 5: Anslut arkivloggningen

Slå ihop larmutfall och logga dem till Google Sheets för revision.

  1. Anslut Dispatch Critical Email, Post Critical Slack och Post Warning Slack till Join Alert Results.
  2. Anslut Join Alert Results till Log to Sheets Archive.
  3. I Log to Sheets Archive, ställ in Operation till append, välj sedan mål-Document och Sheet Name.

Inloggningsuppgifter krävs: Anslut era Google Sheets-inloggningsuppgifter i Log to Sheets Archive.

Steg 6: Testa och aktivera ert arbetsflöde

Validera indata, verifiera AI-beslut och aktivera arbetsflödet för kontinuerlig övervakning.

  1. Använd MQTT Intake Trigger för att skicka ett testmeddelande till sensors/+/data, eller kör Scheduled Batch Trigger manuellt.
  2. Bekräfta att Decode Sensor Payload ger en strukturerad avläsning och att Filter Duplicate Records endast behåller unika poster.
  3. Verifiera att AI Anomaly Analysis returnerar giltig JSON och att Interpret AI Response sätter alertLevel korrekt.
  4. Säkerställ att larm skickas från Dispatch Critical Email och Post Critical Slack när allvarlighetsgraden är critical, och från Post Warning Slack när allvarlighetsgraden är warning.
  5. Kontrollera Log to Sheets Archive för tillagda rader efter att larm har behandlats.
  6. När ni är nöjda, växla arbetsflödet till Active för produktionsanvändning.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Slack-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först n8n:s Slack-credential och kanalåtkomst för #iot-critical och #iot-alerts.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder nedströms fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du redigera utdata för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för Slack Sheets alerts?

Cirka en timme om dina MQTT-, Slack- och Google-inloggningar är klara.

Behöver jag kunna koda för att automatisera Slack Sheets alerts?

Nej. Du kopplar främst konton och justerar trösklar. Flödet innehåller redan parsning och routinglogik.

Är n8n gratis att använda för det här Slack Sheets alerts-flödet?

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 OpenAI API-användning, vilket vanligtvis är några cent per dag vid låga volymer.

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

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.

Kan jag anpassa det här Slack Sheets alerts-flödet för olika sensorer och kanaler?

Ja, och det är det normala sättet att använda det. Uppdatera gränserna i ”Define Sensor Thresholds” (temperature, humidity, pressure, CO2) och ändra Slack-kanalnamnen i larmkonfigurationen. Du kan också justera ”Route by Severity”-logiken för att lägga till en ”normal”-kanal, routa per plats eller skicka kritiska larm till ett roterande on-call-alias. Om du vill arkivera någon annanstans, byt ”Archive to Google Sheets” mot en databasnod och låt resten vara oförändrat.

Varför misslyckas min Slack-anslutning i det här flödet?

Oftast beror det på utgångna Slack-inloggningar eller saknad behörighet att posta i målkanalen. Återanslut Slack-credential i n8n och bekräfta sedan att appen får skriva till #iot-critical och #iot-alerts. Om det bara fallerar ibland kan du också slå i Slacks rate limits vid toppar, så batchning eller att minska dubbletter blir ännu viktigare.

Hur många sensormätningar klarar den här automatiseringen för Slack Sheets alerts?

På en liten n8n Cloud-plan kan du räkna med tusentals körningar per månad, och vid egen drift försvinner den hårda gränsen (din server blir begränsningen). I praktiken skalar flödet bra eftersom det deduplicerar före AI-steget, vilket håller den dyra delen under kontroll. Om du väntar dig toppar, börja med att logga allt till Sheets och skicka bara Slack för warning/critical så att människor inte blir flaskhalsen.

Är den här automatiseringen för Slack Sheets alerts bättre än Zapier eller Make?

Ofta ja, eftersom det här flödet inte bara är ”skicka meddelande när värdet ändras”. Du har två triggers (MQTT plus schemalagda batchar), deduplicering, strukturerad AI-utdata och förgrening efter allvarlighetsgrad, vilket n8n hanterar rent utan att bli en rörig kedja. Möjligheten till egen drift spelar också roll när du har många mätvärden och inte vill betala per steg. Zapier eller Make kan fortfarande fungera för enkla trösklar, men när du vill ha kontext, rekommendationer och en revisionslogg upplevs n8n ofta som mer stabilt. Vill du ha en second opinion på insats vs. effekt, prata med en automationsexpert.

Tydliga larm, felfri historik, mindre tvekan. Sätt upp det en gång och låt Slack och Google Sheets tala om vad som faktiskt händer.

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