Du känner igen det. En kund säger “inget har ändrats”, men en sajt ligger nere, mejlen slutar gå fram eller en omdirigering går plötsligt sönder. Sedan sitter du och jagar runt i Cloudflare, öppnar zoner en efter en och försöker minnas hur “normalläget” såg ut förra månaden.
Den här Cloudflare Sheets-exporten slår hårdast mot DevOps-leads och IT-konsulter, om vi ska vara ärliga. Byråägare som hanterar många kunddomäner drabbas också. Resultatet är enkelt: ett enda, revisionsklart Google Sheet som visar varje zons DNS och viktiga inställningar i ett konsekvent format.
Nedan ser du flödet, vad det automatiserar och hur du använder det för att snabbt upptäcka avvikelser utan att behöva leva i Cloudflare hela dagen.
Så fungerar den här automatiseringen
Hela n8n-workflowet, från trigger till slutlig output:
n8n Workflow Template: Cloudflare till Google Sheets, audit-klar inventering direkt
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Page", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Increment Page", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "More Pages?", pos: "b", h: 48 }
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/merge.svg' width='40' height='40' /></div><br/>Merge"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get TLDs"]
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Each Host", 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/>Get DNS"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Settings"]
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/>Flatten"]
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/>Filter TLD"]
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/>Filter DNS"]
n13["<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/>Filter Settings"]
n14@{ icon: "mdi:database", form: "rounded", label: "Export", pos: "b", h: 48 }
n1 --> n3
n5 --> n4
n10 --> n14
n8 --> n12
n6 --> n7
n2 --> n6
n7 --> n9
n7 --> n8
n7 --> n11
n12 --> n5
n11 --> n5
n4 --> n1
n4 --> n10
n9 --> n13
n3 --> n2
n13 --> n5
n0 --> n2
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 n4 decision
class n14 database
class n6,n8,n9 api
class n10,n11,n12,n13 code
classDef customIcon fill:none,stroke:none
class n5,n6,n8,n9,n10,n11,n12,n13 customIcon
Problemet: Cloudflare-inventeringen är utspridd och inaktuell
Cloudflare är grymt på att drifta sajter. Det är inte lika bra på att ge dig en “översikt” över dussintals (eller hundratals) zoner. När du behöver svara på grundfrågor som “Vilka zoner har ett konstigt SSL-läge?” eller “Vart tog den där DNS-posten vägen?”, så klickar du runt mellan sidor, kopierar värden och hoppas att du inte missar en toggle som gömmer sig tre flikar ner. Det blir värre när flera personer rör DNS. En liten ändring blir ett mysterium, och spårbarheten är i praktiken din webbläsarhistorik.
Friktionen byggs på. Här är var det brukar falla isär i verkligheten:
- Att kontrollera zoner en och en gör en snabb fråga till en 2-timmars skattjakt.
- Manuell copy-paste till ett kalkylark skapar stavfel, saknade rader och kolumner som ingen litar på.
- När domänlistan är stor riskerar ad hoc-hämtningar API-timeouts och halvkörda exporter.
- Du slutar med att dela skärmbilder i stället för en strukturerad inventering som kunden kan filtrera och förstå.
Lösningen: exportera zoner, DNS och inställningar till ett enda ark
Det här n8n-workflowet hämtar varje zon från ditt Cloudflare-konto, paginerar genom listan (så det klarar ett stort konto) och hämtar sedan två nyckeldataset per domän: DNS-poster och zoninställningar. Det sammanfogar resultaten till en enda strukturerad payload och transformerar sedan fälten till korrekt formaterade kalkylarkskolumner som är lätta att sortera, filtrera och dela. Till sist lägger det till allt i ett Google Sheet, så att din “inventering” blir en levande rapport i stället för en engångsexport. Vill du ha en snabb felsökningsvy kan du dessutom använda villkorsstyrd formatering i Google Sheets för att markera på/av-toggles som är viktiga för dig.
Workflowet startar med en manuell körning i n8n, loopar sedan igenom Cloudflares zonsidor och pausar kort för att minska risken för timeouts. För varje zon hämtar det DNS och inställningar parallellt, plattar ut svaret till rader och skickar raderna till ditt valda Google Sheet.
Vad du får: automatisering vs. resultat
| Vad det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du hanterar cirka 50 domäner. Manuellt tar till och med en “snabb” kontroll kanske 5 minuter per zon för att öppna inställningar, skanna DNS och kopiera ut de viktigaste delarna du bryr dig om, vilket blir ungefär 4 timmar. Med det här workflowet klickar du på manuell körning, väntar ett par minuter på paginering och per-zon-hämtningar, och Google Sheet fylls i automatiskt. Du granskar fortfarande resultatet, men det blir en snabb filtrera-och-skanna-uppgift, inte ett börja-om-från-noll-jobb.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Cloudflare för zon-, DNS- och inställningsdata
- Google Sheets för att lagra den revisionsklara inventeringen
- Cloudflare API-token (skapa den i Cloudflare Dashboard → Account → API Tokens)
Kunskapsnivå: Mellan. Du kopplar konton, klistrar in ett Sheet-ID och kan behöva justera en väntetid om ditt Cloudflare-konto är stort.
Vill du inte sätta upp det här själv? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).
Så fungerar det
En manuell körning startar allt. Du startar workflowet när du vill ha en uppdaterad inventering (veckovis, månadsvis eller inför en kundrevision). Det finns också en inbyggd paus tidigt, som hjälper till att jämna ut API-belastningen.
Workflowet paginerar genom dina Cloudflare-zoner. Det sätter ett sidindex, anropar Cloudflare-API:t för att hämta en batch domäner, ökar räknaren och kontrollerar om det finns fler sidor. Det är den delen som gör exporten stabil när zonlistan är enorm.
För varje domän hämtas DNS och inställningar och normaliseras. n8n delar upp domänlistan i items, hämtar DNS-poster och zoninställningar via HTTP-anrop och slår sedan ihop resultaten. Några kodsteg “plattar ut” svaret och filtrerar ner till de specifika fält du faktiskt vill ha i ett kalkylark.
Allt hamnar i Google Sheets. Sista steget lägger till rader i ditt mallark, vilket gör att du kan sortera, filtrera och lägga till villkorsstyrd formatering så att problem syns tydligt.
Du kan enkelt ändra vilka kolumner som fångas i filtreringsstegen så att de matchar dina revisionskrav. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera den manuella triggern
Starta arbetsflödet manuellt och initiera pagineringsläget för hämtningen från Cloudflare API.
- Lägg till Manual Run Trigger som startnod (ingen konfiguration krävs).
- I Assign Page Index, aktivera Keep Only Set och ställ in page till
={{$json["next_page"] || 1}}. - Bekräfta att Assign Page Index är kopplad direkt efter Manual Run Trigger.
Steg 2: Anslut Cloudflare och konfigurera paginering
Hämta listan över zoner från Cloudflare och hantera paginering mellan sidor.
- Öppna Retrieve Domain List och ställ in URL till
https://api.cloudflare.com/client/v4/zones. - I Retrieve Domain List, aktivera Send Query och sätt frågeparametern page till
={{ $json.page }}. - Inloggningsuppgifter krävs: Anslut era httpCustomAuth-inloggningsuppgifter i Retrieve Domain List.
- I Check Page Remaining, konfigurera villkoret för tal med Value 1
={{ $('Assign Page Index').first().json.page }}och Value 2={{ $('Retrieve Domain List').first().json.result_info.total_pages }}. - Sätt Pause Execution Amount till
0.3för att undvika rate limits. - I Increase Page Counter, ställ in next_page till
={{ $('Assign Page Index').first().json.page+1 }}och koppla tillbaka den till Assign Page Index.
⚠️ Vanlig fallgrop: Om er Cloudflare API-token saknar behörigheten Zone:Read kommer Retrieve Domain List att returnera tomma resultat och pagineringen kommer att loopa utan data.
Steg 3: Hämta zondata parallellt
Dela upp zoner till enskilda objekt och hämta DNS-poster, inställningar och centrala domänfält samtidigt.
- I Split Domains, ställ in Field To Split Out till
result. - Bekräfta parallell körning: Split Domains skickar utdata till både Fetch Zone Settings, Fetch DNS Records och Filter Domain Fields parallellt.
- I Fetch DNS Records, ställ in URL till
=https://api.cloudflare.com/client/v4/zones/{{ $json.id }}/dns_records. - I Fetch Zone Settings, ställ in URL till
=https://api.cloudflare.com/client/v4/zones/{{ $json.id }}/settings. - Inloggningsuppgifter krävs: Anslut era httpCustomAuth-inloggningsuppgifter i Fetch DNS Records och Fetch Zone Settings.
- Låt koden i Filter Domain Fields, Filter DNS Fields och Filter Settings Data vara som den är för att rensa och omforma payloaden.
Steg 4: Kombinera, platta ut och exportera till Google Sheets
Slå ihop de tre parallella datamängderna, platta ut payloaden och lägg till i ert Google Sheet.
- I Combine Results, ställ in Mode till
combine, Combine By tillcombineByPositionoch Number Inputs till3. - Bekräfta parallell körning: Check Page Remaining skickar utdata till både Pause Execution och Flatten Payload parallellt.
- Behåll JavaScript-koden i Flatten Payload för att konvertera nästlade fält till platta kolumner (inklusive
json_recordsoch inställningsvärden). - I Append to Sheet, ställ in Operation till
append, Document ID till[YOUR_ID]och Sheet Name till[YOUR_ID]. - Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter i Append to Sheet.
⚠️ Vanlig fallgrop: Ersätt [YOUR_ID] i Append to Sheet med ert faktiska Google Sheet-ID och namnet på fliken (sheet-tabben), annars kommer tillägget att misslyckas.
Steg 5: Testa och aktivera ert arbetsflöde
Kör arbetsflödet manuellt för att verifiera dataexporten och aktivera det sedan för upprepade körningar.
- Klicka på Execute Workflow från Manual Run Trigger för att genomföra en testkörning.
- Verifiera att körningen lyckades genom att kontrollera Append to Sheet efter nya rader som innehåller utplattad domän-, DNS- och inställningsdata.
- Om pagineringen fungerar ska ni se upprepade cykler genom Pause Execution → Increase Page Counter → Assign Page Index.
- När ni har verifierat detta, växla arbetsflödet till Active för att använda det i produktion.
Vanliga fallgropar
- Cloudflare-inloggning kan löpa ut eller sakna behörigheter. Om det strular, kontrollera först dina API Token-scopes i Cloudflare Dashboard (Account → API Tokens).
- Om du använder Wait-noder eller om ditt konto har många zoner varierar processtiderna. Öka väntetiden om efterföljande anrop misslyckas eller returnerar tom data.
- Google Sheets-tillägg är bara så bra som din mall. Om kolumnerna inte linjerar, verifiera Sheet-ID:t i exportnoden och bekräfta att rubriknamnen matchar det workflowet skriver.
Vanliga frågor
Cirka 30 minuter om din Cloudflare-token och ditt Google Sheet är klara.
Nej. Du kopplar mest konton och klistrar in rätt Sheet-ID. Kodstegen finns redan med; du justerar dem bara om du vill ha andra kolumner.
Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volymer. Du behöver också räkna med Cloudflare API-användning (vanligtvis försumbar för periodiska exporter).
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 obegränsade körningar men kräver grundläggande serverhantering.
Ja, men räkna med lite justering. Du brukar ändra filtreringsstegen som formar kolumnerna (noderna som filtrerar domänfält, DNS-fält och inställningsdata) och sedan matcha de kolumnerna mot rubrikerna i ditt Google Sheet. Vanliga anpassningar är att bara behålla proxade poster, markera specifika säkerhetsinställningar och lägga till extra zonmetadata som plantyp eller status om du behöver det.
Oftast är det API-tokenen. Kontrollera att den inte har återkallats och att den har rätt behörigheter (workflow-noteringarna rekommenderar full åtkomst). Om du fortfarande ser fel, kontrollera Cloudflare rate limiting eller timeouts och lägg in en lite längre väntetid i loopen så att API-anropen inte staplas på varandra.
Många, eftersom den paginerar och bearbetar zoner i batchar.
Ofta, ja, eftersom det här inte är en enkel tvåstegszap. Du paginerar genom en stor lista, loopar items, slår ihop flera API-svar och transformerar data till en korrekt formaterad tabell, vilket är där n8n brukar kännas mer flexibelt. Zapier och Make kan göra det, men du kan behöva sy ihop fler betalda steg och workarounds för batchning. Om du bara behöver en liten export för några zoner kan enklare verktyg räcka. Om du bygger en revisionsklar inventering över många kunder är n8n oftast det lugnare valet. Prata med en automatiseringsexpert om du vill ha hjälp att välja bästa upplägg.
När du väl har en pålitlig Cloudflare-till-Sheets-inventering slutar revisioner att kännas som en brandövning. Du kör workflowet, delar arket och går tillbaka till arbete som faktiskt tar saker framåt.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.