Du ställer en enkel affärsfråga, och plötsligt blir det ett miniprojekt. Någon skriver SQL, någon dubbelkollar siffrorna, någon skärmdumpar ett diagram, och när det väl delas är ögonblicket redan förbi.
Den här uppsättningen för Postgres QuickChart-diagram träffar marknadsföringsansvariga som vill kunna ta fram nyckeltal själva, men driftchefer och byråägare känner av det också. Du får svar från PostgreSQL plus en QuickChart-länk som är redo att delas, utan att vänta på ”SQL-personen”.
Nedan ser du hur arbetsflödet omvandlar frågor på vanlig svenska till säker SQL, kör frågan och returnerar resultat med ett diagram du kan klistra in i Slack, mejl eller ett dokument.
Så fungerar automatiseringen
Hela n8n-arbetsflödet, från trigger till slutligt resultat:
n8n Workflow Template: PostgreSQL till QuickChart: diagram direkt från frågor
flowchart LR
subgraph sg0["Chat Flow"]
direction LR
n0@{ icon: "mdi:memory", form: "rounded", label: "Window Buffer Memory", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Extract data from file", pos: "b", h: 48 }
n5@{ icon: "mdi:play-circle", form: "rounded", label: "Chat Trigger", pos: "b", h: 48 }
n6@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Combine schema data and chat..", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "Load the schema from the loc..", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract SQL query", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check if query exists", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format query results", pos: "b", h: 48 }
n13@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare final output", pos: "b", h: 48 }
n14["<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 query result and cha.."]
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/postgres.svg' width='40' height='40' /></div><br/>Final SQL result"]
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n20@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n21@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields1", pos: "b", h: 48 }
n22@{ icon: "mdi:robot", form: "rounded", label: "plot agent", pos: "b", h: 48 }
n23@{ icon: "mdi:brain", form: "rounded", label: "deepseek-chat", pos: "b", h: 48 }
n24@{ icon: "mdi:brain", form: "rounded", label: "Deepseek-chat", pos: "b", h: 48 }
n6 --> n10
n22 --> n21
n19 --> n22
n5 --> n9
n21 --> n14
n24 -.-> n6
n23 -.-> n22
n18 --> n12
n10 --> n11
n12 --> n14
n12 --> n19
n0 -.-> n6
n11 --> n14
n11 --> n18
n11 --> n1
n4 --> n8
n20 -.-> n22
n8 --> n6
n9 --> n4
n14 --> n13
end
subgraph sg1["When clicking "Test workflow" Flow"]
direction LR
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Add table name to output", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Save file locally", pos: "b", h: 48 }
n7@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking 'Test workflow'", pos: "b", h: 48 }
n15["<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/>List all tables in a database"]
n16@{ icon: "mdi:cog", form: "rounded", label: "Convert data to Json", 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/postgres.svg' width='40' height='40' /></div><br/>Schema Extractor"]
n17 --> n2
n16 --> n3
n2 --> n16
n15 --> n17
n7 --> n15
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 n5,n7 trigger
class n6,n20,n22 ai
class n23,n24 aiModel
class n0 ai
class n11 decision
class n18,n15,n17 database
classDef customIcon fill:none,stroke:none
class n14,n18,n15,n17 customIcon
Problemet: affärsfrågor fastnar bakom SQL
De flesta team har inte problem med ”data”. De har problem med sista kilometern. Frågan är tydlig (”Hur många provperioder konverterade förra veckan?”), men svaret sitter fast i PostgreSQL och varje förfrågan blir en pingpong. Små ändringar skapar omarbete: ett annat datumintervall, ett nytt segment, en extra kolumn. Och ärligt talat är det i diagrammen som det verkligen spårar ur. Två personer kan visualisera samma resultat på olika sätt, vilket startar en helt ny diskussion om ”rätt siffra” i stället för vad ni ska göra härnäst.
Det summerar snabbt. Här är var det fallerar i verkligheten.
- En enda ”snabb fråga” kan sluka cirka 30 minuter när du räknar in förtydliganden, query-ändringar och formatering.
- Manuell kopiera-klistra av SQL bjuder in misstag, särskilt när folk återanvänder gamla frågor och glömmer att ändra filter.
- Diagram blir inkonsekventa eftersom alla använder olika kalkylblad eller dashboard-vyer.
- När svaren kommer sent fattar team beslut på magkänsla och får sedan jaga underlag i efterhand.
Lösningen: fråga på vanlig svenska, få data + en diagramlänk
Det här arbetsflödet ger dig ett konversationsbaserat sätt att hämta tillförlitliga svar från PostgreSQL och direkt visualisera dem med QuickChart. En användare skickar en fråga via chattriggern, och n8n laddar ditt sparade databasschema (tabeller och kolumner) så att AI:n inte gissar vad som finns. Därefter använder en AI-agent schemat för att översätta frågan till en SQL-fråga. Om ingen SQL skapas stoppar arbetsflödet säkert i stället för att köra något slumpmässigt. När SQL finns körs frågan i PostgreSQL, de returnerade fälten mappas till en korrekt formaterad struktur och resultatet skickas vidare till en diagramagent som skapar en QuickChart-konfiguration. Det slutliga svaret innehåller både query-resultatet och en QuickChart-länk som du kan dela var som helst.
Arbetsflödet startar med ett chattmeddelande och hämtar schemafilen som kontext. Därifrån genererar AI:n SQL, n8n validerar den och PostgreSQL returnerar raderna. Till sist gör QuickChart om datan till en diagram-URL, vilket betyder att ”svaret” redan är presentationsklart.
Vad du får: automatisering vs. resultat
| Vad arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att teamet ställer 10 databasfrågor i veckan och att varje fråga tar cirka 20 minuter att förtydliga, skriva SQL, köra den och bygga ett snabbt diagram i ett kalkylark. Det är ungefär 3 timmar av kontextbyten och efterarbete. Med det här arbetsflödet är den ”manuella” delen bara att skriva frågan (kanske 1 minut) och sedan vänta på frågan och diagramlänken (ofta ett par minuter). Räkna med runt 30 minuter totalt per vecka i stället för en halv arbetsdag.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger funkar bra)
- PostgreSQL som databasen du ska fråga mot.
- QuickChart för att generera delbara diagram-bilder via URL.
- DeepSeek API-nyckel (hämta den i din DeepSeek-kontopanel).
Kunskapsnivå: Medel. Du kopplar in behörigheter, anger en schemafil och bekräftar rättigheter för din databasanvändare.
Vill du inte sätta upp det själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En chattfråga drar igång allt. Arbetsflödet startar i Chat Intake Trigger, så du kan fråga något som ”Visa konverteringar per kanal de senaste 30 dagarna” på vanlig svenska.
Ditt schema hämtas in som räcken. n8n läser en sparad schemafil (JSON) som listar tabeller och kolumner och slår sedan ihop den med användarens meddelande så att modellen vet vad som faktiskt finns i din databas.
SQL genereras och rimlighetskontrolleras. En AI-agent för resonemang skapar SQL-satsen, och en If-nod (”Validate Query Presence”) säkerställer att det finns en riktig fråga innan något skickas till PostgreSQL. Om det inte gör det går arbetsflödet vidare till en säker no-op-väg.
Resultat blir en diagramlänk. PostgreSQL kör SQL:en, fält mappas till ett konsekvent utdataformat och en agent för diagramgenerering bygger en QuickChart-konfiguration så att svaret innehåller en URL som är redo att delas.
Du kan enkelt justera schemakällan för att stödja flera databaser eller team utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera chattriggern
Starta arbetsflödet när ett chattmeddelande kommer in så att systemet kan tolka begäran och förbereda schemamedveten kontext.
- Lägg till och konfigurera Chat Intake Trigger för att ta emot inkommande chattmeddelanden.
- Bekräfta att utdata från Chat Intake Trigger ansluter till Read Schema File som visas i arbetsflödet.
Steg 2: anslut schemaupptäckt för PostgreSQL
Läs in databasens schemadetaljer så att AI-agenten kan generera korrekt SQL mot er PostgreSQL-databas.
- Konfigurera Manual Run Trigger för att möjliggöra manuella körningar för uppdatering av schema.
- Konfigurera Retrieve Database Tables för att läsa tabellmetadata från PostgreSQL.
- Anslut Schema Data Extractor för att bearbeta utdata med tabellmetadata.
- Verifiera att Schema Data Extractor skickar utdata till Append Table Label, därefter till Convert Data to JSON File, och slutligen till Write File Locally.
- Referens krävs: Anslut era PostgreSQL-referenser i Retrieve Database Tables, Schema Data Extractor och Execute SQL Query.
Steg 3: förbered schema- och chattkontext
Läs den sparade schemafilen och slå ihop den med användarens chattinmatning för att skapa ett komplett kontextpaket.
- Konfigurera Read Schema File för att läsa schemafilen som skapats av Write File Locally.
- Anslut Read Schema File till Parse File Data för att extrahera schemainnehåll.
- Verifiera att Parse File Data ansluter till Merge Schema & Chat Input för att kombinera schema med inkommande chatttext.
- Notera att flera set-noder används i hela arbetsflödet (7 totalt) för att bygga ihop, formatera och mappa data – linjera var och en med avsedd schema-/chattstruktur.
Steg 4: konfigurera AI-resonemang och SQL-derivering
AI-agenten omvandlar användarens intention till SQL med hjälp av den kombinerade schema- och chattkontexten.
- Anslut Merge Schema & Chat Input till AI Reasoning Agent.
- Koppla Session Memory Buffer till AI Reasoning Agent för konversationsminne (referenser för minnet ställs in på överordnad agent, inte på minnesnoden).
- Anslut DeepSeek Chat Model B som språkmodell för AI Reasoning Agent.
- Referens krävs: Anslut era OpenAI-kompatibla referenser i DeepSeek Chat Model B.
- Säkerställ att AI Reasoning Agent skickar utdata till Derive SQL Statement och därefter till Validate Query Presence.
Steg 5: kör SQL och hantera parallella grenar
Validera SQL:en, kör den mot PostgreSQL och formatera resultaten för efterföljande diagramgenerering och sammanställning av svar.
- Konfigurera Validate Query Presence för att kontrollera om en SQL-sats finns innan körning.
- Validate Query Presence skickar utdata parallellt till både Merge Query & Reply och Execute SQL Query när villkoret är uppfyllt.
- Anslut Execute SQL Query till Format Query Output för att standardisera resultatformatet.
- Format Query Output skickar utdata parallellt till både Merge Query & Reply och Map Result Fields.
- Routa falsk-grenen från Validate Query Presence till Fallback No-Op för att säkert stoppa när ingen fråga genereras.
Steg 6: konfigurera diagramgenerering och strukturerad utdata
Mappa SQL-resultaten till diagramfält och använd en AI-agent för att generera strukturerad diagrambaserad utdata.
- Anslut Map Result Fields till Chart Generation Agent.
- Koppla Structured Output Interpreter till Chart Generation Agent för strukturerad parsning (referenser för parsern ställs in på överordnad agent, inte på parsern).
- Anslut DeepSeek Chat Model A som språkmodell för Chart Generation Agent.
- Referens krävs: Anslut era OpenAI-kompatibla referenser i DeepSeek Chat Model A.
- Säkerställ att Chart Generation Agent skickar utdata till Map Chart Fields och därefter till Merge Query & Reply.
Steg 7: sammanställ det slutliga svaret
Kombinera SQL-utdata, diagrammetadata och konversationssvar till en slutlig svarspayload.
- Använd Merge Query & Reply för att slå ihop data från SQL-resultat och diagramfält.
- Anslut Merge Query & Reply till Assemble Final Response.
- Verifiera att Assemble Final Response formaterar utdata för er chattfrontend eller efterföljande leverans.
Steg 8: testa och aktivera ert arbetsflöde
Kör end-to-end-tester för att bekräfta att SQL-generering, körning, diagram och svarssammanställning fungerar som förväntat.
- Klicka på Manual Run Trigger för att bekräfta att schemaupptäckt och filskapande fungerar end-to-end.
- Använd Chat Intake Trigger med ett testmeddelande (t.ex. ”Visa total försäljning per månad”) och granska flödet via AI Reasoning Agent → Derive SQL Statement → Validate Query Presence.
- Bekräfta att Execute SQL Query returnerar resultat och att Format Query Output parallellt matar både Merge Query & Reply och Map Result Fields.
- Verifiera att Assemble Final Response producerar den slutliga payloaden som innehåller SQL-resultat och diagramdata.
- När ni är nöjda, växla arbetsflödet till Active för att aktivera körning i produktion.
Vanliga fallgropar
- Postgres-inloggningar kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först inloggningsuppgiften i n8n och din databasanvändares grants.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder misslyckas på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera utdata i all evighet.
Vanliga frågor
Cirka en timme om din schemafil och dina databasuppgifter är redo.
Nej. Du kopplar konton och klistrar in en sökväg till schemafilen. Arbetsflödet sköter SQL-generering och diagramformatering åt dig.
Ja. n8n har ett gratis alternativ för egen hosting 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 kostnader för DeepSeek API-användning, som beror på hur många frågor du ställer.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, men då byter du ut det sista utdata-steget i stil med ”Respond to Webhook/Chat” mot en Slack-meddelandenod och skickar QuickChart-URL:en i meddelandetexten. Vanliga anpassningar är att tvinga en specifik diagramtyp (stapel vs. linje), lägga till ett standarddatumfilter i varje genererad fråga och att bara returnera aggregerade resultat så att råa rader inte delas.
Oftast handlar det om att databashost/port inte går att nå från där n8n körs, särskilt om Postgres är lokal. Om du tunnlar in (till exempel med ngrok) kan forwarding-adressen ändras och då behöver din n8n-inloggning uppdateras. Kontrollera också SSL-krav och att databasanvändaren har behörighet att läsa tabellerna som AI:n försöker fråga mot.
På n8n Cloud Starter kan du vanligtvis köra tusentals körningar per månad, och varje fråga är normalt en körning.
För det här användningsfallet är n8n oftast det praktiska valet eftersom du hanterar schemainläsning, villkorslogik och flerstegs AI-tolkning i ett och samma flöde. Zapier och Make kan lösa delar av det, men komplex förgrening blir ofta dyrt eller klumpigt snabbt. En annan stor faktor är kontroll: med n8n kan du köra självhostat, hålla nätverksåtkomst nära databasen och finjustera prompter utan att slåss med plattformsbegränsningar. Om allt du behöver är ”formulärinsändning → skicka ett diagram” kan enklare verktyg räcka. Prata med en automationsexpert om du vill ha en snabb rekommendation för din setup.
När det här väl rullar slutar rutinfrågor att avbryta din dag. Du får ett tydligt svar, ett konsekvent diagram och kan gå vidare.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.