Att exportera data från PostgreSQL borde vara enkelt. I stället blir det ett miniprojekt: kör en fråga, kopiera resultaten, klistra in i Excel, fixa kolumner, fixa datum, inse att du missade ett filter, gör om.
Det här är den typen av Postgres CSV export-röra som bromsar marketing ops när de behöver en lista ”nu direkt”. Det drabbar också byråägare som skickar kundrapporter och analytiker som tar ut veckovisa snapshots. Samma problem, olika deadlines. Du vill ha en fil som öppnas korrekt i Excel och är redo att delas.
Det här n8n-workflowet gör om en PostgreSQL-tabell till en prydlig CSV på ett repeterbart sätt, så du slipper sitta och passa exporterna. Du får se vad det automatiserar, vad du behöver och hur du anpassar det till dina egna tabeller.
Så fungerar automatiseringen
Hela n8n-workflowet, från trigger till slutlig output:
n8n Workflow Template: PostgreSQL till Excel, strukturerade CSV-exporter
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:cog", form: "rounded", label: "Spreadsheet File", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "TableName", pos: "b", h: 48 }
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/postgres.svg' width='40' height='40' /></div><br/>Postgres"]
n3 --> n1
n2 --> n3
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 n3 database
classDef customIcon fill:none,stroke:none
class n3 customIcon
Problemet: exporter som skapar fel så fort de hamnar i Excel
De flesta ”snabbexporter” är inte snabba. Du hämtar rader från Postgres, släpper in dem i Excel och så börjar formateringsrouletten. Datum byter format (eller blir text), kommatecken i titlar flyttar kolumner, och rubriker är inte konsekventa mellan körningar. Sedan ber någon om samma export nästa vecka, och du fastnar med att försöka minnas exakt fråga och exakt vilka städsteg du gjorde förra gången. Det värsta är den mentala belastningen: du litar inte på filen, så du fortsätter kontrollera den, vilket stjäl fokus från det faktiska arbetet.
Det blir snabbt mycket. Här är var det fallerar i verkliga team.
- Du gör samma fråga-och-städ-rutin varje vecka, vilket i tysthet äter upp cirka 1–2 timmar.
- Små formateringsproblem skapar stor osäkerhet, så intressenter ställer följdfrågor i stället för att använda datan.
- Copy-paste-exporter är lätta att göra fel med, särskilt när filter eller begränsningar ändras mellan körningar.
- Delning blir krånglig eftersom du inte tryggt kan säga: ”Ja, den här filen är standardversionen.”
Lösningen: ett repeterbart workflow för Postgres → CSV-export
Det här workflowet skapar en korrekt formaterad CSV-export direkt från din PostgreSQL-fråga, utan den vanliga manuella städningen. Du startar det med ett klick, sätter en etikett för tabellen (och filnamnet på outputen), och sedan kopplar n8n upp mot din Postgres-databas på distans och kör frågan du anger. Resultaten skickas vidare till en CSV-byggare som genererar en korrekt strukturerad kalkylbladsfil, så outputen blir konsekvent varje gång du kör. I stället för ”vad nu Excel bestämmer i dag” får du en förutsägbar fil du kan ge till en kund, skicka till en kollega eller arkivera för jämförelser senare. Det är avsiktligt enkelt, vilket gör det pålitligt.
Workflowet börjar med en manuell start i n8n. Därefter definierar det din tabelletikett (används för namngivning), kör PostgreSQL-frågan och konverterar de returnerade raderna till en CSV-fil via noden Spreadsheet File. Därifrån kan du behålla den lokalt eller bygga ut så att exporten sparas någonstans, som Google Drive.
Det du får: automatisering vs. resultat
| Det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du skickar en veckovis export med ”lästa böcker” (kolumner som book_title, book_author, read_date) till en kollega. Manuellt tar det oftast 10 minuter att köra frågan, exportera, öppna i Excel, fixa ett par kolumner och döpa om filen, så räkna med cirka 40 minuter per månad. Med det här workflowet tar det mer som 2 minuter att klicka kör och bekräfta etiketten, och sedan får du CSV-outputen redo att dela. Arbetet blir rutin i stället för irritationsmoment.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- PostgreSQL som källdatabas och för åtkomst till frågor.
- Spreadsheet File för att generera CSV i ett korrekt formaterat format.
- Postgres-inloggningsuppgifter (hämta dem från din databasadministratör eller hostingens dashboard).
Svårighetsnivå: Nybörjare. Du klistrar in en SQL-fråga, kopplar dina Postgres-uppgifter och testkör.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Manuell körning inne i n8n. Du klickar för att starta workflowet när du behöver en export, vilket är perfekt för veckorapportering eller engångsförfrågningar.
En tabelletikett sätts innan frågan körs. Den etiketten kan användas för att hålla filnamn och bladnamn konsekventa, så dina exporter inte blir till ”final_v7_verkligen_final.csv”.
Postgres frågas på distans. n8n ansluter till din PostgreSQL-server, kör frågan och returnerar rader i ett strukturerat format i stället för en copy-paste-klump.
En CSV-fil genereras automatiskt. Steget Spreadsheet File konverterar raderna till en CSV som Excel öppnar utan överraskande formateringsproblem.
Du kan enkelt ändra SQL-frågan för att exportera en annan tabell eller lägga till filter efter behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera den manuella triggern
Det här arbetsflödet startas manuellt så att ni kan köra exporter vid behov.
- Lägg till noden Manual Launch Trigger på er arbetsflödescanvas.
- Behåll standardinställningarna (inga fält krävs).
- Koppla Manual Launch Trigger till Define Table Label.
Steg 2: Anslut Postgres
Det här steget konfigurerar noden för databasfrågan och dess autentiseringsuppgifter.
- Lägg till noden Postgres Query Runner.
- Ställ in Operation på
executeQuery. - Ställ in Query på
=SELECT * FROM {{ $json["TableName"] }}. - Autentiseringsuppgifter krävs: Anslut era postgres-uppgifter.
- Koppla Define Table Label till Postgres Query Runner.
Steg 3: Konfigurera Define Table Label
Ange namnet på databastabellen som används av frågeuttrycket.
- Lägg till noden Define Table Label.
- I Values → String, ställ in Name på
TableName. - Ställ in Value på
booksRead.
Steg 4: Konfigurera CSV-utdata
Det här steget konverterar databasresultaten till en nedladdningsbar CSV-fil.
- Lägg till noden CSV File Builder.
- Ställ in Operation på
toFile. - Ställ in File Format på
csv. - Koppla Postgres Query Runner till CSV File Builder.
Steg 5: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att bekräfta att exporten fungerar innan ni aktiverar.
- Klicka på Execute Workflow från Manual Launch Trigger.
- Bekräfta att Postgres Query Runner returnerar rader från tabellen
booksRead. - Verifiera att CSV File Builder skapar en CSV-fil som innehåller den efterfrågade datan.
- När allt är validerat, växla arbetsflödet till Active för användning i produktion.
Vanliga fallgropar
- Postgres-inloggningsuppgifter kan löpa ut eller blockeras av IP-regler. Om det misslyckas, kontrollera först behörigheter för din databasanvändare och listan över tillåtna nätverk hos din DB-host.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstider. Öka väntetiden om nedströmsnoder misslyckas på grund av tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in ert tonalitet och varumärkesröst tidigt, annars kommer du redigera outputen för alltid.
Vanliga frågor
Cirka 20 minuter om du redan har Postgres-inloggningsuppgifter.
Nej. Du klistrar in din SQL-fråga och kopplar dina databasuppgifter 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 dina PostgreSQL-hostingkostnader (ofta redan täckta) eftersom det här workflowet inte kräver något betalt AI-API.
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 obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, men du behöver lägga till en del. Byt ut den manuella triggern mot en Schedule-trigger och koppla sedan outputen från CSV File Builder till ett uppladdningssteg för Google Drive så att filen sparas automatiskt. Många team justerar också steget ”Define Table Label” för att lägga till ett datum i filnamnet, så att veckovisa exporter inte skriver över varandra. Om du vill ha separata exporter per fråga kan du duplicera steget för Postgres-frågan och routa varje resultat till sin egen CSV-byggare.
Oftast handlar det om nätverksåtkomst eller behörigheter, inte workflowet. Bekräfta att databashosten tillåter inkommande anslutningar från där n8n körs och dubbelkolla sedan att användarnamnet har åtkomst till schemat/tabellen du frågar mot. Om det fungerade i går och fallerar i dag är nygenererade lösenord eller roterade hemligheter vanliga orsaker. Rate limiting är mer sällsynt här, men långa frågor kan timea ut om din databas eller VPN är långsam.
För typiska rapporter (tusentals till tiotusentals rader) är det inga problem. På n8n Cloud är din begränsning främst dina månatliga körningar, inte antal rader, eftersom en exportkörning oftast är en körning. Om du self-hostar finns ingen körningsgräns, och skalning handlar om din serverminne och hur tung din SQL-fråga är. För väldigt stora tabeller, exportera i chunkar (datumintervall eller ID:n) så att du inte skapar en enorm fil som Excel har svårt att öppna.
Ofta, ja. Zapier och Make kan flytta data, men databasexporter blir dyra eller klumpiga när du vill ha anpassad SQL, konsekvent filgenerering eller något utöver en enkel tvåstegs-zap. n8n trivs bättre med ”riktiga” workflows, även när du behöver förgreningar, städning eller flera exporter i samma körning. En annan praktisk punkt: self-hosting betyder att du inte betalar per uppgift när volymen ökar. Om du redan lever i Zapier för lättare automatiseringar kan du behålla det där, men för databas-till-fil-workflows är n8n oftast det lugnare valet. Prata med en automationsexpert om du vill ha en snabb rekommendation för din stack.
När det här väl är på plats slutar exporter vara ett återkommande avbrott. Du klickar på kör, får en korrekt formaterad CSV och fortsätter med din dag.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.