Du har PDF:er utspridda i mejl, mappar och slumpmässiga länkar. Någon ber om ”det slutliga paketet”, och plötsligt laddar du ner, byter namn, ändrar sidordning och hoppas att inget har missats.
Den här automatiseringen för att slå ihop PDF:er drabbar driftsansvariga och byråledare först, ärligt talat. Men ekonomiteam som jagar fakturapaket känner av det också. Utfallet är enkelt: en korrekt sammanslagen PDF, sparad i Google Drive, redo att delas utan manuell hopmontering.
Nedan ser du hur flödet körs, vad du behöver för att sätta upp det och var de verkliga tidsvinsterna kommer vecka efter vecka.
Så fungerar automatiseringen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: CustomJS + Google Drive: sammanfogade pdf:er
flowchart LR
subgraph sg0["Manual Start Flow"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Distribute Items", 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/>Primary API Request"]
n2@{ icon: "mdi:cog", form: "rounded", label: "Write File to Disk", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Read File from Disk", pos: "b", h: 48 }
n4@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Start Trigger", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>PDF List Builder"]
n6@{ icon: "mdi:swap-vertical", form: "rounded", label: "Combine PDF Files", pos: "b", h: 48 }
n6 --> n2
n5 --> n0
n0 --> n1
n1 --> n6
n2 --> n3
n4 --> n5
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 n4 trigger
class n1 api
class n5 code
classDef customIcon fill:none,stroke:none
class n1,n5 customIcon
Problemet: PDF-paket byggs fortfarande för hand
Att slå ihop PDF:er låter som en liten uppgift tills du gör det hela tiden. Du laddar ner en fil, inser att det är fel version, går tillbaka efter den uppdaterade länken och upprepar sedan det fem gånger till. Därefter slår du ihop dem i ”rätt” ordning, bara för att upptäcka att ett dokument är roterat eller saknar sidor. Och när slutfilen ska ligga någonstans delat (oftast Google Drive) laddar du upp den, döper om den och skickar länken. Varje gång. Själva pilljobbet är inte svårt. Det tar bara aldrig slut, och misstagen dyker upp vid sämsta möjliga tillfälle.
Friktionen byggs på. Här är var det faller isär i verkligheten:
- Att plocka PDF:er från publika URL:er blir en skattjakt i chattar, mejl och kalkylark.
- Manuella sammanslagningar hamnar ofta i fel ordning, så du får exportera om och skicka om.
- En saknad fil kan ogiltigförklara hela ”slutpaketet”, vilket betyder mer fram och tillbaka med kunder eller intressenter.
- Även när du väl har satt ihop det äter frågan ”var sparade du det?” mer tid än den borde.
Lösningen: ladda ner, slå ihop och lagra en slutlig PDF automatiskt
Det här flödet tar en lista med publika PDF-länkar, laddar ner varje fil, slår ihop dem till en PDF med hjälp av CustomJS community-nod PDF Toolkit, och sparar sedan det färdiga dokumentet så att det kan lagras och delas på ett konsekvent sätt. Det börjar med en enkel manuell körning (så att du kan testa säkert), och sedan bygger ett kodsteg listan med PDF-URL:er som en array. n8n delar upp listan i enskilda objekt, laddar ner varje PDF via HTTP och skickar alla binärer till Merge PDF-noden. Till sist skriver flödet den sammanslagna filen till disk och läser tillbaka den så att du kan skicka den vidare (till exempel till Google Drive eller ett mejlutskick). Resultatet är en förutsägbar PDF med ”en enda källa”, inte en hög med delar.
Flödet startar när du klickar på kör i n8n. Därefter genererar det listan med PDF-URL:er, laddar ner dem en och en och slår ihop dem till en enda fil. Efter sammanslagningen sparas den slutliga PDF:en och förbereds för det ”delnings”-steg du vill ha härnäst, som att ladda upp till Google Drive eller notifiera någon i Slack.
Det du får: automatisering vs. resultat
| Det här flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du paketerar 12 PDF:er varje fredag: fakturor, kvitton och en rapport. Manuellt kanske du lägger cirka 4 minuter per fil på att hitta länken, ladda ner den och bekräfta att det är rätt version, plus ytterligare 10 minuter för att slå ihop, döpa om och ladda upp. Det blir ungefär en timme i veckan. Med det här flödet kör du triggern, nedladdningarna och sammanslagningen sker i bakgrunden, och du lägger vanligtvis cirka 10 minuter totalt (mest på att verifiera URL-listan och slutresultatet). Det är inte magi. Det är bara inte längre ditt problem.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Självhostat alternativ om du föredrar det (Hostinger fungerar bra)
- CustomJS-konto för att använda PDF Toolkit-noderna.
- Google Drive för att lagra och dela den sammanslagna PDF:en.
- CustomJS API-nyckel (hämta den från din profilsida i CustomJS).
Kunskapsnivå: Medel. Du installerar en community-nod (självhostad n8n) och klistrar in en API-nyckel i n8n-credentials.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (kostnadsfri konsultation i 15 minuter).
Så fungerar det
Manuell körning för att komma igång. Du startar flödet från n8n så att du kan testa det utan att oroa dig för oavsiktliga triggers eller oväntade sammanslagningar.
En PDF-lista skapas. Ett kodsteg returnerar en array med PDF-URL:er (publika länkar). I en riktig uppsättning kan listan komma från Google Sheets, Airtable eller en webhook-payload i stället för hårdkodade URL:er.
Varje PDF laddas ner. n8n delar upp URL-listan i enskilda objekt och använder sedan en HTTP Request för att hämta varje PDF så att den finns tillgänglig som fil inför sammanslagningen.
Sammanslagningen görs och filen förbereds för delning. CustomJS-noden Merge PDF kombinerar allt till ett dokument, och sedan skriver flödet det till disk och läser tillbaka det så att du kan ladda upp det till Google Drive (eller skicka det till Slack eller mejl).
Du kan enkelt ändra källan för PDF-listan så att den matchar hur ditt team arbetar. Till exempel kan du byta ut den kodgenererade listan mot en Airtable-vy eller en kolumn i Google Sheets. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera den manuella triggern
Starta arbetsflödet med en manuell trigger så att ni kan testa logiken för PDF-sammanslagning vid behov.
- Lägg till noden Manual Start Trigger som arbetsflödets startpunkt.
- Koppla Manual Start Trigger till PDF List Builder för att matcha körflödet.
Steg 2: anslut PDF-källor
Bygg listan med PDF-URL:er och dela upp dem i enskilda objekt för nedladdning.
- Öppna PDF List Builder och ställ in JavaScript Code till:
return { data: [ "https://www.intewa.com/fileadmin/documents/pdf-file.pdf", "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf" ]} - I Distribute Items ställer ni in Field to Split Out till
data. - I Primary API Request ställer ni in URL till
={{ $json.data }}så att varje objekt laddar ner sin PDF.
Steg 3: konfigurera PDF-sammanslagning
Slå ihop de nedladdade PDF-binärerna till en fil.
- Lägg till noden Combine PDF Files efter Primary API Request.
- Inloggningsuppgifter krävs: anslut era customJsApi-inloggningsuppgifter i Combine PDF Files.
- Säkerställ att körvägen följer Primary API Request → Combine PDF Files.
Steg 4: konfigurera filutdata
Spara den sammanslagna PDF:en till disk och läs in den igen vid behov för vidare användning nedströms.
- I Write File to Disk ställer ni in Operation till
writeoch File Name tilltest.pdf. - Koppla Combine PDF Files → Write File to Disk.
- I Read File from Disk ställer ni in File Selector till
test.pdf. - Koppla Write File to Disk → Read File from Disk för att slutföra utdatakedjan.
Steg 5: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att verifiera att PDF:er laddas ner, slås ihop och sparas korrekt.
- Klicka på Execute Workflow i Manual Start Trigger för att köra arbetsflödet.
- Bekräfta att Primary API Request laddar ner varje PDF utan fel.
- Verifiera att Combine PDF Files ger en enda sammanslagen PDF.
- Kontrollera utdata från Read File from Disk för att bekräfta att
test.pdfhar sparats och lästs in igen. - När ni är nöjda aktiverar ni arbetsflödet för produktionsanvändning.
Vanliga fallgropar
- CustomJS-credentials kan löpa ut eller klistras in fel. Om sammanslagningen misslyckas, kontrollera först CustomJS-credential i n8n och bekräfta att API-nyckeln matchar det du ser på din profilsida i CustomJS.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om nedströms noder misslyckas på grund av tomma svar.
- Publika PDF-länkar kan fortfarande skapa fel ibland (utgångna delningar, omdirigeringar, ”åtkomst nekad”). När nedladdningar misslyckas, öppna exakt samma URL i ett inkognitofönster för att bekräfta att den verkligen är publik innan du skyller på n8n.
Vanliga frågor
Cirka 30 minuter när CustomJS och Google Drive är anslutna.
Nej. Du klistrar in din CustomJS API-nyckel och redigerar en enkel lista med PDF-URL:er. Om du vill att URL:erna ska komma från Sheets eller Airtable är det konfigurationsarbete, inte ”riktig kodning”.
Ja. n8n har ett gratis självhostat 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 CustomJS API-användning (de flesta team spenderar bara några dollar, om de inte slår ihop enorma filer hela dagarna).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärt och kör n8n bra. Självhosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det är en vanlig uppgradering. Ersätt kodsteget ”PDF List Builder” med en Google Sheets-läsning som hämtar en kolumn med URL:er, och behåll sedan stegen Split Out, HTTP download och Combine PDF Files oförändrade. Du kan också lägga till ett If-steg för att hoppa över tomma rader eller länkar som inte är PDF, vilket sparar dig från misslyckade nedladdningar.
Oftast är det API-nyckeln. Skapa en ny nyckel på din profilsida i CustomJS (eller kopiera den igen noggrant) och uppdatera sedan CustomJS-credential i n8n. Om du självhostar, bekräfta också att community-noden CustomJS PDF Toolkit är installerad och aktiverad, eftersom saknade noder kan se ut som ett ”anslutnings”-problem. En sak till: om du slår ihop väldigt stora PDF:er kan timeouts dyka upp som fel som ser ut som credential-problem, så testa med ett mindre set först.
Dussintals per körning är normalt. På n8n Cloud är den praktiska gränsen din plans månatliga körningar, eftersom varje körning räknas mot användningen. Om du självhostar finns ingen körningsgräns, men stora sammanslagningar beror på serverminne och hur stora PDF:erna är.
Ofta, ja. Zapier och Make är bra för enkla uppgifter där du ”flyttar data mellan appar”, men PDF-sammanslagning kräver oftast filhantering, retries och lite logik kring nedladdningar. n8n är mer bekvämt där, och självhosting gör att du kan köra så många sammanslagningar som din server klarar. Nackdelen är uppsättningen: community-noder som CustomJS PDF Toolkit är enklast på självhostad n8n, inte i de mest nedlåsta hostade miljöerna. Om du tvekar, prata med en automationsexpert så gör vi en rimlighetscheck på bästa väg utifrån volym och säkerhetskrav.
När det här väl är på plats slutar PDF-paket att vara ett veckovis avbrott. Flödet tar hand om den repetitiva hopmonteringen så att du bara kan dela slutfilen och 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.