Din webbplats går ner, ingen märker det, och den första “varningen” är ett kundmejl (eller ännu värre, en begäran om återbetalning). Sedan sitter du och gräver i Slack-trådar, skärmdumpar och halvt ihågkomna tidsstämplar för att försöka förstå vad som faktiskt hände.
Det här slår hårt mot marknadschefer eftersom kampanjer inte pausar vid driftstörningar. Småföretagare känner det direkt när kassan fallerar. Och byråteam avskyr att behöva förklara driftstopp utan en tydlig logg. Med site downtime alerts som körs automatiskt svarar du snabbare och behåller en pålitlig historik utan att köpa ännu ett dyrt övervakningsverktyg.
Det här arbetsflödet kontrollerar dina webbplatser var 5:e minut, loggar driftstopp i Google Sheets och skickar Slack-varningar både vid avbrott och återhämtning. Du får se hur det fungerar, vad du behöver och vilka resultat du kan förvänta dig.
Så fungerar den här automatiseringen
Här är det kompletta arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Google Sheets + Slack-varningar vid driftstopp
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:swap-vertical", form: "rounded", label: "Loop Over Items", 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/>Check website status"]
n3@{ icon: "mdi:database", form: "rounded", label: "Website URLs", pos: "b", h: 48 }
n4@{ icon: "mdi:database", form: "rounded", label: "Get Active Down Record", pos: "b", h: 48 }
n5@{ icon: "mdi:database", form: "rounded", label: "Update Uptime and Total Down..", pos: "b", h: 48 }
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/>Find Existing Record"]
n7@{ icon: "mdi:database", form: "rounded", label: "Add Downtime Record", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Notify over Phone Call"]
n9@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check Downtime Exists", pos: "b", h: 48 }
n10@{ icon: "mdi:message-outline", form: "rounded", label: "Email Notification for Down", 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/>Slack Notification for Down"]
n12["<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/telegram.svg' width='40' height='40' /></div><br/>Telegram Notification for Down"]
n13@{ icon: "mdi:message-outline", form: "rounded", label: "Email Notification for Up", 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/slack.svg' width='40' height='40' /></div><br/>Slack Notification for Up"]
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/telegram.svg' width='40' height='40' /></div><br/>Telegram Notification for Up"]
n16@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Down Record Exist", pos: "b", h: 48 }
n17@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Site Up", pos: "b", h: 48 }
n18@{ icon: "mdi:database", form: "rounded", label: "Get Existing Down Records", pos: "b", h: 48 }
n17 --> n4
n17 --> n18
n3 --> n1
n1 --> n2
n0 --> n3
n7 --> n10
n7 --> n11
n7 --> n12
n7 --> n8
n2 --> n17
n6 --> n9
n16 --> n5
n16 --> n1
n9 --> n1
n9 --> n7
n4 --> n16
n8 --> n1
n18 --> n6
n15 --> n1
n5 --> n13
n5 --> n14
n5 --> n15
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,n16,n17 decision
class n3,n4,n5,n7,n18 database
class n2,n8 api
class n6 code
classDef customIcon fill:none,stroke:none
class n2,n6,n8,n11,n12,n14,n15 customIcon
Varför det här spelar roll: driftstopp missas (och hanteras fel)
Driftstopp är dåligt. “Tyst” driftstopp är värre. Om du inte har övervakning får du reda på det för sent, vilket innebär förlorad försäljning, stoppat inflöde av leads, irriterade kunder och en stressig jakt på bevis för vad som hände. Även om du märker det snabbt blir uppföljningen ofta rörig: någon skriver “verkar sajten nere?” i Slack, någon annan testar från mobilen, och ingen skriver ner när det började eller när det kom tillbaka. En vecka senare kan du inte svara på grundfrågor som “hur länge var vi nere?” eller “händer det här varje tisdag?”
Friktionen ökar för varje incident. Här är var det brukar fallera.
- Du är beroende av att en människa upptäcker och rapporterar problemet, vilket är ren chansning utanför kontorstid.
- Statusuppdateringar hamnar utspridda i Slack, mejl och DM:s, så du tappar den verkliga tidslinjen.
- Utan en driftstoppslogg ser återkommande avbrott ut som “slumpmässig otur” i stället för ett åtgärdbart mönster.
- Betalda övervakningsverktyg blir dyra när du lägger till flera sajter och flera teammedlemmar som behöver larm.
Vad du bygger: övervakning i Google Sheets + Slack-varningar vid driftstopp
Det här arbetsflödet gör ett enkelt Google Sheet till din övervakningspanel och incidentlogg. Var 5:e minut hämtar n8n din URL-lista från ett “site list”-ark och kontrollerar sedan varje adress med en HTTP-förfrågan. Om en webbplats svarar normalt går flödet tyst vidare. Om en webbplats är nere tittar flödet i loggarket för att se om detta redan är en pågående incident. Om det är nytt skriver det en ny rad för driftstopp med starttid och meddelar direkt ditt team i Slack (och valfritt Gmail, Telegram, samt ett röstsamtal via Vapi). När webbplatsen återhämtar sig hittar flödet den matchande driftstoppsposten, uppdaterar den med en “uppe”-tidsstämpel och total driftstoppslängd, och skickar sedan ett återhämtningsmeddelande så att alla vet att incidenten är avslutad.
Arbetsflödet startar enligt ett schema. Det läser URL:er från Google Sheets, kontrollerar dem en och en, och skapar antingen en driftstoppspost och larmar dina kanaler eller uppdaterar en befintlig post när sajten kommer tillbaka. Slack blir ditt lager för realtidsnotiser, medan Google Sheets fortsätter vara sanningskällan.
Det här bygger du
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du övervakar 20 landningssidor och produkt-URL:er. Utan automation tar en “snabb koll” ändå cirka 2 minuter per sajt om du öppnar flikar och uppdaterar, vilket blir ungefär 40 minuter per runda (och ingen gör det hela dagen). Med det här arbetsflödet körs kontroller var 5:e minut i bakgrunden, och den enda tiden du lägger är att läsa ett Slack-meddelande och agera. De flesta team får tillbaka några timmar i veckan, och dessutom får de äntligen en driftstoppslogg de kan lita på.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att lagra din URL-lista och incidentlogg.
- Slack för att notifiera teamet när en sajt ändrar status.
- Gmail om du även vill ha e-postlarm (valfritt).
- Telegram för mobilvänliga pingar (valfritt).
- Vapi API-nyckel (hämta den i din Vapi-dashboard) för larm via röstsamtal (valfritt).
Kunskapsnivå: Nybörjare. Du kommer mest att koppla konton, mappa några fält och klistra in din lista med URL:er i ett ark.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
Ett schema triggar övervakning var 5:e minut. n8n startar automatiskt, så du är inte beroende av att någon kommer ihåg att “kolla sajten”. Det är det som gör att larmen blir konsekventa, även på helger.
Din sajtlista kommer från Google Sheets. Arbetsflödet läser ett enkelt ark som innehåller de URL:er du bryr dig om och itererar igenom dem i batchar så att varje sajt kontrolleras strukturerat, en efter en.
Varje URL testas med en HTTP-förfrågan och routas baserat på status. Om sajten verkar uppe kontrollerar flödet om det finns en aktiv driftstoppspost som behöver stängas. Om den verkar nere kontrollerar det om avbrottet redan finns i loggen (så att du inte spammar teamet var 5:e minut för samma incident).
Larm skickas och loggen hålls uppdaterad. Nya avbrott skapar en ny rad i ditt driftstoppsark och skickar meddelanden till Slack (plus Gmail/Telegram och ett valfritt röstsamtal). Återhämtningar uppdaterar den befintliga raden med en sluttid och en driftstoppslängd, och skickar sedan en “uppe igen”-notis.
Du kan enkelt ändra vilka kanaler som får notiser och vad som skrivs till arket utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera schematriggern
Det här arbetsflödet startar med ett tidsintervall och hämtar den senaste webbplatslistan vid varje körning.
- Lägg till noden Timed Schedule Starter som trigger.
- I Timed Schedule Starter behåller ni standardintervallet för Rule om ni inte vill ha en anpassad frekvens.
- Koppla Timed Schedule Starter till Retrieve Site List.
Steg 2: Anslut Google Sheets
Google Sheets används för er webbplatslista och spårning av driftstopp. Flera noder läser och skriver till samma kalkylark.
- Öppna Retrieve Site List och ställ in Document till
[YOUR_ID]och Sheet tillSheet1. - Behörighet krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Retrieve Site List.
- Upprepa samma anslutning av Google Sheets-behörigheter för Fetch Active Downtime, Refresh Uptime Metrics, Retrieve Prior Downtimes och Append Downtime Entry (5 Google Sheets-noder hanterar lista, aktivt driftstopp och historik).
- Bekräfta att Fetch Active Downtime har filter där lookupValue är satt till
{{ $('Batch Item Iterator').item.json['Website URL'] }}och ett tomt Up Time-filter för att hitta öppna incidenter. - I Append Downtime Entry verifierar ni att Operation är
appendoch att Down Time är{{ new Date().toLocaleTimeString('en-GB', { hour12: false }) }}. - I Refresh Uptime Metrics bekräftar ni att Operation är
updateoch att Matching Columns inkluderarrow_number.
Sheet2 för Website URL, Down Time, Up Time, Total downtime och row_number för att undvika felmatchningar vid uppdateringar.Steg 3: Sätt upp statuskontroller och beslutslogik
Den här delen kontrollerar varje URL och routar flödet baserat på uppstatus och befintliga driftstoppsposter.
- Koppla Retrieve Site List till Batch Item Iterator så att varje webbplats behandlas individuellt.
- I External Status Check ställer ni in URL till
{{ $json['Website URL'] }}och behåller Timeout på5000ms. - I Site Up Status? använder ni Value 1
{{ $json["statusCode"] }}, Operationequaloch Value 2400. - Routa “down”-vägen från Site Up Status? till Fetch Active Downtime och sedan till Down Record Present?.
- Routa “up”-vägen från Site Up Status? till Retrieve Prior Downtimes → Detect Existing Entry → Downtime Exists Check.
- I Detect Existing Entry behåller ni den angivna JavaScript-koden för att outputta
statussomyesellernobaserat på ofullständiga driftstoppsposter.
400 för “down” behöver ni justera villkoret i Site Up Status? så att det matchar tjänstens faktiska felkoder.Steg 4: Konfigurera down-varningar och åtgärder
När ett driftstopp upptäcks och ingen aktiv post finns loggar arbetsflödet incidenten och skickar varningar parallellt.
- Säkerställ att Downtime Exists Check skickar “no”-vägen till Append Downtime Entry.
- Append Downtime Entry skickar vidare till Email Down Alert, Slack Down Alert, Telegram Down Alert och Place Alert Call parallellt.
- Behörighet krävs: Anslut era gmailOAuth2-uppgifter i Email Down Alert och ställ in Send To till
[YOUR_EMAIL]. - Behörighet krävs: Anslut era slackOAuth2Api-uppgifter i Slack Down Alert och välj mål-User-ID
[YOUR_ID]. - Behörighet krävs: Anslut era telegramApi-uppgifter i Telegram Down Alert och ställ in Chat ID till
[YOUR_ID]. - I Place Alert Call ställer ni in URL till
https://api.vapi.ai/calloch sätter headern Authorization tillBearer [CONFIGURE_YOUR_TOKEN].
{{ $json['Website URL'] }} så att samtalet inkluderar den påverkade domänen.Steg 5: Konfigurera up-återställningsuppdateringar och varningar
När en webbplats som tidigare varit nere kommer upp igen uppdaterar arbetsflödet mätvärdena och skickar återställningsvarningar parallellt.
- Säkerställ att Down Record Present? skickar “true”-vägen till Refresh Uptime Metrics.
- I Refresh Uptime Metrics bekräftar ni att Up Time är satt till
{{ new Date().toLocaleTimeString('en-GB', { hour12: false }) }}och att Total downtime använder det angivna beräkningsuttrycket. - Refresh Uptime Metrics skickar vidare till Email Up Alert, Slack Up Alert och Telegram Up Alert parallellt.
- Behörighet krävs: Anslut era gmailOAuth2-uppgifter i Email Up Alert och bekräfta att Subject är
Site is now working fine.. - Behörighet krävs: Anslut era slackOAuth2Api-uppgifter i Slack Up Alert och ställ in User till
[YOUR_ID]. - Behörighet krävs: Anslut era telegramApi-uppgifter i Telegram Up Alert och ställ in Chat ID till
[YOUR_ID].
Steg 6: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att validera varje väg och aktivera sedan schemat.
- Klicka på Execute Workflow för att köra Timed Schedule Starter manuellt.
- Bekräfta att Retrieve Site List outputtar poster och att Batch Item Iterator bearbetar varje URL.
- Verifiera att en ned-simulering skapar en ny rad via Append Downtime Entry och triggar Email Down Alert, Slack Down Alert, Telegram Down Alert och Place Alert Call.
- Verifiera att en återhämtning (up) uppdaterar en rad via Refresh Uptime Metrics och triggar Email Up Alert, Slack Up Alert och Telegram Up Alert.
- När ni är nöjda, växla arbetsflödet till Active för att köra enligt schemat.
Felsökningstips
- Åtkomst till Google Sheets kan fallera om det anslutna Google-kontot förlorar behörighet till kalkylarket. Om det slutar skriva loggar, bekräfta att filen är korrekt delad och kontrollera Google Sheets-inloggningen i n8n på nytt.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstider. Öka väntetiden om efterföljande noder skapar fel på tomma svar.
- Slack-varningar kan fallera utan tydligt fel när boten inte är med i kanalen eller saknar chattbehörigheter. Kontrollera Slack-appens scopes och bekräfta att målkanalen tillåter att boten publicerar.
Snabba svar
Cirka 30 minuter om ditt Google Sheet och din Slack-kanal är klara.
Nej. Du kopplar dina konton och klistrar in dina URL:er i Google Sheets.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Molnplaner börjar på 20 USD/månad för högre volym. Du behöver också räkna med valfri Vapi-användning om du aktiverar röstsamtal.
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 serverhantering.
Ja, och det är hela poängen. Du kan lägga till eller ta bort kanaler genom att byta ut Slack/Gmail/Telegram-noderna, och du kan inaktivera röstsamtal genom att stänga av Vapi HTTP request-noden. Vanliga justeringar är att ändra schemat från var 5:e minut till var 1 minut för kritiska sidor, lägga till nyckelordskontroller för “mjuka driftstopp”-sidor som returnerar 200 men visar ett felmeddelande, och logga extra fält som miljö, ansvarig eller kundnamn i Google Sheets-raden.
Oftast får Slack-appen inte posta i kanalen du valt. Kontrollera OAuth-anslutningen i n8n på nytt, säkerställ att boten är inbjuden till kanalen och verifiera att scopes inkluderar behörighet att skriva meddelanden. Om det fungerar i en kanal men inte i en annan är det nästan alltid ett kanalbehörighetsproblem.
I praktiken beror det på hur många URL:er du kontrollerar och hur strikt din timeout är. På n8n Cloud Starter kan du köra ett bra antal schemalagda körningar per månad, och varje körning kan loopa igenom hela din lista. Om du kör egen hosting finns ingen gräns för antal körningar, så begränsningen blir serverresurserna och tiden det tar att köra HTTP-kontrollerna. För många små team fungerar det bra att övervaka några dussin sajter var 5:e minut.
Ofta, ja. Zapier och Make kan skicka meddelanden, men de är inte särskilt bra på att loopa igenom en lång lista med URL:er, deduplicera incidenter och uppdatera samma “öppna driftstopp”-post när en återhämtning sker. n8n hanterar förgreningslogik och mönster som “kolla om en post redan finns” på ett tydligt sätt, vilket spelar roll om du inte vill ha upprepade falska paniknotiser i Slack. Egen hosting är också viktigt om du kör kontroller ofta eftersom du inte betalar per task på samma sätt. Om du bara övervakar en sajt och vill ha en enkel ping kan enklare verktyg vara helt okej. Om du är osäker, prata med en automationsexpert så gör vi en rimlighetskontroll av din setup.
Du får snabbare incidentrespons, tydligare kommunikation och en driftstoppslogg du inte behöver passa. Sätt upp det en gång och låt det sedan rulla.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.