Dina automationer kör… tills de inte gör det. Och när något går sönder slutar det med att du klickar runt mellan utspridda dashboards, halvuppdaterad dokumentation och Slack-trådar som aldrig riktigt svarar på: ”Vad är faktiskt driftsatt just nu?”
Det här problemet med en Sheets Slack dashboard drabbar Ops-ansvariga först, om vi ska vara ärliga. Men marketing ops och stressade byråägare känner av det också, eftersom kunder och kollegor fortfarande förväntar sig snabba svar. Målet är enkelt: en live-översikt du kan kolla på några sekunder i stället för att jaga i en timme.
Det här n8n-workflowet bygger en felfri ”ops-hälsa”-dashboard från din n8n-instansdata och gör det sedan enkelt att dela samma sanning i Google Sheets och Slack. Du får se vad den hämtar, vad den producerar och hur du kan anpassa den till din miljö.
Så fungerar den här automationslösningen
Hela n8n-workflowet, från trigger till slutoutput:
n8n Workflow Template: Google Sheets + Slack: en vy för driftstatus
flowchart LR
subgraph sg0["Manual Execution Start Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Execution Start", pos: "b", h: 48 }
n1@{ icon: "mdi:play-circle", form: "rounded", label: "Sub-Workflow Trigger Start", 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/n8n.svg' width='40' height='40' /></div><br/>Retrieve Workflow List"]
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Node Details", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Workflow Metrics Builder", 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/code.svg' width='40' height='40' /></div><br/>Node Usage Summary"]
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/>Tag Usage Summary"]
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Global Totals Builder", 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/code.svg' width='40' height='40' /></div><br/>Webhook Usage Summary"]
n9@{ icon: "mdi:cog", form: "rounded", label: "Order Nodes", pos: "b", h: 48 }
n10@{ icon: "mdi:cog", form: "rounded", label: "Collect Node Stats", pos: "b", h: 48 }
n11@{ icon: "mdi:cog", form: "rounded", label: "Order Tags", pos: "b", h: 48 }
n12@{ icon: "mdi:cog", form: "rounded", label: "Collect Tag Stats", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Order Workflows", pos: "b", h: 48 }
n14@{ icon: "mdi:cog", form: "rounded", label: "Collect Workflow Stats", pos: "b", h: 48 }
n15@{ icon: "mdi:cog", form: "rounded", label: "Order Webhooks", pos: "b", h: 48 }
n16@{ icon: "mdi:cog", form: "rounded", label: "Collect Webhook Stats", pos: "b", h: 48 }
n17["<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/>Combine Final Payload"]
n11 --> n12
n9 --> n10
n15 --> n16
n6 --> n11
n5 --> n9
n12 --> n17
n13 --> n14
n10 --> n17
n7 --> n17
n8 --> n15
n16 --> n17
n2 --> n3
n4 --> n5
n4 --> n6
n4 --> n7
n4 --> n13
n4 --> n8
n14 --> n17
n3 --> n4
n1 --> n2
n0 --> n2
end
subgraph sg1["Flow 2"]
direction LR
n18["<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/webhook.dark.svg' width='40' height='40' /></div><br/>HTML Dashboard Webhook"]
n19@{ icon: "mdi:cog", form: "rounded", label: "Run Sub-Workflow (Configure ..", pos: "b", h: 48 }
n20@{ icon: "mdi:cog", form: "rounded", label: "Transform to XML", pos: "b", h: 48 }
n21["<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/html.dark.svg' width='40' height='40' /></div><br/>Compose HTML Output"]
n22@{ icon: "mdi:cog", form: "rounded", label: "Convert JSON to Binary", pos: "b", h: 48 }
n23["<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/webhook.dark.svg' width='40' height='40' /></div><br/>Return Webhook Response"]
n21 --> n22
n20 --> n21
n22 --> n23
n19 --> n20
n18 --> n19
end
subgraph sg2["Flow 3"]
direction LR
n24["<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/webhook.dark.svg' width='40' height='40' /></div><br/>XSL Template Webhook"]
n25@{ icon: "mdi:swap-vertical", form: "rounded", label: "Template Components", pos: "b", h: 48 }
n26@{ icon: "mdi:swap-vertical", form: "rounded", label: "Assemble XSL Template", pos: "b", h: 48 }
n27["<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/webhook.dark.svg' width='40' height='40' /></div><br/>Return XSL Response"]
n26 --> n27
n25 --> n26
n24 --> n25
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,n1 trigger
class n18,n23,n24,n27 api
class n5,n6,n8 code
classDef customIcon fill:none,stroke:none
class n2,n5,n6,n8,n17,n18,n21,n23,n24,n27 customIcon
Problemet: ingen gemensam källa till sanning för n8n-ops-hälsa
n8n:s standardvyer funkar när du har en handfull workflows. När du kör dussintals (eller hundratals) blir överblicken en daglig kostnad. Du behöver veta vad som är aktivt, vilka triggers som finns, vad taggar betyder och vart webhooks pekar, men informationen är utspridd över olika skärmar och filtrerade vyer. Och så frågar någon: ”Vilken webhook ska jag anropa för lead routern?” och du är tillbaka på att copy-pasta URL:er från workflow till workflow. Det handlar inte bara om tid. Det är den mentala belastningen av att aldrig vara helt säker på att du tittar på senaste läget.
Friktionen bygger på. Små glapp blir stora incidenter när ingen snabbt kan svara på grundfrågor.
- Du tappar cirka 30 minuter bara på att byta flikar när ett workflow fallerar och du försöker bekräfta vad som ändrats.
- Webhook-endpoints är svåra att inventera, vilket gör att team råkar anropa gamla routes eller råkar duplicera nya.
- Taggar glider över tid, så ”prod” och ”production” blir två olika världar utan att någon märker det.
- Utan en delad vy blir Slack-uppdateringar åsikter i stället för fakta, och det bromsar beslut.
Lösningen: en live-inventering av n8n som du kan dela i Sheets och Slack
Det här workflowet hämtar en komplett lista över workflows från din n8n-instans, plockar ut noddetaljer och bygger sedan ett antal mätetal som svarar på praktiska ops-frågor. Det aggregerar nodanvändning, tagganvändning, totalsiffror för hela instansen och (från uppdateringen i maj 2025) en full lista över webhook-endpoints kopplade till de workflows som äger dem. Därefter skapar det en felfri dashboard-output med XML och en XSL-mall som är stylad med Bootstrap 5. Resultatet är en enda, fristående översikt som du kan öppna i en webbläsare och återanvända som ”sanningskälla” för rapportering. Därifrån är det enkelt att trycka samma sammanfattning till Google Sheets och posta höjdpunkterna i Slack för daglig synlighet.
Workflowet startar antingen manuellt eller via en sub-workflow-trigger och läser sedan din n8n-instansinventering via n8n-noden. Det transformerar och aggregerar datan till en slutlig JSON-payload och renderar därefter en HTML-dashboard via dedikerade webhooks. Vill du ha samma synlighet i teamverktyg kan du också skriva nyckeltalen till Google Sheets och skicka en kort Slack-sammanfattning baserad på samma payload.
Det du får: automation kontra resultat
| Vad detta workflow automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att ditt team kör cirka 60 workflows över två miljöer och att ni gör en snabb ”ops-hälsa”-koll tre gånger i veckan. Manuellt kanske du lägger 10 minuter på att skanna listor, ytterligare 10 minuter på att leta webhook-URL:er och sedan 10 minuter på att skriva en Slack-uppdatering. Räkna det som 30 minuter per koll, alltså cirka 1,5 timmar i veckan. Med det här workflowet triggar du en körning (cirka en minut), väntar ett par minuter på att dashboarden ska renderas och klistrar sedan in en kort sammanfattning i Slack samt uppdaterar en flik i Google Sheets. Du är oftast klar på under 10 minuter.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Möjlighet att self-hosta om du föredrar det (Hostinger funkar bra)
- Google Sheets för den delade ops-översiktstabellen
- Slack för att posta sammanfattningsuppdateringar till en kanal
- n8n API-åtkomst (använd dina n8n-användar-/API-uppgifter)
Kunskapsnivå: Medel. Du kopplar in credentials och uppdaterar instansens URL-variabler, och kan sedan valfritt mappa fält till Sheets/Slack.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En körning startar från en manuell trigger eller ett annat workflow. För ad hoc-kontroller kör du det manuellt. För schemalagd rapportering triggar du det från ett parent-workflow som kör dagligen eller veckovis.
Din n8n-instansinventering hämtas och normaliseras. Workflowet hämtar listan över workflows, extraherar noddetaljer och bygger sedan en konsekvent metrics-payload, inklusive totalsiffror, tagggrupperingar och webhook-listningar.
Statistik aggregeras till något människor kan skanna. Det ordnar workflows, noder, taggar och webhooks och aggregerar sedan antal så att du kan se ”toppnoder”, ”mest använda taggar” och andra mönster utan att exportera och rensa data manuellt.
En dashboard genereras och serveras via webhooks. En webhook returnerar HTML-dashboardens output och en annan returnerar XSL-mallen som används för att rendera den. Samma slutpayload kan också återanvändas för att uppdatera ett Google Sheet och skicka en Slack-sammanfattning.
Du kan enkelt ändra Slack-meddelandets format så att du bara postar varningsflaggor (som inaktiva workflows) utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera webhook-triggern
Det här arbetsflödet kan köras manuellt eller via dashboardens webhooks. Konfigurera webhooks så att HTML- och XSL-endpoints är tillgängliga.
- Öppna HTML Dashboard Webhook och ställ in Path till
fb550a01-12f2-4709-ba2d-f71197b68340. - Ställ in Response Mode till
responseNodei HTML Dashboard Webhook. - Öppna XSL Template Webhook och ställ in Path till
73a91e4d-143d-4168-9efb-6c56f2258aec/dashboard.xsl. - Ställ in Response Mode till
responseNodei XSL Template Webhook. - Låt Manual Execution Start vara aktiverad för testning och manuella körningar.
Tips: Använd test-webhook-URL:erna som visas i varje webhook-nod under konfigureringen. Efter aktivering byter ni till produktions-URL:erna.
Steg 2: anslut n8n API-åtkomst
Arbetsflödet hämtar arbetsflödesmetadata från er n8n-instans. Ni måste ansluta n8n API-inloggningsuppgifter för hämtningsnoden.
- Öppna Retrieve Workflow List.
- Credential Required: Anslut era n8nApi-inloggningsuppgifter.
- Lämna Filters tomt för att hämta alla arbetsflöden, eller lägg till filter om ni vill ha en mer avgränsad rapport.
- Bekräfta flödet från Manual Execution Start → Retrieve Workflow List och från Sub-Workflow Trigger Start → Retrieve Workflow List.
⚠️ Vanlig fallgrop: Om Retrieve Workflow List saknar API-inloggningsuppgifter kommer arbetsflödet att misslyckas direkt. Säkerställ att n8n API-token är giltig och har åtkomst att lista arbetsflöden.
Steg 3: sätt upp arbetsflödesmätetal och parallella sammanfattningar
Bygg mätetal per arbetsflöde och generera sedan sammanfattningssektioner parallellt för noder, taggar, globala totaler, arbetsflöden och webhooks.
- I Extract Node Details, ställ in nodes_array till
={{$jmespath($json,'nodes[*].type').map(item => (item.split('.').pop().toUpperCase() ))}}. - Ställ in tags_array till
={{$jmespath($json,'tags[*].name')}}. - Ställ in instance_url till
={{$env["N8N_PROTOCOL"]}}://{{$env["N8N_HOST"]}}. - Ställ in webhook_paths_array till
={{ $jmespath($json, `nodes[?type=='n8n-nodes-base.webhook'].parameters.path | [?@]`) }}. - I Workflow Metrics Builder bygger ni objektet wf_stats med hjälp av det befintliga uttrycket för att aggregera nodantal, datum, taggar och webhook-sökvägar.
- Workflow Metrics Builder skickar ut till Node Usage Summary, Tag Usage Summary, Global Totals Builder, Order Workflows och Webhook Usage Summary parallellt.
Tips: Om ni ser tomma tagg- eller webhook-sektioner, verifiera JMESPath-uttrycken i Extract Node Details och säkerställ att era arbetsflöden faktiskt innehåller taggar eller webhook-noder.
Steg 4: konfigurera sortering och aggregering för dashboard-sektioner
Varje sammanfattningsutdata sorteras och aggregeras till en slutlig payload som matar dashboarden.
- I Order Nodes, sortera på count fallande och därefter node stigande.
- I Collect Node Stats, ställ in Aggregate till
aggregateAllItemDataoch Destination Field Name tillnodes-section. - I Order Tags, sortera på count fallande och därefter tag stigande; aggregera sedan i Collect Tag Stats till
tags-section. - I Order Webhooks, sortera på count fallande och därefter hookpath stigande; aggregera sedan i Collect Webhook Stats till
whooks-section. - I Order Workflows, sortera på wf_stats.wf_updated fallande och därefter wf_stats.wf_name stigande; aggregera sedan i Collect Workflow Stats.
- I Combine Final Payload, ställ in Mode till
combine, Combine By tillcombineByPositionoch Number Inputs till5.
Steg 5: konfigurera pipeline för XML/HTML-utdata
Konvertera den slutliga payloaden till XML, applicera XSL-mallen och returnera HTML-svaret för dashboarden.
- Öppna Run Sub-Workflow (Configure Required) och ställ in Workflow ID till ID:t för arbetsflödet som sätter ihop den slutliga payloaden.
- I Transform to XML, ställ in Mode till
jsonToxml. - I Compose HTML Output, ställ in HTML till
{{ $json.data }}. - I Convert JSON to Binary, ställ in Mode till
jsonToBinaryoch Source Key tillhtml. - I Return Webhook Response, ställ in Respond With till
binary.
⚠️ Vanlig fallgrop: Run Sub-Workflow (Configure Required) har ett tomt Workflow ID. Arbetsflödet kommer att stoppa här tills ni väljer ett giltigt underarbetsflöde.
Steg 6: bygg ihop och servera XSL-mallen
Dessa noder bygger XSL-stilmallen och returnerar den via mall-webhooken som används av HTML-svaret.
- I Template Components, behåll de fördefinierade sektionerna som sidebar, overview, workflows, nodes, tags, webhooks och about.
- I Assemble XSL Template, säkerställ att mallen refererar till komponentfälten med uttryck som
{{ $json.sidebar }},{{ $json.overview }}och de andra sektionsvariablerna. - I Return XSL Response, ställ in Respond With till
textoch Response Body till={{ $json.xsl_template }}.
Steg 7: testa och aktivera ert arbetsflöde
Verifiera datapipelinen och renderingen av dashboarden innan ni slår på produktionsåtkomst.
- Klicka Execute Workflow från Manual Execution Start och bekräfta att Retrieve Workflow List returnerar poster.
- Kontrollera att Workflow Metrics Builder matar de parallella grenarna för Node Usage Summary, Tag Usage Summary, Global Totals Builder, Order Workflows och Webhook Usage Summary.
- Öppna test-URL:en för HTML Dashboard Webhook och verifiera att en renderad HTML-dashboard returneras.
- Öppna test-URL:en för XSL Template Webhook och verifiera att XSL-stilmallen returneras som text.
- När resultatet ser korrekt ut, växla arbetsflödet till Active för produktionsanvändning.
Vanliga fallgropar
- n8n-credentials kan gå ut eller sakna behörighet att läsa workflows. Om det skapar fel, börja med att kontrollera din n8n-användares/token-åtkomst i n8n:s Credentials-område.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Cloud-användare kan inte förlita sig på miljövariabler på samma sätt. Uppdatera instans-URL-värdena i delarna ”get-nodes-via-jmespath” och ”Create HTML” i workflowet så att de genererade länkarna pekar rätt.
Vanliga frågor
Cirka 30 minuter om du redan har åtkomst till din n8n-instans.
Ingen kodning krävs. Du kopplar främst ihop konton och justerar ett par värden, som din instans-URL.
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 eventuell hostingkostnad om du self-hostar (ofta cirka 10 USD/månad på en liten VPS).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja. Återanvänd outputen från ”Combine Final Payload” som källa och lägg sedan till ett Slack-meddelandesteg som postar bara de totalsiffror du bryr dig om (aktiva workflows, topp-taggar, antal webhooks). Vanliga anpassningar är filtrering på tagg (t.ex. ”prod”), att lyfta inaktiva workflows och att bara posta förändringar sedan igår.
Oftast handlar det om credentials eller behörigheter. Bekräfta att credentialen du använder kan läsa workflows i din n8n-instans, spara om den i n8n och testa sedan delen ”Retrieve Workflow List” igen. På n8n Cloud bör du också dubbelkolla workflowets instans-URL-inställningar, eftersom miljövariabler inte hanteras på samma sätt.
Några hundra workflows är vanligt, och self-hosting skalar med serverstorleken.
För det här användningsfallet, ja, för det mesta. Du introspekterar n8n självt, aggregerar och genererar en riktig dashboard-output, vilket är klumpigt i Zapier eller Make och kan bli dyrt när du lägger till förgreningar. n8n låter dig också self-hosta, så du betalar inte per liten mikrosteg när du bygger ut rapporteringen senare. Om du bara vill ha en enkel ”posta till Slack när en körning fallerar” kan Zapier eller Make gå snabbare att sätta upp. Prata med en automationsexpert om du vill ha hjälp att välja det mest robusta upplägget.
När du har en live-vy av din n8n-verklighet blir ops lugnare. Workflowet håller fakta organiserade så att du kan lägga din uppmärksamhet på vad du ska förbättra härnäst.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.