Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

E-post till PostgreSQL: fakturor + Discord-larm

Rickard Andersson Partner, Nodenordic.se

Dina fakturor är redan ”organiserade” någonstans. I en inkorg. I en delad mapp. I någons huvud. Sen kommer månadsskiftet, och du sitter och matar in totalsummor igen, jagar förfallodatum och försöker minnas om den leverantören redan fakturerade dig för samma sak två gånger.

Det är här automatisering av e-postfakturor betalar sig snabbt. Marketing ops-team som hanterar leverantörskostnader känner av kaoset, och småföretagare slutar oftast med att göra allt själva. Ekonomikonsulter och frilansare ser det också, särskilt när kunder skickar fakturor från fem olika leverantörer i fem olika format.

Det här arbetsflödet bevakar din inkorg, extraherar fakturadetaljer med AI, loggar dem i PostgreSQL och postar en korrekt formaterad sammanfattning till Discord så att rätt personer ser nya fakturor direkt.

Så här fungerar automatiseringen

Hela n8n-arbetsflödet, från trigger till slutresultat:

n8n Workflow Template: E-post till PostgreSQL: fakturor + Discord-larm

Problemet: fakturor ligger i e-post, inte i dina system

De flesta fakturaproblem är inte ”bokföringsproblem”. De är processproblem. En leverantör mejlar en PDF, du laddar ner den, döper om den, öppnar den, kopierar fakturanumret, skriver in beloppet och försöker sedan lista ut var du ska spara den så att du hittar den senare. Någon annan i teamet gör samma sak… eller glömmer. Nu har du dubbletter, missade förfallodatum och ett kalkylark som alltid ligger en faktura efter verkligheten. Och helt ärligt: den mentala belastningen är värst. Du kan inte planera kassaflödet när du inte litar på din egen lista.

Det blir snabbt mycket. Här brukar friktionen dyka upp:

  • Att kopiera fält från PDF:er till ett kalkylark tar cirka 5 minuter per faktura, även när du jobbar snabbt.
  • Ett missat förfallodatum blir till panikfix, eller en förseningsavgift du hade kunnat undvika.
  • Dubbletter smyger sig in när leverantören skickar om en faktura eller när någon vidarebefordrar samma mejl internt.
  • Din ”single source of truth” blir uppdelad mellan inkorgssökningar, mappar och en databas som saknar kontext.

Lösningen: AI extraherar fakturadata och loggar allt automatiskt

Den här automatiseringen lyssnar efter nya mejl i en dedikerad fakturainkorg via IMAP. När ett meddelande kommer in kontrollerar den bilagor och filtrerar ner till enbart PDF-fakturor. Därefter plockar den ut text ur PDF:en och skickar innehållet till en AI-baserad ”fakturaextraherare” (en OpenAI-chatmodell i en n8n LLM-kedja). Modellen returnerar strukturerade fält som fakturanummer, leverantörens organisations-/momsnummer, totalsummor, valuta och förfallodatum. Därifrån validerar arbetsflödet resultatet, slår upp leverantören i PostgreSQL, lägger in företaget om det är nytt och kontrollerar sedan om fakturan redan finns via en unik matchning på företag+fakturanummer. Till sist postar det ett Discord-meddelande med en lättläst sammanfattning så att du ser att ett nytt åtagande just landade.

Arbetsflödet startar med en övervakning av inkommande mejl. Sedan extraherar och normaliserar det fakturadata, kontrollerar dubbletter och skriver korrekt formaterade rader i dina tabeller company och invoice. Discord blir ditt realtidsflöde för ”ny faktura”, vilket gör att du kan agera innan det hinner staplas på hög.

Det här får du: automatisering vs. resultat

Exempel: så här ser det ut i praktiken

Säg att du får ungefär 10 fakturor i veckan. Manuellt tar det oftast runt 5 minuter per faktura att ladda ner PDF:en, plocka ut fakturanummer, totalsumma, valuta, leverantörsdetaljer och förfallodatum, plus några minuter till för att informera teamet. Det är cirka 90 minuter per vecka, och det är lätt att göra misstag när du stressar. Med det här arbetsflödet lägger du kanske 2 minuter på att sätta upp regler för fakturainkorgen, och sedan sköter det sig självt. Mejlet kommer in, PostgreSQL uppdateras och Discord får sammanfattningen automatiskt.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • E-post (IMAP) för att övervaka en fakturainkorg.
  • PostgreSQL för att lagra tabellerna för företag och fakturor.
  • Discord för att posta fakturasammanfattningar till en kanal.
  • OpenAI API-nyckel (hämta den i din OpenAI-dashboard).

Kompetensnivå: Medel. Du kopplar konton, lägger in autentiseringsuppgifter och säkerställer att dina PostgreSQL-tabeller matchar förväntade fält.

Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Ett nytt fakturamejl kommer in. n8n övervakar din brevlåda via IMAP och triggar arbetsflödet så fort ett nytt meddelande dyker upp med bilagor.

