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

Slack + Gmail: krisvarningar med riskpoäng

Rickard Andersson Partner, Nodenordic.se

Dina larm kommer antingen för sent, är för brusiga eller är för vaga för att gå att agera på. Ett flöde säger ”volatilitet”, ett annat säger ”leveransrisk”, och du fastnar i att avgöra vad som är viktigt medan marknaden rör sig utan dig.

Det är här automatisering med Slack Gmail alerts snabbt ger effekt. Ops-ansvariga som bevakar exponering i leveranskedjan märker det direkt. Traders märker det i missade entryn. Och marknadschefen som måste briefa ledningen om ”vad som händer” märker det också, eftersom bilden blir spretig.

Det här arbetsflödet hämtar krissignaler från flera källor, riskpoängsätter dem och skickar sedan ett strukturerat larm till Slack och Gmail. Du får se vad det gör, vad du får ut av det och hur du anpassar trösklarna för ditt team.

Så fungerar den här automatiseringen

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

n8n Workflow Template: Slack + Gmail: krisvarningar med riskpoäng

Problemet: krislarm utan sammanhang (eller trygghet)

De flesta upplägg för ”krisövervakning” börjar med goda intentioner och slutar som en röra. Du lägger till ett oljeprisflöde, ett nyhetsflöde, kanske en intern dashboard, och plötsligt simmar du i pingar som inte stämmer överens med varandra. En källa sticker iväg, en annan ligger platt. Du börjar tvivla, väntar med att agera och landar i att göra manuella kontroller ändå. Ännu värre: ofta saknas en pålitlig larmlogg, så om två veckor kan du inte svara på den enkla frågan: ”Var det här faktiskt nytt, eller såg vi det redan?”

Det eskalerar snabbt. Här är var det brukar haverera i riktiga team.

  • Signaler landar på olika ställen, så någon måste sammanfoga bilden manuellt.
  • Enkla nyckelordsalert skapar panik eftersom de varken graderar allvar eller förklarar vad som ändrats.
  • När ni väl agerar kan ni inte enkelt motivera varför, eftersom ni saknar ett strukturerat, tidsstämplat revisionsspår.
  • När ni lägger till fler källor multipliceras falsklarm och folk börjar ignorera allt.

Lösningen: riskpoängsätt, och skicka larm till rätt kanal

Det här n8n-arbetsflödet körs enligt schema (var femte minut) och samlar krissignaler från flera externa datakällor: oljepriser, OPEC-rapporter, mätetal för fraktrörelser och ett nyhetsflöde. Det sammanför allt till en dataset, normaliserar formaten och kör statistiska kontroller för att hitta avvikare och skiften i volatilitet. Därefter granskar en AI-modell för geopolitik den kombinerade kontexten, vilket är steget där du slutar få ”slumpmässiga spikes” och börjar få en faktisk berättelse. Till sist räknar flödet ut en krispoäng, klassar allvarlighetsgrad och skickar rätt version av larmet till Slack, Gmail och din dashboard. Varje larm skrivs också till Postgres så att du behåller en tillförlitlig historik.

Arbetsflödet börjar med schemalagd datainsamling och rensning. Sedan kombinerar det ”matte” (avvikelsedetektering) med ”mening” (AI-analys) för att beräkna en krispoäng som teamet kan använda. Efter det avgör routningsregler vem som ska pingas och hur hög alarmnivån ska vara.

Det du får: automatisering kontra resultat

Exempel: så här ser det ut

