Du öppnar Confluence-behörigheter för att göra en snabb kontroll, och plötsligt är det 20 flikar, märkliga specialfall och inget strukturerat sätt att visa vad du hittade. Än värre: du är aldrig helt säker på att du inte missade en publik länk som ligger kvar på en gammal sida.
Den här automatiseringen för Confluence-åtkomstgranskning träffar främst IT-/SecOps-ansvariga, men compliance-ansvariga och stressade driftägare dras ofta in också. Du förvandlar ”behörighetskaos” till en enkel Google Sheets-rapport som du kan dela med trygghet.
Nedan ser du hur arbetsflödet skannar valda ytor, flaggar risker för offentlig exponering och skapar en per-yta-ögonblicksbild av granskningen som faktiskt går att läsa.
Så fungerar den här automatiseringen
Hela n8n-arbetsflödet, från trigger till slutlig output:
n8n Workflow Template: Confluence till Google Sheets: rensad behörighetsrapport
flowchart LR
subgraph sg0["When clicking ‘Execute workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Variables", 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/graphql.png' width='40' height='40' /></div><br/>Confluence - GQL Space Anony.."]
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out Spaces", pos: "b", h: 48 }
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/graphql.png' width='40' height='40' /></div><br/>Confluence - GQL Space Publi.."]
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/graphql.png' width='40' height='40' /></div><br/>Confluence - GQL Space Pages.."]
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"]
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Anonymous Access", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Space Public Links Enabled", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Space Pages with Public ..", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Confluence - Get Spaces"]
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Build Report", pos: "b", h: 48 }
n6 --> n11
n1 --> n10
n3 --> n5
n3 --> n4
n3 --> n2
n7 --> n6
n10 --> n3
n8 --> n6
n9 --> n6
n0 --> n1
n2 --> n7
n4 --> n8
n5 --> n9
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 n10 api
classDef customIcon fill:none,stroke:none
class n2,n4,n5,n6,n10 customIcon
Problemet: Confluence-åtkomstgranskningar är röriga och lätta att missa
Granskningar av Confluence-behörigheter är sällan ”en skärm, ett svar”. Ytbehörigheter finns på ett ställe. Inställningar för publika länkar finns någon annanstans. Och den verkliga risken ligger ofta gömd på sidnivå, där en enda publik länk kan exponera något du trodde var internt. Om du gör detta manuellt slutar det med att du tar skärmdumpar, kopierar URL:er till anteckningar och försöker förklara dina fynd i Slack eller mejl. Det är utmattande. Och det är riskabelt, eftersom processen hänger på ditt minne och ditt tålamod.
Det skenar snabbt. Här är var friktionen byggs på.
- Kontroller yta för yta går långsamt, och varje yta har sina egna behörighetsegenheter.
- Publika länkar kan finnas även när en yta ”verkar” vara låst, vilket betyder att din granskning kan se korrekt ut medan risken inte är det.
- Insamling av bevis är tidsödande, så team hoppar över den och landar i ”lita på mig”-fynd i stället för en rapport som går att dela.
- Blockerade publika länkar är fortfarande viktiga under granskningar, eftersom revisorer ofta frågar vad som har testats eller varit aktiverat historiskt.
Lösningen: skanna Confluence-ytor och generera en granskningsrapport per yta
Det här arbetsflödet kör en upprepningsbar skanning över de Confluence-ytor du väljer och producerar en konsoliderad rapport som du kan lägga in i Google Sheets. Du startar det manuellt (så du styr när granskningar körs), anger din Atlassian-domän och lämnar en kort lista med ytnycklar som ”ENG, HR, FIN”. n8n hämtar matchande ytor och kör sedan tre riktade kontroller för varje: behörigheter för anonym åtkomst, om publika länkar är aktiverade på ytnivå samt vilka sidor som för närvarande har publika länkar (inklusive ON och BLOCKED). Resultaten slås ihop och normaliseras till en korrekt formaterad post per yta, så att du slipper pussla ihop bevis manuellt. Ärligt talat är det bästa konsekvensen: varje körning ger samma strukturerade output.
Arbetsflödet startar när du kör det i n8n. Det hämtar ytor via Confluence REST API v2 och använder sedan Atlassian GraphQL API för behörighets- och publiklänksdetaljer som Confluence inte exponerar på ett bra sätt i REST. Till sist bygger det compliance-rapporten i ett format som är redo att klistra in eller synka till Google Sheets.
Det här får du: automatisering vs. resultat
| Det här automatiserar arbetsflödet | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du behöver granska 12 Confluence-ytor inför en genomgång. Manuellt kan även en ”snabb” kontroll ta cirka 15 minuter per yta när du tittar på behörigheter, söker efter publika länkar och samlar bevis, vilket blir ungefär 3 timmar. Med det här arbetsflödet triggar du en gång, n8n hämtar ytorna, kör de tre kontrollerna parallellt per yta och bygger rapporten automatiskt. Din ”hands-on-tid” sjunker till cirka 10 minuter för att konfigurera och köra, och sedan lägger du energin på uppföljning i stället för att leta.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- Confluence (Atlassian) för att läsa ytor och behörigheter.
- Google Sheets för att lagra och dela granskningsrapporten.
- Atlassian API-token (skapa den i inställningarna för Atlassian-konto).
Kunskapsnivå: Medel. Du kopplar in inloggningsuppgifter och klistrar in din domän plus en lista med ytnycklar.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (kostnadsfri 15-minuters konsultation).
Så fungerar det
Du startar arbetsflödet manuellt. Det är medvetet för granskningar, eftersom du kan köra det på beställning inför genomgångar, förnyelser eller kvartalsvisa åtkomstkontroller.
Du sätter omfattningen en gång. I konfigurationssteget anger du din Atlassian-domän och en kommaseparerad lista med ytnycklar (till exempel ENG, HR). n8n hämtar sedan dessa ytor med Confluence REST API v2.
Varje yta får tre kontroller parallellt. Arbetsflödet frågar Atlassian GraphQL för att hämta behörigheter för anonym åtkomst, bekräfta om publika länkar är aktiverade på ytnivå och lista sidor med publika länkar som är ON eller BLOCKED. Sidfrågan stödjer upp till 250 sidor per yta, vilket täcker de flesta verkliga granskningar.
Allt slås ihop till en rapportklar post. Resultaten normaliseras till en output per yta som du kan trycka in i Google Sheets, dela med intressenter eller bifoga i ett compliance-ärende.
Du kan enkelt ändra listan med ytnycklar för att inkludera andra team eller affärsenheter utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera den manuella triggern
Det här arbetsflödet startas manuellt så att ni kan köra regelefterlevnadsgranskningar vid behov.
- Lägg till noden Manual Workflow Launch som trigger.
- Lämna alla fält i Manual Workflow Launch på standardvärdena.
- Koppla Manual Workflow Launch till Initialize Config Values.
Steg 2: anslut Confluence och definiera indata
Ange Atlassian-domänen och mål-nycklar för spaces, och hämta sedan spaces från Confluence.
- Öppna Initialize Config Values och ställ in atlassianDomain till
https://yourDomain.atlassian.net. - Ställ in spaceKeys till en kommaseparerad lista, till exempel
space1, space2. - Öppna Fetch Confluence Spaces och ställ in URL till
{{ $json.atlassianDomain }}/wiki/api/v2/spaces. - I Fetch Confluence Spaces, aktivera Send Query och ställ in query-parametern keys till
{{ $json.spaceKeys }}. - Ställ in query-parametern type till
global. - Inloggningsuppgifter krävs: anslut era httpBasicAuth-inloggningsuppgifter i Fetch Confluence Spaces.
Steg 3: dela upp space-poster och kör parallella regelefterlevnadskontroller
Varje space delas upp till ett separat item, och därefter körs tre GraphQL-kontroller parallellt.
- Konfigurera Distribute Space Records med Field To Split Out inställt på
results. - Distribute Space Records skickar utdata till GQL Pages With Public Links och GQL Space Public Link Status och GQL Space Anonymous Check parallellt.
- I GQL Space Anonymous Check, ställ in Endpoint till
{{ $('Initialize Config Values').first().json.atlassianDomain }}/gateway/api/graphqloch behåll Operation Name somSpacePermissionsAnonymousQuery. - Ställ in Variables i GQL Space Anonymous Check till
{ "spaceKey": "{{ $json.key }}" }. - I GQL Space Public Link Status, ställ in Endpoint till
{{ $('Initialize Config Values').first().json.atlassianDomain }}/gateway/api/graphqloch Operation Name tillusePublicLinkSpaceTogglePublicLinkSpaceQuery. - Ställ in Variables i GQL Space Public Link Status till
{ "spaceId": "{{ $json.id }}" }. - I GQL Pages With Public Links, ställ in Endpoint till
{{ $('Initialize Config Values').first().json.atlassianDomain }}/gateway/api/graphqloch Operation Name tillPublicLinkPagesTablePublicLinksByCriteriaQuery. - Ställ in Variables i GQL Pages With Public Links till
{ "first": 250, "orderBy": "TITLE", "isAscending": true, "spaceId": "{{ $json.id }}", "status": ["ON","BLOCKED_BY_PRODUCT","BLOCKED_BY_SPACE"], "title": "", "after": "" }. - Inloggningsuppgifter krävs: anslut era httpBasicAuth-inloggningsuppgifter i GQL Space Anonymous Check, GQL Space Public Link Status och GQL Pages With Public Links.
Steg 4: mappa resultat och sätt ihop regelefterlevnadsrapporten
Normalisera data från varje gren, slå ihop resultaten och bygg den slutliga rapport-payloaden.
- I Map Anonymous Permissions, ställ in anonymousAccess till
{{ $json }}. - I Map Public Link Flag, ställ in publicLinksEnabled till
{{ $json }}. - I Map Public Link Pages, ställ in pagesWithPublicLink till
{{ $json }}. - Konfigurera Combine Results med Mode inställt på
combine, Combine By inställt påcombineByPositionoch Number Inputs inställt på3. - I Assemble Compliance Report, ställ in spaceKey till
{{ $json.publicLinksEnabled.data.publicLinkSpace.spaceKey }}. - Ställ in anonymousAccess till
{{ $json.anonymousAccess.data.spacePermissions.filteredSubjectsWithPermissions.nodes }}. - Ställ in publicLinksEnabled till
{{ $json.publicLinksEnabled.data.publicLinkSpace.status }}. - Ställ in pagesWithPublicLink till
{{ $json.pagesWithPublicLink.data.publicLinksByCriteria.nodes.map(p => ({ id: p.id, title: p.title, status: p.status, publicUrl: $('Initialize Config Values').first().json.atlassianDomain+p.publicLinkUrlPath, lastEnabledBy: p.lastEnabledByUser })) }}.
Steg 5: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att verifiera utdata från regelefterlevnadsrapporten och aktivera sedan arbetsflödet för användning i produktion.
- Klicka på Execute Workflow för att köra Manual Workflow Launch.
- Bekräfta att Assemble Compliance Report returnerar en post med spaceKey, anonymousAccess, publicLinksEnabled och pagesWithPublicLink.
- Om resultaten är tomma, gå tillbaka till Initialize Config Values och bekräfta att domänen och space-nycklarna är giltiga.
- När ni är nöjda, slå på arbetsflödet Active för att möjliggöra löpande manuella granskningar.
Vanliga fallgropar
- Atlassian- (Confluence-) inloggningsuppgifter kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först dina n8n-credentials och behörigheterna för Atlassian API-tokenen.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder misslyckas på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera output för alltid.
Vanliga frågor
Cirka 30 minuter om du redan har din Atlassian API-token.
Nej. Du klistrar in din domän och dina ytnycklar och kopplar sedan din Atlassian-credential i n8n.
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 också räkna in Atlassian-åtkomst (Confluence-plan) och API-användningsgränser, även om typiska granskningar ligger väl inom normala rate limits.
Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och klarar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serverhantering.
Ja. De flesta team ändrar helt enkelt listan med ytnycklar i steget ”Initialize Config Values” för att köra separata granskningar per avdelning. Du kan också byta output-mappningen i ”Assemble Compliance Report” för att ta med extra kolumner som granskningsdatum, granskarens namn eller ett ”owner”-fält för uppföljning. Om du vill smalna av sidresultaten justerar du GraphQL-frågan som används i kontrollen ”Pages With Public Links”.
Oftast handlar det om en utgången Atlassian API-token eller fel credential kopplad till någon av HTTP-/GraphQL-förfrågningarna. Skapa en ny token, uppdatera n8n-credentialen och bekräfta att kontot kan läsa ytor och ytbehörigheter. Om REST-anrop fungerar men GraphQL misslyckas beror det ofta på att åtkomst till GraphQL-endpointen saknas eller att förfrågan blockeras av organisationens säkerhetsinställningar. Kontrollera också Atlassian-domänvärdet du angav; ett litet skrivfel gör att allt skapar fel.
För sidor med publika länkar hämtar arbetsflödet upp till 250 sidor per yta. Antalet ytor du kan skanna begränsas mest av dina n8n-körningsgränser (i Cloud) och Atlassian API rate limiting; i self-hosted n8n beror det på serverstorlek och hur många ytor du kör i en batch.
Ofta ja, eftersom det här arbetsflödet bygger på logik med flera grenar och slår ihop flera datakällor (REST plus GraphQL) till en rapport, vilket kan bli både klumpigt och dyrt i andra verktyg. n8n är också enklare att self-hosta, så du betalar inte per litet steg när du kör granskningar regelbundet. Samtidigt: om du bara behöver en enkel automatisering för att ”exportera en lista med ytor” kan Zapier eller Make kännas snabbare att sätta upp. Den stora skillnaden är kontroll: granskningar behöver oftast konsekventa bevis, och n8n brukar vara stabilt när det väl är konfigurerat. Om du vill ha hjälp att välja, prata med en automationsexpert så tar vi fram den enklaste vägen.
Kör granskningen, få ett prydligt kalkylblad och gå vidare med din dag. Arbetsflödet håller bevisen konsekventa så att du kan fokusera på att åtgärda det som hittas.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.