Du gör en snabb säkerhetskoll av en sajt, skärmdumpar resultatet, klistrar in anteckningar i ett dokument och gör sedan om det nästa vecka eftersom ingen hittar förra rapporten. Under tiden fortsätter samma saknade headers att slinka igenom.
Säkerhetsheadergranskningar slår ofta mot marknadsteam precis före stora lanseringar, men byråägare och IT-nära drift-/ops-personer känner av snurren de också. Du vill ha ett prydligt A–F-betyg, en spårbar historik och ett tydligt “gör det här härnäst”-mejl utan att lägga hela eftermiddagen på administration.
Det här arbetsflödet granskar en webbplats säkerhetsheaders, loggar resultaten i Google Sheets och skickar sedan en Gmail-rapport som innehåller konkreta åtgärder (inklusive AI-genererad remediation). Du får se hur det fungerar, vad du behöver och var du kan justera det.
Så fungerar den här automationen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Google Sheets + Gmail: granskning av säkerhetsheaders
flowchart LR
subgraph sg0["Form Intake Flow"]
direction LR
n0["<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/form.svg' width='40' height='40' /></div><br/>Form Intake"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "URL Collection", 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/>Retrieve Headers"]
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/code.svg' width='40' height='40' /></div><br/>Interpret Headers"]
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/code.svg' width='40' height='40' /></div><br/>Security Rating"]
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/code.svg' width='40' height='40' /></div><br/>Score Grader"]
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Conditional Gate", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "AI Fix Agent", pos: "b", h: 48 }
n8@{ icon: "mdi:brain", form: "rounded", label: "AI Fix Model", pos: "b", h: 48 }
n9["<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/>Aggregate Records"]
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/>Style Presets"]
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/code.svg' width='40' height='40' /></div><br/>Compose Content"]
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/code.svg' width='40' height='40' /></div><br/>Email Composer"]
n13@{ icon: "mdi:message-outline", form: "rounded", label: "Dispatch Alert", pos: "b", h: 48 }
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "Report Formatter", pos: "b", h: 48 }
n15@{ icon: "mdi:database", form: "rounded", label: "Sheets Exporter", pos: "b", h: 48 }
n6 --> n7
n1 --> n2
n0 --> n1
n2 --> n3
n14 --> n15
n3 --> n4
n11 --> n12
n9 --> n10
n12 --> n13
n4 --> n5
n10 --> n11
n5 --> n6
n5 --> n14
n7 --> n9
n8 -.-> n7
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 n7 ai
class n8 aiModel
class n6 decision
class n15 database
class n2 api
class n3,n4,n5,n9,n10,n11,n12 code
classDef customIcon fill:none,stroke:none
class n0,n2,n3,n4,n5,n9,n10,n11,n12 customIcon
Varför det här spelar roll: återkommande säkerhetsgranskningar utan ett system
Kontroller av säkerhetsheaders ser bedrägligt små ut. Du testar en URL, ser att CSP saknas, säger till någon “vi borde lägga till det” och går vidare. Sedan ber en kund om bevis, en intressent vill se en trendlinje, eller så förbereder du en compliance-granskning och inser att det inte finns någon konsekvent historik. Än värre: fynden är ofta för tekniska för personen som faktiskt kan implementera dem, så åtgärden drar ut på tiden och samma problem dyker upp igen. Det är inte en enskild granskning som slösar tid. Det är upprepningen, uppföljningarna och de röriga överlämningarna.
Friktionen byggs på. Här är var det brukar fallera.
- Du kör samma header-scan flera gånger eftersom senaste resultatet ligger begravt i e-post eller Slack.
- Manuell rapportering blir copy-paste-arbete, vilket är så “saknar HSTS” blir “saknar CSP” i slutrapporten.
- Icke-tekniska intressenter får en vägg av jargong, så inget implementeras och risken blir kvar.
- Utan en enkel logg i Google Sheets kan du inte visa framsteg över veckor eller över flera sajter.
Det du bygger: en header-scanner som loggar och mejlar åtgärder
Den här automationen börjar med ett enkelt formulär där du anger webbplatsens URL som ska granskas och e-postadressen som ska få rapporten. n8n förbereder sedan URL:en, märker körningen med en tidsstämpel och skickar en HTTP HEAD-begäran (med 10 sekunders timeout) för att hämta sajtens svarheaders. Dessa headers tolkas och poängsätts mot sju kritiska säkerhetsheaders som HSTS, Content-Security-Policy och X-Frame-Options. Därefter räknar arbetsflödet ut en 0–70-poäng och sätter ett tydligt A–F-betyg. Om det hittar saker som är värda att åtgärda genererar en AI-agent praktiska remediation-instruktioner, och sedan skickar Gmail en formaterad rapport. Till sist läggs samma resultat till i ett Google Sheet så att du kan följa historiken utan extra arbete.
Flödet är enkelt att förklara för en kund. Formulärinmatning startar det, en HTTP-begäran samlar in fakta, poängsättning gör det till ett betyg och Gmail levererar sammanfattningen “vad som ska åtgärdas härnäst”. Google Sheets sparar underlaget för senare.
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du granskar 10 sidor över några kundsajter varje vecka. Manuellt kan du lägga ungefär 10 minuter per sajt på att köra kontroller och ytterligare 15 minuter på att skriva ett mejl med rekommendationer, alltså runt 4 timmar i veckan när du även räknar in att leta upp gamla anteckningar. Med det här arbetsflödet skickar du in URL:en i ett formulär (cirka 1 minut), väntar på scanningen och formateringen, och mejlet kommer automatiskt tillsammans med en loggad rad i Sheets. Realistiskt får de flesta team ned den veckovisa insatsen till runt en timme, främst för att granska och vidarebefordra rapporten.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att lagra granskningshistorik och betyg
- Gmail för att skicka säkerhetsrapporten automatiskt
- OpenRouter API-nyckel (hämta den från din OpenRouter-kontopanel)
Svårighetsgrad: Nybörjare. Du kopplar konton, klistrar in ett kalkylblads-ID och justerar ett par textfält.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En formulärinsändning triggar granskningen. Du anger sajtens URL och e-postadressen som ska ta emot rapporten. Det håller förfrågningarna konsekventa, även om olika personer kör granskningar.
Arbetsflödet hämtar sajtens headers. n8n skickar en HTTP HEAD-begäran med 10 sekunders timeout och tolkar sedan de returnerade headers till en normaliserad struktur som kan poängsättas pålitligt.
Headers poängsätts och betygsätts. Arbetsflödet utvärderar sju säkerhetsheaders (HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, Cache-Control), ger upp till 70 poäng och konverterar det till ett A–F-betyg. Om resultaten motiverar det genererar en AI-agent remediation-instruktioner som är skrivna för människor, inte bara säkerhetsingenjörer.
Resultaten sparas och mejlas. En strukturerad rad läggs till i Google Sheets med tidsstämpel, URL, betyg och detaljerade fynd. Parallellt skickar Gmail en formaterad rapport som innehåller analys av saknade headers, varningar och implementeringsvägledning.
Du kan enkelt ändra poängtrösklarna för att matcha din policy, eller skicka låga betyg till en annan mottagare baserat på dina behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera formulärtriggern
Konfigurera arbetsflödets startpunkt så att inskickade formulär kan starta säkerhetsgranskningspipen.
- Lägg till och öppna Form Intake för att definiera era formulärfält för inkommande granskningsförfrågningar.
- Bekräfta att formulär-URL:en och webhooken genereras automatiskt av Form Intake.
- Koppla Form Intake till URL Collection för att skicka formulärdata vidare i arbetsflödet.
Steg 2: anslut Google Sheets
Förbered rapportutdata så att poängsatta granskningar kan sparas i ett kalkylark.
- Öppna Sheets Exporter och välj kalkylarket och målfliken för lagring av rapporter.
- Inloggningsuppgifter krävs: anslut era Google Sheets-inloggningsuppgifter i Sheets Exporter.
- Säkerställ att Report Formatter är kopplad till Sheets Exporter för att skicka formaterade poster.
Steg 3: konfigurera AI-bearbetning
Konfigurera AI-åtgärdsspåret som körs när granskningspoängen triggar en fix.
- Öppna AI Fix Agent och definiera instruktionerna eller verktygen som den ska använda för att generera åtgärder.
- Anslut AI Fix Model som språkmodell för AI Fix Agent.
- Inloggningsuppgifter krävs: anslut era OpenRouter-inloggningsuppgifter i AI Fix Model; detta driver AI Fix Agent (inloggningsuppgifter läggs till på modellnoden, inte på agenten).
- Verifiera att Conditional Gate routar till AI Fix Agent när betygsreglerna kräver åtgärd.
Steg 4: konfigurera utdata- och notifieringsnoder
Slutför innehållskompositionen och leveransen av aviseringar för granskningsresultaten.
- Gå igenom den kodbaserade formateringskedjan: Aggregate Records → Style Presets → Compose Content → Email Composer.
- Öppna Dispatch Alert och konfigurera avsändar-/mottagardetaljerna för utgående granskningsmejl.
- Inloggningsuppgifter krävs: anslut era Gmail-inloggningsuppgifter i Dispatch Alert.
- Bekräfta att Email Composer är kopplad direkt till Dispatch Alert för leverans av meddelandet.
Steg 5: testa och aktivera ert arbetsflöde
Validera hela flödet från formulärinskick till mejlavisering och export till kalkylark.
- Använd Form Intake för att skicka in en test-URL och kör arbetsflödet manuellt.
- Bekräfta att förfrågan går vidare genom Retrieve Headers, Interpret Headers, Security Rating och Score Grader.
- Verifiera parallella utdata: en rad skapas via Report Formatter → Sheets Exporter, och åtgärd körs via Conditional Gate → AI Fix Agent.
- Kontrollera att Dispatch Alert skickar mejlet som produceras av Email Composer.
- När allt fungerar, slå om arbetsflödet till Active för användning i produktion.
Felsökningstips
- OAuth-uppgifter för Google Sheets kan gå ut eller behöva specifika behörigheter. Om det skapar fel, kontrollera det anslutna kontot i n8n Credentials och bekräfta att kalkylbladet är delat med den Google-användaren.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om noder längre ned i flödet fallerar på tomma svar.
- OpenRouter-anrop (AI-modell) kan fallera på grund av saknad betalning, rate limits eller en ogiltig nyckel. Skapa om API-nyckeln i OpenRouter och uppdatera den i AI Fix Model-credentials.
Snabba svar
Cirka 30 minuter om dina Google- och OpenRouter-konton är redo.
Nej. Du kopplar främst inloggningsuppgifter och klistrar in ditt Google Sheet-ID. Arbetsflödet innehåller redan logiken för poängsättning och formatering.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver även räkna med OpenRouter API-kostnader för AI-texten för remediation (oftast några cent per rapport, beroende på modell och längd).
Två alternativ: n8n Cloud (hanterat, enklast setup) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det bör du sannolikt. Du kan justera vad som loggas genom att redigera noderna “Report Formatter” och “Sheets Exporter”, och sedan ändra hur mejlet formuleras i “Compose Content” och “Email Composer”. Vanliga justeringar är att scanna en lista med URL:er i en körning, skicka låga betyg till en delad inkorg och lägga till dina egna policynoteringar i remediation-avsnittet.
Oftast är det ett OAuth-behörighetsproblem eller att kalkylblads-ID:t är fel. Återanslut Google Sheets i n8n Credentials, bekräfta att kalkylbladet är åtkomligt för det Google-kontot och kontrollera sedan ID:t igen i noden “Sheets Exporter”. Om det fortfarande fallerar, leta efter “insufficient permissions” eller “not found” i nodens feldetaljer eftersom de pekar på den exakta orsaken.
De flesta team kan köra dussintals granskningar per dag utan problem, eftersom varje granskning bara är en enda HTTP-begäran plus ett kort AI-anrop.
Ofta, ja. Det här arbetsflödet bygger på anpassad logik för poängsättning, villkorlig routing och generering av en strukturerad HTML-rapport, och n8n hanterar den typen av förgreningar snyggt utan att det blir en hög av separata zaps eller scenarier. Self-hosted-alternativet är också viktigt om du vill ha obegränsade körningar utan att betala per task. Med det sagt: om du bara vill “köra en scan och mejla mig råa headers” kan Zapier eller Make gå snabbare att sätta upp. Om du är osäker, prata med en automationsexpert och få en rak rekommendation.
När detta väl rullar slutar headerkontroller att vara en engångssyssla och blir en spårbar process. Du får betyget, historiken och åtgärderna i inkorgen, och går vidare.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.