Säg att ditt team bevakar fyra kärnkällor (oljepris-API, OPEC-rapporter, fraktmätetal och ett nyhetsflöde) och att ni idag gör en manuell kontroll två gånger per dag. Om varje kontroll tar cirka 20 minuter per källa när ni öppnar flikar, rimlighetskontrollerar siffror och skriver en snabb sammanfattning, blir det ungefär 3 timmar per dag. Med det här flödet lägger ni kanske 10 minuter på att sätta trösklar och mottagare, och efter det kliver ni bara in när ett varnings- eller kritiskt larm kommer. Den schemalagda körningen sker var femte minut, så ”väntandet” är automatiserat, inte att du sitter och uppdaterar dashboards.

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)
  • Slack för realtidslarm i kanaler och eskalering.
  • Gmail för att mejla sammanfattningar vid varning/kritiskt till intressenter.
  • Postgres för larmlogg, revision och trender.
  • OpenRouter API-nyckel (hämta den i din OpenRouter-dashboard).
  • Inloggning/nycklar för oljepris + nyhetsflöde (från dina valda dataleverantörer).

Kunskapsnivå: Medel. Du kopplar konton, lägger in API-nycklar och justerar lätt några regler och fält.

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

Så fungerar det

En tidsstyrd trigger kör var femte minut. Schemat är ryggraden. I stället för att någon ska komma ihåg att kolla läget i världen, gör arbetsflödet det åt dig.

Externa källor samlas in och kombineras. n8n hämtar oljepriser, OPEC-rapporter, fraktmätetal och nyheter via HTTP-anrop och slår sedan ihop dem till ett paket så att senare steg kan jämföra på lika villkor.

Datan struktureras, kontrolleras och tolkas. Ett normaliseringssteg förbereder indata, statistisk kod hittar avvikare, och en AI-agent (driven av en OpenRouter-modell i ChatGPT-stil) lägger till geopolitisk kontext som råa siffror inte kan ge. Den kontexten är ärligt talat det som gör larmen ”handlingsbara” i stället för bara ”intressanta”.

En krispoäng beräknas och routas efter allvarlighetsgrad. Arbetsflödet klassar resultat som info, varning eller kritiskt, skapar rätt meddelande, skickar det till Slack och Gmail, pushar det till din dashboard och loggar hela händelsen i Postgres för historik.

Du kan enkelt ändra trösklarna för allvarlighetsgrad så att de matchar din risktolerans utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: konfigurera schematriggern

Det här arbetsflödet körs var femte minut för att hämta marknadsdata och skapa aviseringar.

  1. Lägg till och öppna Timed Trigger 5-Min.
  2. Ställ in schemaregeln att köra med intervallet minutes (redan konfigurerat i noden).
  3. Koppla Timed Trigger 5-Min till Initialize Settings.
Om ni vill ha en annan frekvens, justera intervallet i Timed Trigger 5-Min och låt resten av flödet vara oförändrat.

Steg 2: anslut datakällor och grundinställningar

Definiera API-endpoints, tröskelvärden och aviseringsmål i Initialize Settings, och hämta sedan flera datakällor parallellt.

  1. Öppna Initialize Settings och ange följande värden: oilPriceApiUrl, opecReportsUrl, shippingDataUrl, newsApiUrl, dashboardApiUrl, alertEmailRecipients, slackChannel.
  2. Behåll tröskelvärdena som konfigurerade eller anpassa: infoThreshold till 30, warningThreshold till 60, criticalThreshold till 85.
  3. Säkerställ att Initialize Settings matar ut till Retrieve Oil Pricing, Collect OPEC Reports, Pull Shipping Metrics och Gather News Feed parallellt.
  4. I varje HTTP-nod, behåll URL inställd till uttryck: {{ $('Initialize Settings').first().json.oilPriceApiUrl }}, {{ $('Initialize Settings').first().json.opecReportsUrl }}, {{ $('Initialize Settings').first().json.shippingDataUrl }} och {{ $('Initialize Settings').first().json.newsApiUrl }}.
  5. Verifiera att Retrieve Oil Pricing, Collect OPEC Reports, Pull Shipping Metrics och Gather News Feed skickar headern Accept application/json.
⚠️ Vanlig fallgrop: Platshållarvärdena i Initialize Settings måste ersättas med riktiga API-endpoints och destinationsvärden, annars kommer nedströmsnoder att returnera tom data.

Steg 3: slå ihop och normalisera inkommande data

