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
flowchart LR
subgraph sg0["Schedule Every 5 Minutes Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Every 5 Minutes", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Workflow Configuration", pos: "b", h: 48 }
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/>Fetch Oil Price Data (API)"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch OPEC Reports"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch Shipping Data"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch News Feed"]
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/merge.svg' width='40' height='40' /></div><br/>Merge All Data Sources"]
n7["<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/>Data Cleaning & Preprocessing"]
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/>Statistical Anomaly Detection"]
n9@{ icon: "mdi:robot", form: "rounded", label: "AI Trend & Geopolitical Anal..", pos: "b", h: 48 }
n10["<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 Crisis Risk Score"]
n11@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Route by Alert Level", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Info Alert", pos: "b", h: 48 }
n13@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Warning Alert", pos: "b", h: 48 }
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Critical Alert", pos: "b", h: 48 }
n15@{ icon: "mdi:message-outline", form: "rounded", label: "Send Email Alert", pos: "b", h: 48 }
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/slack.svg' width='40' height='40' /></div><br/>Send Slack Alert"]
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/postgres.svg' width='40' height='40' /></div><br/>Store Alert History"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Send to Dashboard API"]
n19@{ icon: "mdi:brain", form: "rounded", label: "OpenRouter Chat Model", pos: "b", h: 48 }
n12 --> n18
n3 --> n6
n13 --> n15
n13 --> n16
n13 --> n18
n11 --> n12
n11 --> n13
n11 --> n14
n14 --> n15
n14 --> n16
n14 --> n18
n19 -.-> n9
n18 --> n17
n6 --> n7
n1 --> n2
n1 --> n3
n1 --> n4
n1 --> n5
n0 --> n1
n2 --> n6
n10 --> n11
n7 --> n8
n7 --> n9
n8 --> n10
n9 --> n10
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 n9 ai
class n19 aiModel
class n11 decision
class n17 database
class n2,n3,n4,n5,n18 api
class n7,n8,n10 code
classDef customIcon fill:none,stroke:none
class n2,n3,n4,n5,n6,n7,n8,n10,n16,n17,n18 customIcon
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
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
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.
- Lägg till och öppna Timed Trigger 5-Min.
- Ställ in schemaregeln att köra med intervallet minutes (redan konfigurerat i noden).
- Koppla Timed Trigger 5-Min till Initialize Settings.
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.
- Öppna Initialize Settings och ange följande värden: oilPriceApiUrl, opecReportsUrl, shippingDataUrl, newsApiUrl, dashboardApiUrl, alertEmailRecipients, slackChannel.
- Behåll tröskelvärdena som konfigurerade eller anpassa: infoThreshold till
30, warningThreshold till60, criticalThreshold till85. - Säkerställ att Initialize Settings matar ut till Retrieve Oil Pricing, Collect OPEC Reports, Pull Shipping Metrics och Gather News Feed parallellt.
- 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 }}. - Verifiera att Retrieve Oil Pricing, Collect OPEC Reports, Pull Shipping Metrics och Gather News Feed skickar headern Accept
application/json.
Steg 3: slå ihop och normalisera inkommande data
Kombinera alla källsvar och standardisera dem före analys.
- Öppna Combine Source Data och ställ in Mode till
combineoch Combine By tillcombineAll. - Koppla Retrieve Oil Pricing och Collect OPEC Reports in i Combine Source Data (den har redan flera inputs).
- Verifiera att Combine Source Data matar ut till Normalize Data Prep.
- 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.
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.
- Bekräfta att Normalize Data Prep matar ut till både Detect Statistical Outliers och AI Geopolitical Review parallellt.
- I AI Geopolitical Review, behåll promptuttrycket för Text:
=Analyze the following oil market data... Data: {{ JSON.stringify($json) }}. - Öppna OpenRouter Chat Engine och ställ in Model till
qwen/qwq-32b. - Säkerställ att OpenRouter Chat Engine är ansluten som språkmodell för AI Geopolitical Review.
- 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.
- 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 }}. - 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() }}. - Compose Warning Alert matar ut till Dispatch Email Alert, Post Slack Alert och Push to Dashboard parallellt.
- Compose Critical Alert matar ut till Dispatch Email Alert, Post Slack Alert och Push to Dashboard parallellt.
- I Dispatch Email Alert, behåll Send To inställd på
{{ $('Initialize Settings').first().json.alertEmailRecipients }}och Subject inställd på{{ $json.alertTitle }}. - I Post Slack Alert, behåll Channel ID inställd på
{{ $('Initialize Settings').first().json.slackChannel }}och bilagetextuttrycket från noden. - I Push to Dashboard, ställ in URL till
{{ $('Initialize Settings').first().json.dashboardApiUrl }}och JSON Body till{{ $json }}med Method somPOST. - 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.
$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.
- Öppna Record Alert History och ställ in Table till
alert_historyoch Schema tillpublic. - Behåll Columns inställd på
autoMapInputDatafö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.
- Klicka på Execute Workflow för att köra Timed Trigger 5-Min manuellt.
- Verifiera att Initialize Settings fyller i URL:er och tröskelvärden, och att HTTP-noderna returnerar data.
- Bekräfta att Normalize Data Prep, Detect Statistical Outliers och AI Geopolitical Review producerar berikad JSON-utdata.
- 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.
- Validera att Record Alert History infogar en ny rad i
alert_history. - När allt fungerar, växla arbetsflödet till Active för att aktivera övervakning var femte minut.
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
Cirka 45 minuter om dina datakällkonton är redo.
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.
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.
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.
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.
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.
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.
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.