Reseräkningar faller isär i de tråkiga delarna. Kvitton begravs i inkorgar, totalsummor stämmer inte med det som står i PDF:en, och ekonomiavdelningen får jaga folk för saknade fält.
Om du jobbar med drift/ops eller ekonomi känner du redan igen det. Teamadministratörer som städar upp efter resor känner det också. Den här uppsättningen för Drive Sheets expenses förvandlar ”skicka kvittot” till en strukturerad logg och en tydlig sammanfattning, utan oändliga påminnelser.
Nedan ser du den exakta automatiseringen, vad den löser och hur du rullar ut den utan att göra ersättningsprocessen till ett nytt projekt.
Så fungerar automatiseringen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: Google Drive till Google Sheets: reseräkningar loggas
flowchart LR
subgraph sg0["On form submission Flow"]
direction LR
n0["<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/form.svg' width='40' height='40' /></div><br/>On form submission"]
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/code.svg' width='40' height='40' /></div><br/>Transform Output"]
n2@{ icon: "mdi:cog", form: "rounded", label: "Upload file", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Extract from File", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "DocClaim Assistant Agent", pos: "b", h: 48 }
n5@{ icon: "mdi:database", form: "rounded", label: "Append row in sheet", 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/>Transform invoice record"]
n7@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", 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/>Create HTML Email Template"]
n9@{ icon: "mdi:message-outline", form: "rounded", label: "Send trip expense request to..", pos: "b", h: 48 }
n10["<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/>Handle multiple files"]
n11@{ icon: "mdi:brain", form: "rounded", label: "GPT", pos: "b", h: 48 }
n11 -.-> n4
n2 --> n6
n1 --> n8
n3 --> n4
n0 --> n10
n10 --> n2
n10 --> n3
n4 --> n1
n7 -.-> n4
n6 --> n5
n8 --> n9
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 n4,n7 ai
class n11 aiModel
class n5 database
class n1,n6,n8,n10 code
classDef customIcon fill:none,stroke:none
class n0,n1,n6,n8,n10 customIcon
Problemet: reseräkningar skapar merjobb (och fel)
Manuella reseräkningar känns enkla tills du gör dem i volym. En person skickar tre PDF:er, en annan skickar en suddig skärmdump och någon glömmer resedatumen helt. Sedan måste ekonomiavdelningen tolka kvitton, skriva in totalsummor igen, gissa moms och stämma av allt mot företagets policy. Det är inte ”admin”. Det är ett återkommande dataregistreringsjobb med verkliga konsekvenser: felaktiga utbetalningar, stökiga revisionsspår och ett konstant dropp av Slack-pingar och e-posttrådar som aldrig riktigt dör.
Det blir mycket snabbt. Här är var det oftast brister.
- Kvitton kommer i olika format, så någon måste standardisera dem innan de går att använda.
- Totalsummor och moms skrivs in för hand, vilket gör att små misstag blir jobbiga samtal om ersättning.
- Det finns ingen gemensam källa som gäller, så ekonomiavdelningen bygger ändå ett ”skuggark” i praktiken.
- Saknad kontext (syfte, datum, avdelning) tvingar fram följdfrågor som försenar utbetalningar och rapportering.
Lösningen: spara kvitton automatiskt, extrahera totalsummor, logga i Sheets, notifiera ekonomi
Det här flödet gör en reseräkning till en repeterbar och spårbar inmatningsprocess. En medarbetare skickar in ett formulär med resedetaljer (namn, avdelning, syfte, datum) och laddar upp en eller flera kvitto-PDF:er. Varje fil sparas i en dedikerad Google Drive-mapp för dokumentation. Därefter läser flödet PDF-texten och skickar den till en AI-agent (driven av en OpenAI-chatmodell) som extraherar strukturerade fält som leverantör, datum, total och moms. Till sist formaterar n8n datan till en korrekt formaterad reseräkningspost, lägger till en rad per kvitto i Google Sheets och skapar en läsbar HTML-sammanfattning som mejlas till ekonomi, så att de kan godkänna och betala utan att jaga kontext.
Flödet startar vid formulärinskicket. Det delar upp flera uppladdningar till enskilda kvitton, bearbetar varje PDF och sammanför sedan resultaten till två utfall: en prydlig kalkylbladslogg och en ekonomifärdig sammanfattning via e-post. Inga extra verktyg som medarbetare måste lära sig, och ingen manuell ominmatning för ekonomi.
Det du får: automatisering vs. resultat
| Vad det här flödet automatiserar | Resultaten du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att en konsult skickar in en resa med 6 kvitto-PDF:er. Manuellt lägger ekonomi ofta cirka 8 minuter per kvitto på att öppna filen, hitta total och moms och skriva in det i ett ark, plus ytterligare cirka 10 minuter på att mejla frågor. Det blir ungefär en timme per reseräkning. Med det här flödet skickar medarbetaren in formuläret på cirka 5 minuter, n8n bearbetar PDF:erna i bakgrunden och ekonomi får en enda mejlsammanfattning och en förifylld Google Sheets-logg. ”Ekonomitiden” blir ofta bara en snabb granskning.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Google Drive för att lagra uppladdade kvitto-PDF:er.
- Google Sheets för att logga en rad per utlägg.
- OpenAI API-nyckel (hämta den i OpenAI-dashboarden)
Svårighetsgrad: medel. Du kopplar Google-inloggningar, lägger in en API-nyckel och justerar ett par mappningsfält så att de matchar dina kolumner i arket.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Formulärinskicket startar allt. En medarbetare fyller i resedetaljer och laddar upp en eller flera kvitto-PDF:er via n8n:s formulärtrigger.
Kvitton delas upp och lagras. Om flera filer laddas upp delar n8n upp dem i enskilda objekt och sparar sedan varje PDF i rätt Google Drive-mapp så att inget försvinner senare.
Flödet läser varje PDF och extraherar siffrorna. Det hämtar text från filen, och sedan returnerar AI-agenten (med en OpenAI-chatmodell plus en parser för strukturerad output) konsekventa fält som leverantör, total, moms och datum.
Två utdata skapas för ekonomi. En väg lägger till en korrekt formaterad rad i Google Sheets per kvitto. Den andra sammanställer reskontexten och kvittouppdelningen till ett HTML-mejl och skickar det till ekonomiinboxen.
Du kan enkelt ändra vilka fält som samlas in i formuläret så att de matchar din policy, och sedan justera kolumnerna i arket så att de passar din rapportering. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera formulärtriggern
Sätt upp intagsformuläret som fångar uppgifter om medarbetarens resa och uppladdningar av kvitton.
- Lägg till och öppna Form Intake Trigger.
- Ställ in Form Title på
Business Trip Claim Submission. - Ställ in Form Description på
Submit your business trip expense claim by providing trip details and uploading all related invoices or receipts.. - Bekräfta att formulärfälten inkluderar Employee Name, Department, Trip Purpose, From Date, To Date samt en filuppladdning märkt Receipts / Invoices som är begränsad till
.pdf. - Koppla Form Intake Trigger till Split Uploaded Files.
Steg 2: Anslut Google Drive och Sheets
Lagra uppladdade kvitton i Drive och logga metadata i Sheets.
- Öppna Store File to Drive och ställ in Name på
=invoice-{{ $now.toFormat("yyyyLLdd-HHmmss") }}-{{$binary.data.fileName}}. - Välj mål-Drive och mapp i Store File to Drive (mapp-ID:t använder för närvarande
[YOUR_ID]). - Inloggningsuppgifter krävs: Anslut era googleDriveOAuth2Api-inloggningsuppgifter i Store File to Drive.
- Öppna Append Sheet Record, ställ in Operation på
appendoch välj kalkylark och blad (för närvarande[YOUR_ID]ochSheet1). - Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter i Append Sheet Record.
Split Uploaded Files skickar utdata till både Store File to Drive och Parse PDF Text parallellt.
Steg 3: Sätt upp filbearbetning och mappning
Dela upp flera uppladdningar, mappa Drive-metadata till en rad i ett blad och säkerställ att textextrahering från kvitton är aktiverad.
- I Split Uploaded Files, behåll JavaScript-koden som filtrerar binära nycklar som börjar med
Receipts___Invoices_och skickar ut en fil per item. - I Parse PDF Text, ställ in Operation på
pdf. - I Map Claim Row, behåll Mode som
runOnceForEachItemoch mappa fält somEmployeeName,DepartmentochTripPurposefrån Form Intake Trigger. - Säkerställ att Store File to Drive är kopplad till Map Claim Row, och därefter till Append Sheet Record.
Steg 4: Konfigurera AI-extrahering av kvitton och bygg sammanfattningen
Extrahera strukturerad kvittodata med AI, sammanställ underlagsdata och bygg en HTML-sammanfattning.
- I Receipt Analysis Agent, behåll prompttexten och säkerställ att Has Output Parser är aktiverad.
- Öppna Structured Parsing Helper och verifiera JSON-schemaexemplet som används för strukturerade utdata (lägg inte till inloggningsuppgifter här).
- Öppna OpenAI Mini Model och bekräfta att modellen är inställd på
gpt-4.1-mini. - Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter i OpenAI Mini Model.
- I Assemble Claim Data, behåll JavaScript-koden som bygger objektet
employeeoch arrayenexpensesfrån AI-utdata. - I Build HTML Summary, behåll HTML-generatorns script som formaterar sammanfattningstabellerna.
OpenAI Mini Model är ansluten som språkmodell för Receipt Analysis Agent — säkerställ att inloggningsuppgifter läggs till i OpenAI Mini Model, inte i agenten eller Structured Parsing Helper.
Steg 5: Konfigurera e-postutskicket
Skicka en formaterad sammanfattning till ekonomiteamet via e-post efter att HTML:en har byggts.
- Öppna Email Finance Summary och ställ in HTML på
={{ $json.html }}. - Ställ in Subject på
=Expense Claim Request - {{ $('Assemble Claim Data').item.json.employee.name }} – {{ $('Assemble Claim Data').item.json.employee.department }} - {{ $('Assemble Claim Data').item.json.employee.tripPurpose }}. - Inloggningsuppgifter krävs: Anslut era smtp-inloggningsuppgifter i Email Finance Summary.
- Bekräfta att Build HTML Summary är kopplad till Email Finance Summary.
Steg 6: Testa och aktivera ert workflow
Validera processen från början till slut innan ni slår på den för produktionsanvändning.
- Klicka på Test workflow och skicka in ett testformulär via Form Intake Trigger med ett eller flera PDF-kvitton.
- Verifiera att workflowet kör båda grenarna: filer laddas upp av Store File to Drive och tolkas av Parse PDF Text.
- Bekräfta att en ny rad visas i kalkylarket via Append Sheet Record och att e-postmeddelandet skickas av Email Finance Summary.
- När ni är nöjda, växla workflowet till Active för produktionsanvändning.
Vanliga fallgropar
- Google Drive-inloggningar kan löpa ut eller kräva specifika behörigheter. Om saker slutar fungera, kontrollera Google-kopplingen i n8n Credentials och bekräfta först att Drive-mappen är åtkomlig för det kontot.
- Textutdrag från PDF kan bli rörigt när kvitton är inskannade. Om AI-resultatet ser fel ut är problemet ofta att steget ”Parse PDF Text” returnerar ofullständig text, inte modellen i sig.
- Standardprompter för AI är generiska. Lägg in dina utläggskategorier, momsregler och önskat datumformat tidigt, annars kommer du fortsätta ”fixa” rader i Google Sheets manuellt.
Vanliga frågor
Cirka 30–60 minuter om dina Google-konton är redo.
Nej. Du kopplar mest konton och klistrar in en API-nyckel. Du kan behöva lätt fältmappning om dina Google Sheets-kolumner skiljer sig.
Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 $/månad för högre volym. Du behöver också räkna in OpenAI API-användning, som oftast är liten per kvitto men beror på hur långa dina PDF:er är.
Två alternativ: n8n Cloud (hanterad, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och hanterar n8n bra. Egen drift ger dig obegränsat antal körningar men kräver grundläggande serveradministration.
Ja, och det är en vanlig justering. Du kan routa utdata från ”Build HTML Summary” till en chef först och sedan bara skicka ”Email Finance Summary” om chefen godkänner. Team anpassar också agentprompten för att auto-tagga kategorier (resor, måltider, boende) och för att upprätthålla policys som ”ingen alkohol” eller maxbelopp per dag för måltider.
Oftast handlar det om behörigheter. Google-kontot som är kopplat i n8n måste ha åtkomst till mål-mappen i Drive, och OAuth-samtycket kan tappa scope om inloggningen har redigerats. Återanslut Google Drive-inloggningen i n8n och testa sedan igen med ett enda testkvitto för att bekräfta att mappsökvägen är korrekt.
Tillräckligt för normal verksamhet. På n8n Cloud är din gräns främst din månatliga körningskvot, och varje inskickad reseräkning kan trigga flera körningar om det finns flera PDF:er. Om du kör egen drift finns inget tak för antal körningar, men kapaciteten beror på din server och hur snabbt AI- och Google-API:erna svarar.
Ofta, ja, eftersom det här flödet drar nytta av hantering av flera filer, strukturerad parsing och egen kod/mappning i mitten. n8n ger dig också egen drift, vilket gör kostnaderna mer förutsägbara när volymen ökar, och grenlogik utan att varje extra steg känns ”premium”. Zapier eller Make kan fortfarande fungera för väldigt enkel kvittologgning, men AI-extrahering plus mejlsammanfattningar blir snabbt komplext. Om du vill ha en second opinion på verktygsval, prata med en automationsexpert.
När detta väl rullar hamnar kvitton där de ska, siffrorna dyker upp där du behöver dem och ekonomi får en sammanfattning som faktiskt går att agera på. Sätt upp det en gång och låt flödet göra det administrativa jobbet.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.