Kombinera alla källsvar och standardisera dem före analys.

  1. Öppna Combine Source Data och ställ in Mode till combine och Combine By till combineAll.
  2. Koppla Retrieve Oil Pricing och Collect OPEC Reports in i Combine Source Data (den har redan flera inputs).
  3. Verifiera att Combine Source Data matar ut till Normalize Data Prep.
  4. I Normalize Data Prep, behåll den medföljande JavaScript-koden för att rensa och standardisera tidsstämplar, oljeprisfält, volym, frakt-/shipping-mått, sentiment och poängsättning av datakvalitet.
Eftersom Initialize Settings förgrenar ut parallellt, använder arbetsflödet Combine Source Data för att slå ihop alla items före normalisering.

Steg 4: konfigurera AI och statistisk analys

Kör avvikelsedetektering och AI-baserad geopolitisk bedömning parallellt, och beräkna sedan en viktad krispoäng.

  1. Bekräfta att Normalize Data Prep matar ut till både Detect Statistical Outliers och AI Geopolitical Review parallellt.
  2. I AI Geopolitical Review, behåll promptuttrycket för Text: =Analyze the following oil market data... Data: {{ JSON.stringify($json) }}.
  3. Öppna OpenRouter Chat Engine och ställ in Model till qwen/qwq-32b.
  4. Säkerställ att OpenRouter Chat Engine är ansluten som språkmodell för AI Geopolitical Review.
  5. Verifiera att både Detect Statistical Outliers och AI Geopolitical Review är kopplade till Compute Crisis Score.

Inloggningsuppgifter krävs: Anslut era openRouterApi-inloggningsuppgifter i OpenRouter Chat Engine. AI-noden AI Geopolitical Review använder den här modellen, så inloggningsuppgifter ska ligga på den överordnade modellnoden.

Steg 5: konfigurera aviseringsrouting och utdata

Routa efter allvarlighetsgrad, sätt ihop aviseringar och skicka sedan notiser till e-post, Slack och en dashboard.

  1. I Route by Severity, behåll villkoren som jämför {{ $json.riskScore }} mot {{ $('Initialize Settings').first().json.warningThreshold }} och {{ $('Initialize Settings').first().json.criticalThreshold }}.
  2. Konfigurera aviseringspayloads i Compose Info Alert, Compose Warning Alert och Compose Critical Alert med uttryck som =Risk Score: {{ $json.riskScore }} - {{ $json.summary }} och tidsstämplar {{ $now.toISO() }}.
  3. Compose Warning Alert matar ut till Dispatch Email Alert, Post Slack Alert och Push to Dashboard parallellt.
  4. Compose Critical Alert matar ut till Dispatch Email Alert, Post Slack Alert och Push to Dashboard parallellt.
  5. I Dispatch Email Alert, behåll Send To inställd på {{ $('Initialize Settings').first().json.alertEmailRecipients }} och Subject inställd på {{ $json.alertTitle }}.
  6. I Post Slack Alert, behåll Channel ID inställd på {{ $('Initialize Settings').first().json.slackChannel }} och bilagetextuttrycket från noden.
  7. I Push to Dashboard, ställ in URL till {{ $('Initialize Settings').first().json.dashboardApiUrl }} och JSON Body till {{ $json }} med Method som POST.
  8. Koppla Push to Dashboard till Record Alert History.

Inloggningsuppgifter krävs: Anslut era gmailOAuth2-inloggningsuppgifter i Dispatch Email Alert.

Inloggningsuppgifter krävs: Anslut era slackOAuth2Api-inloggningsuppgifter i Post Slack Alert.

⚠️ Vanlig fallgrop: Om Route by Severity förväntar sig $json.riskScore men era uppströmsnoder matar ut crisisRiskScore, uppdatera uttrycken i Route by Severity och aviseringsmeddelanden så att de matchar ert faktiska fält.

Steg 6: konfigurera aviseringsloggning

Lagra aviseringshistorik i Postgres för revision och rapportering.

  1. Öppna Record Alert History och ställ in Table till alert_history och Schema till public.
  2. Behåll Columns inställd på autoMapInputData för att mappa aviseringsfält automatiskt.