Arbetsflödet behåller bara faktura-PDF:er. Det kontrollerar att mejlet faktiskt innehåller binära bilagor, filtrerar på PDF-filer och extraherar sedan text ur dokumentet så att det kan analyseras.

AI gör röriga fakturalayouter till strukturerade fält. OpenAI-chatmodellen läser den extraherade texten, och den strukturerade output-parsern tvingar svaret till förutsägbar JSON (fakturanummer, totalsummor, förfallodatum, leverantörsidentifierare). Om datan inte går igenom valideringen kan arbetsflödet stoppa innan det skräpar ner din databas.

PostgreSQL blir systemet som gäller, och Discord blir notifieringslagret. Arbetsflödet slår upp leverantören, lägger in den om den saknas, och kontrollerar sedan om fakturan redan finns innan det skriver en ny rad. En Discord-webhook postar en sammanfattning så att du och teamet ser vad som kom in utan att öppna PDF:en.

Du kan enkelt ändra notifieringsdestinationen till Slack eller Telegram beroende på behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: Konfigurera e-posttriggern

Det här arbetsflödet börjar med att övervaka en inkorg efter inkommande fakturor och ladda ner bilagor.

  1. Lägg till eller öppna Inbound Email Monitor och aktivera den om den är inaktiverad.
  2. Ställ in Download Attachmentstrue så att PDF:er är tillgängliga för bearbetning.
  3. Inloggningsuppgifter krävs: Anslut era imap-uppgifter i Inbound Email Monitor.

Steg 2: Filtrera och extrahera PDF-innehåll

Inkommande e-post kontrolleras efter bilagor, filtreras till PDF:er och konverteras sedan till text för analys.

  1. I Attachment Check, säkerställ att villkoret kontrollerar att {{$binary}} inte är tomt så att endast e-post med bilagor släpps igenom.
  2. I PDF Attachment Filter, behåll JavaScript-koden som filtrerar på mimeType === "application/pdf" för att bara släppa igenom PDF:er.
  3. I Binary Presence Check, verifiera att villkoret använder {{$binary}} för att bekräfta att den filtrerade PDF-datan finns.
  4. I PDF Text Extractor, ställ in Operation till pdf och behåll Keep Source som binary.

PDF Text Extractor skickar utdata parallellt till både LLM Invoice Extractor och Combine Email & AI.

Steg 3: Sätt upp AI-extraktion och parsning

AI-pipelinen tolkar den extraherade PDF-texten och omvandlar den till strukturerad fakturadata.

  1. Öppna LLM Invoice Extractor och bekräfta att extraktionsprompten matchar de fakturadetaljer ni behöver.
  2. I LLM Invoice Extractor, behåll meddelandemallen som refererar till filnamn och innehåll: Filename: {{$binary.data.fileName}} Data: {{$json.text}}.
  3. Säkerställ att Structured Data Parser innehåller JSON-schemaexemplet som ni vill att modellen ska returnera.
  4. Inloggningsuppgifter krävs: Anslut era openAiApi-uppgifter i OpenAI Chat Engine, som är språkmodellen som driver LLM Invoice Extractor.
  5. Obs: Structured Data Parser är en AI-undernod—lägg till uppgifter i OpenAI Chat Engine, inte i parsern.

Steg 4: Validera och avisera om fakturor

Efter AI-extraktion validerar arbetsflödet fakturor och avisera ert team samtidigt som företagsdata förbereds.

  1. I Combine Email & AI, behåll Mode inställt på combine och Combine By inställt på combineByPosition.
  2. I Invoice Validation, säkerställ att villkoret kontrollerar att {{$json.output.isInvoice}} är true.
  3. Bekräfta att Discord Alert Post innehåller innehållsmallen med fakturavariabler som {{$json.output.invoiceDetails.invoiceNumber}}.
  4. Inloggningsuppgifter krävs: Anslut era discordWebhookApi-uppgifter i Discord Alert Post.

Invoice Validation skickar utdata parallellt till både Discord Alert Post och Map Company Fields.

Steg 5: Lagra företags- och fakturadata i Postgres

