Att kopiera tabeller ur PDF:er är en särskild sorts långsamt. Du klistrar in i ett kalkylark, en kolumn förskjuts, en rad försvinner och plötsligt blir din ”rapport” ett gissningsspel du inte litar på.
Den här PDF to Sheets-automationen slår hårt mot marketing ops-team, men byråägare som jagar kundrapportering känner av den också. Samma sak för småföretags-administratörer som spårar fakturor eller leverantörsdokument. Resultatet är enkelt: PDF:er som släpps i Dropbox blir strukturerade, loggade rader i Google Sheets med långt färre manuella korrigeringar.
Nedan ser du hur flödet skickar en fil via Adobe PDF Services, kontrollerar status och returnerar korrekt formaterad extraktionsoutput som du kan lagra, granska eller skicka vidare till efterföljande system.
Så fungerar automationen
Se hur detta löser problemet:
n8n Workflow Template: Dropbox till Google Sheets, PDF:er blir rader
flowchart LR
subgraph sg0["When clicking ‘Test workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Create Asset"]
n2@{ icon: "mdi:play-circle", form: "rounded", label: "Execute Workflow Trigger", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Adobe API Query", pos: "b", h: 48 }
n4["<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/dropbox.svg' width='40' height='40' /></div><br/>Load a test pdf file"]
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/merge.svg' width='40' height='40' /></div><br/>Query + File"]
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/merge.svg' width='40' height='40' /></div><br/>Query + File + Asset informa.."]
n7["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Process Query"]
n8@{ icon: "mdi:cog", form: "rounded", label: "Wait 5 second", pos: "b", h: 48 }
n9["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Try to download the result"]
n10@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Forward response to origin w..", pos: "b", h: 48 }
n12["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Authenticartion (get token)"]
n13["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Upload PDF File (asset)"]
n10 --> n8
n10 --> n11
n1 --> n6
n5 --> n12
n5 --> n6
n7 --> n8
n8 --> n9
n3 --> n5
n4 --> n5
n13 --> n7
n2 --> n12
n2 --> n6
n9 --> n10
n12 --> n1
n6 --> n13
n0 --> n4
n0 --> n3
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,n2 trigger
class n10 decision
class n1,n7,n9,n12,n13 api
classDef customIcon fill:none,stroke:none
class n1,n4,n5,n6,n7,n9,n12,n13 customIcon
Utmaningen: göra PDF-data till kalkylarksrader
PDF:er är där data går för att gömma sig. Du kanske får en veckovis leverantörsrapport, en sammanställning av mediespend, ett kontoutdrag eller en bunt formulär som ”borde” vara enkla att logga. Sedan öppnar du filen och inser att det inte är ett kalkylark alls. Tabeller ser bra ut visuellt men kopieras inte korrekt, skannade sidor går inte att markera och varje fil har lite olika mellanrum. Det är dränerande eftersom du inte bara kan jobba snabbare. Du måste jobba långsammare för att undvika fel, och den mentala belastningen byggs på under månaden.
Det blir snabbt mycket. Här är var det fallerar i verkligheten.
- Någon måste öppna varje PDF, hitta rätt tabell och manuellt mappa kolumner till ditt Sheet varje gång.
- Även försiktig kopiera/klistra in smyger in tysta fel som först syns när totalsummor ser ”fel” ut på ett möte.
- Skannade PDF:er tvingar dig till OCR-verktyg, och resultatet behöver ändå rensas innan det går att använda.
- När volymen ökar (månadsslut, kampanjrapportering, fakturasäsong) hamnar du antingen efter eller tar någon från mer värdeskapande arbete.
Lösningen: Dropbox → Adobe PDF Services → loggning i Google Sheets
Det här flödet kapslar in Adobe PDF Services så att du kan hantera PDF-extraktion som en repeterbar backend-process, inte ett engångsjobb som görs manuellt. Det börjar med en PDF-fil (ofta från Dropbox), och autentiserar sedan mot Adobe för att få en tillfällig access token. Därefter registreras filen som en ”asset”, PDF-payloaden laddas upp och en extraktionsbegäran skickas (text, tabeller och annat strukturerat innehåll beroende på vilket endpoint du väljer). Eftersom Adobe processar asynkront väntar flödet en kort stund, försöker ladda ned resultatet och routar baserat på status så att du slipper sitta och vaka. Till sist är den extraherade outputen redo att skrivas in i ett system som Google Sheets, eller returneras till ett annat n8n-flöde som gör loggningen.
Flödet startar när en PDF och extraktionsparametrar skickas in (antingen manuellt för test eller från ett annat flöde). Adobe gör grovjobbet: ladda upp, processa och returnera resultat. Sedan routar n8n mellan lyckat och ”inte klart än”, så du får pålitlig extraktion utan manuella omförsök.
Vad som förändras: före vs. efter
| Detta elimineras | Effekten du märker |
|---|---|
|
|
Effekt i verkligheten
Säg att du får 20 PDF:er i veckan i Dropbox som var och en innehåller en tabell du behöver i Google Sheets. Manuellt kan du lägga cirka 10 minuter per PDF på att öppna, kopiera, fixa kolumner och dubbelkolla totalsummor, vilket blir ungefär 3 timmar i veckan. Med den här automationen släpper du filerna i Dropbox och låter Adobe processa dem; n8n väntar cirka 5 sekunder, försöker igen vid behov och returnerar sedan strukturerad output för loggning. I praktiken blir det en snabb granskningsuppgift i stället för ett inmatningsblock i kalendern.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Dropbox för att hämta PDF:er du vill processa.
- Adobe PDF Services API för att extrahera text och tabeller.
- Google Sheets för att lagra extraherade rader för rapportering.
- Adobe API-inloggningsuppgifter (skapa dem i Adobe Developer Console).
Kunskapsnivå: Mellan. Du kopplar konton, klistrar in API-uppgifter och justerar några request-parametrar utan att behöva skriva kod.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet i arbetsflödet
En PDF och extraktionsinställningar startar allt. I exempelscenariot triggar du flödet manuellt, hämtar en test-PDF från Dropbox och sätter parametrarna för det Adobe-endpoint du vill använda.
Adobe-autentisering sker först. Flödet begär en tillfällig access token, eftersom Adobes API inte accepterar uppladdningar eller processningsanrop utan den.
PDF:en registreras och laddas upp som en asset. n8n skapar en asset-post, slår ihop den informationen med dina request-detaljer och laddar upp den binära PDF-payloaden till Adobe så att den är redo för bearbetning.
Extraktionen skickas in och pollas. Flödet skickar processningsbegäran, väntar kort, försöker ladda ned resultatet och routar baserat på status så att ”inte klart” inte ser ut som ”misslyckat”.
Du kan enkelt ändra extraktions-endpoint och hur outputen hanteras för att logga i Google Sheets, lagra resultatet i Google Drive eller skicka vidare till Airtable utifrån dina behov. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera Workflow Run Trigger
Sätt upp triggern som gör att det här arbetsflödet kan anropas av ett annat arbetsflöde, och behåll en manuell startpunkt för testning.
- Lägg till noden Workflow Run Trigger som primär trigger för arbetsflödet.
- Behåll noden Manual Launch Trigger för att möjliggöra testning på begäran och körningar med exempelfiler.
- Bekräfta körflödet: Workflow Run Trigger skickar utdata till både Acquire Access Token och Merge With Asset Info parallellt.
- Bekräfta körflödet: Manual Launch Trigger skickar utdata till både Fetch Sample PDF och Prepare API Parameters parallellt.
Steg 2: anslut Adobe PDF Services och Dropbox
Autentisera anropen till Adobe PDF Services och anslut Dropbox för att hämta PDF-exempelfilen.
- Öppna Acquire Access Token och ställ in URL till
https://pdf-services.adobe.io/token, Method tillPOSToch Content Type tillform-urlencoded. - Inloggningsuppgifter krävs: Anslut era httpCustomAuth-inloggningsuppgifter i Acquire Access Token.
- Öppna Generate Asset Record och ställ in URL till
https://pdf-services.adobe.io/assets, Method tillPOSToch lägg till headern Authorization med=Bearer {{ $json.access_token }}. - Inloggningsuppgifter krävs: Anslut era httpHeaderAuth-inloggningsuppgifter i Generate Asset Record.
- Öppna Fetch Sample PDF och ställ in Operation till
downloadoch Path till/[YOUR_ID]/sample.pdf. - Inloggningsuppgifter krävs: Anslut era dropboxOAuth2Api-inloggningsuppgifter i Fetch Sample PDF.
Steg 3: konfigurera förberedelse av anrop och sammanslagning
Konfigurera parametrarna för anropet och slå ihop filens payload med API-anropet som förberedelse för uppladdning.
- I Prepare API Parameters, lägg till tilldelningen endpoint med värdet
extractpdf. - I Prepare API Parameters, lägg till tilldelningen json_payload med objektvärdet
={{ { "renditionsToExtract": [ "tables" ], "elementsToExtract": [ "text", "tables" ] } }}. - Ställ in Combine Request + File till Mode
combineoch Combination ModemergeByPosition. - Bekräfta körflödet: Combine Request + File skickar utdata till både Acquire Access Token och Merge With Asset Info parallellt.
- Ställ in Merge With Asset Info till Mode
combineoch Combination ModemergeByPosition.
Steg 4: konfigurera uppladdning, bearbetning och statusroutning
Ladda upp PDF:en till asset-endpointen, skicka in bearbetningsbegäran och polla efter färdigstatus.
- I Upload PDF Payload, ställ in URL till
={{ $json.uploadUri }}, Method tillPUToch Content Type tillbinaryData. - I Submit Processing Request, ställ in URL till
=https://pdf-services.adobe.io/operation/{{ $('Merge With Asset Info').item.json.endpoint }}och JSON Body till={{ { ...{ "assetID":$('Merge With Asset Info').first().json.assetID }, ...$('Merge With Asset Info').first().json.json_payload } }}. - Inloggningsuppgifter krävs: Anslut era httpHeaderAuth-inloggningsuppgifter i Submit Processing Request.
- Ställ in Pause 5 Seconds till Unit
secondsoch Amount5för att ge bearbetningen tid mellan pollningar. - I Attempt Result Download, ställ in URL till
={{ $('Submit Processing Request').item.json["headers"]["location"] }}. - Inloggningsuppgifter krävs: Anslut era httpHeaderAuth-inloggningsuppgifter i Attempt Result Download.
- Konfigurera Route by Status med regler för
in progressochfailedmed={{ $json.status }}, och behåll Fallback Output somextraför att skicka lyckade resultat vidare. - I Return to Caller, behåll Include Other Fields inställt på
trueför att returnera hela svarspayloaden.
Steg 5: testa och aktivera ert arbetsflöde
Verifiera hela flödet från början till slut med den manuella triggern och aktivera sedan för körning i produktion.
- Klicka på Execute Workflow med Manual Launch Trigger för att köra ett test med Fetch Sample PDF och Prepare API Parameters.
- Bekräfta att Acquire Access Token returnerar en giltig token och att Generate Asset Record returnerar en
uploadUriochassetID. - Verifiera att Upload PDF Payload lyckas och att Submit Processing Request returnerar en
location-header. - Kontrollera Attempt Result Download och Route by Status tills det returnerar det färdiga resultatet och passerar genom Return to Caller.
- När ni är nöjda, växla arbetsflödet till Active för att tillåta körning via Workflow Run Trigger i produktion.
Saker att se upp med
- Inloggningsuppgifter för Adobe PDF Services kan gå ut eller kräva specifika behörigheter. Om det slutar fungera, kontrollera projektinställningarna i Adobe Developer Console och skapa nya uppgifter först.
- Om du använder Wait-noder eller extern rendering varierar processningstider. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Dropbox-filvägar och behörigheter orsakar tysta fel oftare än man tror. Om exempel-PDF:en inte laddas, verifiera att filen fortfarande finns och att din Dropbox-koppling har åtkomst till den mappen.
Vanliga frågor
Cirka en timme om dina Adobe- och Dropbox-konton är redo.
Ja, men du vill ha någon som är bekväm med att kopiera API-uppgifter och testa några körningar. Ingen kodning, bara noggrann konfiguration.
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 med användning av Adobe PDF Services (gratisnivån tillåter upp till 500 PDF-operationer per månad) och eventuella AI-kostnader om du lägger till OpenAI för berikning.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och hanterar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serveradministration.
Börja med att ändra parametrarna du sätter innan requesten skickas, eftersom det styr vilken Adobe-transformation som körs (extract vs. OCR vs. andra operationer). Om dina PDF:er kommer från någon annanstans, byt ut Dropbox-steget ”Fetch Sample PDF” mot Google Drive eller e-postbilagor och behåll resten. Många team byter också ut outputen ”Return to Caller” mot en skrivåtgärd i Google Sheets, så att resultaten landar direkt i det radformat du vill ha. Ärligt talat är omslaget den svåra delen; när det är stabilt kan du återanvända det överallt.
Oftast beror det på att en fil har flyttats eller att mappbehörigheter saknas för det anslutna Dropbox-kontot.
På n8n Cloud Starter är du vanligtvis okej för små veckobatcher, och högre planer klarar mer volym. Om du self-hostar finns ingen körningsgräns (det beror på din server). Adobes gratisnivå tillåter cirka 500 PDF-operationer per månad, vilket blir din praktiska gräns om du inte uppgraderar. Själva flödet är lättviktigt, men extraktionshastigheten begränsas av Adobes processningstid och hur ofta du pollar efter resultat.
För det här flödet har n8n några fördelar: mer komplex logik med obegränsad branching utan extra kostnad, ett self-hosting-alternativ för obegränsade körningar och inbyggd hantering av HTTP-requests som inte känns påklistrad. Zapier eller Make kan fortfarande fungera, men du hamnar ofta i kamp med asynkrona ”job status”-mönster som detta. Om dina PDF:er är affärskritiska (ekonomi, kundrapportering) är det en stor fördel att ha Switch/Wait/omförsök-loopen på ett ställe. Och om du vill återanvända detta som ett anropbart omslag via ”Execute Workflow” är n8n helt enkelt en bättre match. Prata med en automationsexpert om du är osäker på vad som passar.
När detta väl är på plats slutar PDF-extraktion vara ett återkommande problem och blir en bakgrundsprocess du kan lita på. Flödet tar hand om de repetitiva delarna så att dina Sheets förblir korrekt formaterade och din rapportering håller kursen.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.