Inloggningsuppgifter krävs: Anslut era postgres-inloggningsuppgifter i Record Alert History.

Steg 7: testa och aktivera ert arbetsflöde

Validera hela flödet innan ni slår på det för kontinuerlig övervakning.

  1. Klicka på Execute Workflow för att köra Timed Trigger 5-Min manuellt.
  2. Verifiera att Initialize Settings fyller i URL:er och tröskelvärden, och att HTTP-noderna returnerar data.
  3. Bekräfta att Normalize Data Prep, Detect Statistical Outliers och AI Geopolitical Review producerar berikad JSON-utdata.
  4. Kontrollera att Route by Severity routar till en av noderna för att komponera aviseringar och att aviseringar når Dispatch Email Alert, Post Slack Alert och Push to Dashboard.
  5. Validera att Record Alert History infogar en ny rad i alert_history.
  6. När allt fungerar, växla arbetsflödet till Active för att aktivera övervakning var femte minut.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Slack-inloggning kan löpa ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera din Slack-apps scopes och n8n:s credential-test först.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera output för alltid.

Vanliga frågor

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

Cirka 45 minuter om dina datakällkonton är redo.

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

Nej. Du kopplar mest konton och klistrar in API-nycklar. Det enda ”tekniska” är att justera trösklar, och det gör du med enkla fält.

Är n8n gratis att använda för det här arbetsflödet för Slack Gmail alerts?

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 OpenRouter-användning (oftast några cent per analys, beroende på modell och promptstorlek) och vad dina dataleverantörer tar betalt.

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 kör n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa det här arbetsflödet för Slack Gmail alerts för olika trösklar och routning?

Ja, och det bör du. Du kan ändra gränsvärdena i switchen ”Route by Severity” och justera meddelandeformaten i stegen ”Compose Info Alert”, ”Compose Warning Alert” och ”Compose Critical Alert”. Vanliga justeringar är att lägga till en regel för ”tysta timmar”, routa kritiska larm till en privat Slack-kanal och skicka varningar endast via mejl medan info-händelser stannar på dashboarden.

Varför fallerar min Slack-anslutning i det här arbetsflödet?

Oftast är det en utgången token eller saknade Slack app-scopes. Anslut Slack-credentialn på nytt i n8n och bekräfta sedan att appen kan posta i den specifika kanalen du valt. Om det fungerar i en kanal men inte i en annan handlar det nästan alltid om behörigheter.

Hur många larm kan den här automatiseringen för Slack Gmail alerts hantera?

Många, så länge din plan och databasen hänger med. I n8n Cloud beror gränserna på planens månadskörningar, vilket innebär att ett femminutersschema redan förbrukar en stabil basnivå. Vid egen drift finns inget körningstak, men serverresurser och API-rate limits blir den faktiska begränsningen. I praktiken kör team detta var femte minut och hanterar dussintals larm per dag utan problem, så länge de håller AI-steget avgränsat och lagrar historik i Postgres.

Är den här automatiseringen för Slack Gmail alerts bättre än att använda Zapier eller Make?

För riskpoängsättning från flera källor, ja, men det beror på hur djupt du vill gå. n8n hanterar förgrenad logik för allvarlighetsgrad, sammanslagning av flera indata och databasloggning på ett ställe utan att det blir en prissättningsgåta. Det passar också AI-agent-liknande steg mer naturligt än många ”två-app”-automatiseringar. Zapier eller Make kan fortfarande vara bra för enkla regler som ”skicka ett mejl när X händer”. Om du är osäker, prata med en automationsspecialist och beskriv din larmvolym och dina routningsbehov.

När det här väl rullar slutar krisövervakning vara en daglig brandkårsutryckning och blir i stället ett stabilt signalflöde du kan lita på. Arbetsflödet tar hand om den repetitiva kontrollen så att teamet kan fokusera på beslutet, inte på bruset.

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