Företags- och fakturaposter avdupliceras innan insert, och ID:n enhetliggörs för konsekvens.

  1. I Map Company Fields, mappa utställarens fält med uttryck: {{$json.invoiceDetails.issuer.taxNumber}}, {{$json.invoiceDetails.issuer.name}} och {{$json.invoiceDetails.issuer.address}}.
  2. I Lookup Company Record, ställ in Query till SELECT id FROM company WHERE tax_number = '{{ $json.issuer_tax_number }}';.
  3. Inloggningsuppgifter krävs: Anslut era postgres-uppgifter i Lookup Company Record, Insert Company Row, Lookup Invoice Record och Insert Invoice Row.
  4. I Company Missing Branch, behåll villkoret som kontrollerar {{$items('Lookup Company Record')[0].json.length}} för att välja mellan Insert Company Row och Use Existing Company ID.
  5. I Use Existing Company ID ställer ni company_id till {{$items('Lookup Company Record')[0].json[0].id}}, och i Use New Company ID ställer ni det till {{$json.id}}.
  6. I Lookup Invoice Record, ställ in Query till SELECT id FROM invoice WHERE invoice_number = '{{ $json.invoiceDetails.invoiceNumber }}' AND company_id = {{ $json.company_id }};.
  7. I Invoice Missing Branch, behåll villkoret som kontrollerar {{$items('Lookup Invoice Record')[0].json.length}} för att routa antingen Insert Invoice Row eller Invoice Duplicate Flag.
  8. I Invoice Duplicate Flag, behåll värdet för status som Invoice already exists och låt sedan båda vägarna mötas i Finalize Merge.

Steg 6: Testa och aktivera ert arbetsflöde

Kör ett komplett test med ett riktigt fakturamejl för att bekräfta parsning, aviseringar och databas-inserts.

  1. Klicka på Execute Workflow och skicka ett testmejl med en PDF-faktura till den övervakade brevlådan.
  2. Verifiera att Discord Alert Post publicerar ett meddelande med fält som fakturanummer och totalsummor.
  3. Kontrollera era Postgres-tabeller för att bekräfta att en ny företags- eller fakturarad skapades, eller att Invoice Duplicate Flag sattes.
  4. När allt fungerar, växla arbetsflödet till Active för användning i produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • IMAP-inloggning kan löpa ut eller kräva ”app-lösenord” (vanligt med Gmail och Outlook). Om mejl slutar trigga, kontrollera din e-postleverantörs säkerhetsinställningar och spara sedan om IMAP-autentiseringsuppgiften i n8n.
  • Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om efterföljande noder skapar fel på grund av tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg till din tonalitet tidigt, annars kommer du redigera utdata för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen av e-postfakturor?

Cirka en timme om din inkorg, OpenAI-nyckel och PostgreSQL-databas är klara.

Behöver jag kunna koda för att automatisera fakturaloggning från e-post?

Nej. Du klistrar mest in autentiseringsuppgifter och mappar några fält i n8n.

Är n8n gratis att använda för det här arbetsflödet för automatisering av e-postfakturor?

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 volymer. Du behöver också räkna med OpenAI API-kostnader, som vanligtvis är några cent per faktura beroende på modell och fakturalängd.

Var kan jag hosta n8n för att köra den här automatiseringen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärt och hanterar n8n bra. Egen hosting ger obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för automatisering av e-postfakturor till Slack-notiser i stället för Discord?

Ja, och det är en vanlig justering. Du kan ersätta Discord-webhook-noden med en Slack-nod (eller Microsoft Teams) och behålla resten av arbetsflödet likadant. Om du fortfarande vill använda Discord för vissa fakturor kan du grena på leverantörsnamn eller belopp och notifiera olika kanaler. Du kan också justera AI-extraktionsprompten i noden LLM Invoice Extractor för att hämta fler fält som inköpsordernummer eller bankuppgifter.

Varför misslyckas min Discord-anslutning i det här arbetsflödet?

Oftast är det webhook-URL:en. Skapa om webhooken i Discords serverinställningar, uppdatera sedan Discord-noden i n8n och kör ett test med ett enskilt fakturamejl. Om det fortfarande inte fungerar, kontrollera att ditt arbetsflöde inte försöker skicka ett meddelande när fakturavalideringen misslyckas, eftersom vissa körningar inte kommer ha fälten som behövs för att bygga en korrekt formaterad sammanfattning.

Hur många fakturor kan den här automatiseringen av e-postfakturor hantera?

Med n8n Cloud Starter kan du köra tusentals körningar per månad, vilket räcker för många små team. Om du hostar själv finns ingen körningsgräns; det beror främst på serverstorlek och hur snabbt du vill bearbeta PDF:er. Arbetsflödet hanterar normalt en faktura på under en minut efter att mejlet kommit in, där största delen av tiden går till textutvinning från PDF och AI-anropet.

Är den här automatiseringen av e-postfakturor bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här flödet behöver förgrening, validering och databasslagningar för att förhindra dubbletter. n8n hanterar den typen av logik snyggt utan att tvinga dig till dyra ”premium”-steg, och egen hosting är ett alternativ när volymen växer. Zapier eller Make kan fortfarande fungera om du bara vill ha ”mejlbifogad fil till kalkylark” med en enkel notifiering. Om du är osäker, prata med en automationsexpert så pekar vi dig i rätt riktning.

När det här väl rullar slutar fakturainmatning vara ett veckomoment och blir en tyst bakgrundsprocess. Din databas hålls strukturerad, teamet hålls uppdaterat och du slutar lägga tid på inkorgen.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal