Din “single source of truth” för n8n-noder är förmodligen en mix av gamla dokument, ett halvt uppdaterat kalkylark och någons minne. Sedan ändras en nodversion, en dokumentationslänk flyttas, och katalogen du delar internt blir lite fel. Igen.
Den här GitHub Sheets sync drabbar ärligt talat tekniska skribenter hårdast. Men community managers som underhåller publika resurser och engineering leads som planerar integrationer känner samma friktion. Resultatet är enkelt: en felfri, aktuell nodkatalog i Google Sheets utan konstant copy-paste.
Nedan ser du exakt vad workflowet hämtar från GitHub, hur det formaterar det och hur det håller ditt ark uppdaterat så att teamet kan lita på det de tittar på.
Så fungerar den här automatiseringen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: GitHub till Google Sheets: strukturerad nodekatalog
flowchart LR
subgraph sg0["Manual Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Trigger", pos: "b", h: 48 }
n1["<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 Repository Contents"]
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/>Get Directory Contents"]
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/>Filter Node Files"]
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/>Download Node File"]
n5@{ icon: "mdi:database", form: "rounded", label: "Append to Google Sheets", 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/>Parse JSON Data"]
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Process in Batches", pos: "b", h: 48 }
n8@{ icon: "mdi:database", form: "rounded", label: "Clear Google Sheets", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Data", pos: "b", h: 48 }
n9 --> n7
n10 --> n5
n0 --> n8
n6 --> n10
n3 --> n4
n4 --> n6
n7 --> n2
n8 --> n1
n2 --> n3
n5 --> n9
n1 --> 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 n5,n8 database
class n1,n2,n4 api
class n3,n6 code
classDef customIcon fill:none,stroke:none
class n1,n2,n3,n4,n6 customIcon
Problemet: att hålla en nodkatalog aktuell är tröttsamt
n8n:s nodekosystem förändras hela tiden. Nya noder tillkommer, kategorier justeras, dokumentations-URL:er ändras och nodversioner ökar när nya funktioner släpps. Om du underhåller en kalkylarksbaserad katalog manuellt hamnar du i samma loop om och om igen: bläddra i GitHub, öppna en noddefinition, kopiera fält, klistra in i Sheets och försöka hålla formateringen konsekvent. Det handlar inte bara om tid. Det är den mentala belastningen av att undra om arket fortfarande stämmer när någon frågar: “Vilka noder stödjer X?”
Friktionen växer snabbt. Här är var det oftast faller isär.
- Du tappar en timme (eller mer) bara på att hitta rätt
.node.json-filer i olika mappar i repot. - Manuell copy-paste smyger in småfel, som gamla nodeVersion-värden eller trasiga dokumentationslänkar.
- Flera personer “fixar” arket på olika sätt, vilket gör att kategorier och namngivning blir inkonsekventa över tid.
- När katalogen inte är pålitlig slutar team använda den och går tillbaka till ad hoc-sökning.
Lösningen: en GitHub-driven Google Sheets-katalog som uppdateras korrekt
Det här workflowet hämtar metadata för noddefinitioner direkt från det officiella GitHub-repot n8n-io/n8n och skriver sedan en strukturerad katalog till Google Sheets. Du startar det (manuellt som standard), det rensar befintligt ark så att du inte får dubbletter, och sedan hämtar det repoobjekt och kataloglistningar via HTTP-anrop. Därefter filtrerar det ner till enbart .node.json-filerna, laddar ner varje nodfil och tolkar JSON-innehållet för att plocka ut fälten du bryr dig om. Till sist mappar det fälten till felfria kolumner och lägger till rader i ditt ark i batchar, med en kort fördröjning för att hålla körningen stabil.
Workflowet börjar med en trigger i n8n och gör sedan GitHub API-anrop för att hitta nodfiler. Efter det bearbetar det varje fil i en batch-loop, hämtar nodnamn, versioner, kategorier och dokumentations-URL:er och skickar de färdiga strukturerade raderna till Google Sheets. Inget rotande i mappar. Inga inaktuella länkar som ligger kvar i månader.
Det du får: automatisering vs. resultat
| Vad detta workflow automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att ditt team underhåller en nodkatalog med ungefär 300 definitioner. Manuellt tar även en “snabb uppdatering” cirka 1 minut per nod för att öppna GitHub, bekräfta versioner och kopiera dokumentationslänkar, plus ytterligare 30 minuter efterstädning i Sheets. Det är ungefär 5–6 timmar irriterande jobb. Med det här workflowet triggar du körningen i n8n (cirka 2 minuter), låter det processa i batchar med väntetider och kommer tillbaka till ett helt uppdaterat ark på ungefär 20–40 minuter beroende på GitHubs svarstid.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Självhostningsalternativ om du föredrar det (Hostinger fungerar bra)
- GitHub för åtkomst till n8n-repots API
- Google Sheets för att lagra och dela katalogen
- GitHub Personal Access Token (skapa den i GitHub Settings → Developer Settings)
Kunskapsnivå: Medel. Du kopplar autentiseringsuppgifter, klistrar in ett Sheet ID och är bekväm med att kontrollera några noder om ett API-anrop misslyckas.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En manuell körning (eller en webhook) startar allt. Som standard använder workflowet en manuell trigger, vilket är perfekt när du vill “uppdatera katalogen nu”. Vill du kunna anropa det från ett annat system finns webhook- och respond-to-webhook-noder med i bygget.
GitHub-data hämtas och snävas in till noddefinitioner. HTTP Request-noder hämtar repoobjekt och kataloginnehåll, och sedan behåller ett filtreringssteg bara filer som slutar på .node.json. Det är det valet som gör att outputen håller sig strukturerad.
Varje nodfil laddas ner, tolkas och normaliseras. Workflowet laddar ner JSON, extraherar payloaden och mappar fält som nodeVersion, codexVersion, kategorier och dokumentationslänkar till förutsägbara kolumner via ett Set-steg (Edit Fields).
Ditt Google-ark rensas och fylls på igen i batchar. Först rensas befintliga rader, sedan läggs nya rader till och workflowet väntar kort mellan batch-cykler. Det här undviker delvisa uppdateringar och gör omkörningar säkra när GitHub är långsamt eller när rate limits är snäva.
Du kan enkelt ändra vilka fält som extraheras för att ta med mer metadata (eller färre kolumner) 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
Starta arbetsflödet med en manuell körning så att ni kan validera lagersaldos-exporten vid behov.
- Lägg till en Manual Launch Trigger-nod som startpunkt.
- Lämna standardinställningarna som de är, eftersom denna trigger inte kräver någon konfiguration.
- Anslut Manual Launch Trigger till Clear Spreadsheet Data.
Steg 2: anslut GitHub och Google Sheets
Det här arbetsflödet läser innehåll från ett GitHub-repo och skriver strukturerad nodmetadata till ett Google Sheet.
- I Fetch Repository Items, ställ in URL till
https://api.github.com/repos/n8n-io/n8n/contents/packages/nodes-base/nodes. - I Fetch Repository Items, ställ in Authentication till Predefined Credential Type och Credential Type till
githubApi. - I Retrieve Directory Items, ställ in URL till
={{$json["url"]}}och behåll Credential Type somgithubApi. - I Download Node Asset, ställ in URL till
={{$json["download_url"]}}och behåll Credential Type somgithubApi. - I Clear Spreadsheet Data, ställ in Operation till
clear, Document till[YOUR_ID]och Sheet tillSheet1. - I Append Spreadsheet Rows, ställ in Operation till
append, Document till[YOUR_ID]och Sheet tillSheet1.
Inloggning krävs: Anslut era githubApi-inloggningsuppgifter i Fetch Repository Items, Retrieve Directory Items och Download Node Asset.
Inloggning krävs: Anslut era Google Sheets-inloggningsuppgifter i Clear Spreadsheet Data och Append Spreadsheet Rows.
Steg 3: sätt upp batchloopen och hämta kataloginnehåll
Batchloopen styr iterationen över kataloger och stryper bearbetningscykeln.
- Anslut Fetch Repository Items till Batch Processing Loop.
- Från Batch Processing Loop, anslut den andra utgången till Retrieve Directory Items.
- Anslut Append Spreadsheet Rows till Delay Execution, och anslut sedan Delay Execution tillbaka till Batch Processing Loop för att fortsätta iterera.
⚠️ Vanlig fallgrop: Om Batch Processing Loop inte kopplas tillbaka från Delay Execution kommer arbetsflödet bara att bearbeta en enda batch.
Steg 4: filtrera, ladda ned och tolka nodtillgångar
Dessa noder filtrerar fram noddefinitionsfiler och normaliserar deras JSON till en förutsägbar struktur.
- I Filter Node Records, behåll JavaScript-koden som:
return items
.filter(item => item.json.name.endsWith('.node.json'))
.map(item => ({ json: { download_url: item.json.download_url } })); - Anslut Retrieve Directory Items till Filter Node Records, och därefter till Download Node Asset.
- I Extract JSON Payload, behåll tolkningslogiken som:
let obj;
try {
obj = typeof $json.data === 'string' ? JSON.parse($json.data) : $json.data;
} catch (e) {
obj = {};
}
return [{ json: obj }]; - Anslut Download Node Asset till Extract JSON Payload.
Steg 5: mappa fält och lägg till rader
Använd ett mappningssteg för att strukturera fälten innan de läggs till i arket.
- I Map Data Fields, ställ in tilldelningarna till:
node →={{ $json.node }}
nodeVersion →={{ $json.nodeVersion }}
codexVersion →={{ $json.codexVersion }}
categories →={{ $json.categories[0] }}, {{ $json.categories[1] }}
credentialDocumentation →={{ $json.resources.credentialDocumentation[0].url }}
primaryDocumentation →={{ $json.resources.primaryDocumentation[0].url }} - Anslut Extract JSON Payload till Map Data Fields, och därefter till Append Spreadsheet Rows.
- I Append Spreadsheet Rows, behåll Mapping Mode som
autoMapInputDataså att de mappade fälten matchar arkets kolumner.
Steg 6: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att validera GitHub-åtkomst, JSON-tolkning och utdata till Google Sheets.
- Klicka på Execute Workflow för att köra Manual Launch Trigger och följ datat hela vägen till Append Spreadsheet Rows.
- Bekräfta att Clear Spreadsheet Data rensar målarket och att nya rader läggs till efter varje batch.
- Verifiera att utdatakolumnerna (node, nodeVersion, codexVersion, categories, credentialDocumentation, primaryDocumentation) fylls i som förväntat.
- När ni är nöjda, slå om arbetsflödet till Active för produktionsanvändning.
Vanliga fallgropar
- GitHub-credentials kan gå ut eller sakna rätt scope. Om anrop börjar ge 401/403-fel, kontrollera först behörigheterna för din Personal Access Token (public_repo) i GitHub Settings.
- Om du använder Wait-noder eller extern bearbetning kommer körtiderna att variera. Öka väntetiden om nästa batch startar innan Google Sheets har hunnit skriva raderna.
- Skrivningar till Google Sheets kan misslyckas utan tydligt fel när arket inte är korrekt delat. Se till att kalkylarket delas med samma Google-konto som är kopplat till dina n8n OAuth-credentials och att kontot har redigeringsbehörighet.
Vanliga frågor
Cirka 30–45 minuter om din GitHub-token och Google-åtkomst är redo.
Nej. Du kopplar främst credentials och klistrar in ditt Google Sheet ID. Workflowet innehåller kodnoder, men du kan använda det som det är utan att redigera dem.
Ja. n8n har ett gratis alternativ för självhosting 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å ta hänsyn till GitHub API-användning (oftast gratis för den här typen av åtkomst till publika repos).
Två alternativ: n8n Cloud (managed, enklast att komma igång) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärd och hanterar n8n bra. Självhosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det är en praktisk justering. Lägg till nya fälttilldelningar i Set-noden “Map Data Fields” och uppdatera sedan rubrikerna i ditt Google-ark så att de matchar. Om datan ligger djupare i den nedladdade JSON:en justerar du kodnoden “Extract JSON Payload” så att den tar upp den till samma toppnivåstruktur. Vanliga tillägg är visningsnamn, nodens beskrivningstext och en ikon-sökväg för interna dashboards.
Oftast beror det på en utgången token eller fel behörigheter på token. Skapa en ny GitHub Personal Access Token med public_repo-åtkomst och uppdatera sedan credentialen som används av HTTP Request-noderna. Om det bara fallerar vid stora körningar kan du slå i rate limits, så en något längre väntetid i “Delay Execution” kan hjälpa.
Hundratals, utan problem.
För just det här jobbet är svaret oftast ja. Du behöver HTTP-anrop i flera steg, filtrering, batchbearbetning och ett pålitligt upplägg för “rensa och bygg om”, och n8n hanterar det utan att varje gren blir en extra debiterbar task. Zapier och Make kan fungera, men du får ofta brottas med paginering och loopbegränsningar, och du kan dessutom få betala mer när du uppdaterar katalogen regelbundet. n8n ger dig också möjligheten att självhosta, vilket spelar roll när du vill köra detta varje vecka utan att oroa dig för task-tak. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation.
En nodkatalog ska vara tråkig. Korrekt, uppdaterad och enkel att dela. Sätt upp detta en gång, kör det när du behöver och sluta barnvakta kalkylark.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.