Stora PDF:er är ett tyst affärsproblem tills de förstör något. De studsar tillbaka från inkorgar, laddar långsamt i mobilen och du slutar med att skicka om filer (igen) med en annan ”lättare version”.
Marknadschefer märker det när de skickar mediakit och one-pagers. Kundteam får svar som ”kan du mejla den igen?”. Och om du driver en liten byrå är det du som sitter och komprimerar filer klockan 22. Den här automatiseringen för CustomJS Gmail PDF löser det genom att skapa en PDF och krympa den innan den ens lämnar ditt workflow.
Du får lära dig vad workflowet gör, vad du behöver för att köra det och hur du anpassar det så att dina PDF:er alltid är kundklara och enkla att leverera.
Så fungerar automatiseringen
Här är hela workflowet du kommer att sätta upp:
n8n Workflow Template: CustomJS till Gmail, mindre PDF:er redo att skicka
flowchart LR
subgraph sg0["Manual Launch Flow"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Convert HTML to PDF", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Compress PDF Binary", pos: "b", h: 48 }
n2@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Launch Trigger", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Compress PDF from URL", 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/code.svg' width='40' height='40' /></div><br/>Assign PDF Link"]
n0 --> n1
n4 --> n3
n2 --> n0
n2 --> n4
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 n2 trigger
class n4 code
classDef customIcon fill:none,stroke:none
class n4 customIcon
Varför det här spelar roll: skicka PDF:er som inte studsar
PDF:er ska vara det ”säkra” formatet. Sedan bifogar du en som är för tung och allt blir rörigt. Gmail har bilagegränser, kunder har hårda filter i inkorgen och nedladdningar i mobilen kan gå segt. Värst är avbrottet: du skickar filen, väntar och får sedan felnotisen eller kundens ”den kom inte fram”, och du tappar ännu ett tidsblock på att exportera om, komprimera och skicka igen. Det är inte svårt, men det är ständigt återkommande – och det stjäl fokus från det som faktiskt drar in pengar.
Det växer snabbt. Här är var det brukar fallera.
- Team exporterar PDF:er från HTML-sidor, men filstorlekarna varierar kraftigt beroende på bilder och inbäddade tillgångar.
- Manuell komprimering blir en fram-och-tillbaka-loop eftersom ”tillräckligt liten” beror på mottagarens regler för inkorgen.
- När PDF:en delas som en länk i stället för som bilaga måste någon ändå ladda ner den, komprimera den och ladda upp den igen.
- En missad notis om studs kan försena en faktura, offert eller ett godkännande med en dag.
Det du bygger: HTML-till-PDF, komprimerad och redo att mejlas
Det här workflowet tar HTML-innehåll, konverterar det till en PDF, komprimerar den med CustomJS PDF Toolkit och förbereder slutfilen så att den är redo att skickas via Gmail utan det vanliga krånglet. Du startar körningen manuellt (eller byter till en webhook senare), och workflowet skapar sedan en PDF från HTML:en du skickar in. Direkt efter komprimeras PDF:en som en binär fil, så att du får en mindre bilaga som fortfarande ser proffsig ut. Om du redan har en PDF hostad någonstans kan workflowet också ta en URL, upptäcka när filen är för stor och köra komprimeringen på den i stället. Slutresultatet är detsamma: en lättare PDF som fungerar bättre i mejl och är enklare för kunder att öppna.
Workflowet börjar med en trigger och går sedan vidare i olika grenar beroende på vad du tillhandahåller (ny HTML kontra en PDF-länk). CustomJS gör grovjobbet: konvertering och sedan komprimering. Därefter kan du skicka den komprimerade filen till Gmails steg ”Send Email”, eller routa den till Slack, Drive eller ditt CRM om det passar din process bättre.
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du skickar 10 PDF:er till kunder i veckan och att varje tar ungefär 10 minuter att exportera, komprimera, dubbelkolla och sedan bifoga igen. Det är ungefär 100 minuter per vecka – och det är en ”bra” vecka utan studsar. Med den här automatiseringen triggar du körningen, väntar på konvertering och komprimering (ofta totalt bara några minuter) och skickar sedan den mindre filen en gång. De flesta team får tillbaka runt en timme per vecka direkt, och den irriterande omskickstråden försvinner i princip.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- CustomJS PDF Toolkit för konvertering från HTML till PDF och komprimering.
- Gmail (Send Email) för att leverera den färdiga komprimerade bilagan.
- CustomJS API-nyckel (hämta den från din profilsida i CustomJS)
Kunskapsnivå: Medel. Du är bekväm med att lägga till credentials och testa ett par exempelinputs, men du behöver inte skriva ”riktig kod” om du inte vill bygga ut logiken för URL-hanteringen.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
Starta körningen med en manuell trigger. Den här mallen är uppsatt för test och demos, så du startar den vid begäran. I produktion byter många team ut detta mot en webhook så att ett formulär eller ett internt verktyg kan trigga den.
Gör HTML till en PDF. CustomJS-noden ”HTML to PDF” tar HTML:en du tillhandahåller och skapar en PDF-fil. Det här är perfekt för dokument som redan finns som webbsidor, mallar eller HTML-baserade rapporter.
Bestäm hur PDF:en ska hanteras. Om du börjar från en PDF-länk tilldelar och validerar Code-steget den URL:en så att workflowet kan hämta och komprimera filen. Det är här scenariot ”över 6 MB” hanteras så att du slipper göra det manuellt.
Komprimera PDF:en innan den går någonstans. CustomJS-noden för komprimering minskar filstorleken, inklusive komprimering på sidnivå, och returnerar en mindre binär fil. Härifrån kan du bifoga den i Gmail, ladda upp den eller skicka den till Slack beroende på vilken väg du väljer.
Du kan enkelt ändra triggern till att använda en webhook och returnera den komprimerade PDF:en som ett svar, utifrån dina behov. Se den fullständiga implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den manuella triggern
Sätt upp den manuella triggern som startar båda PDF-bearbetningsgrenarna samtidigt.
- Lägg till eller öppna Manual Launch Trigger.
- Lämna standardinställningarna som de är (inga fält krävs).
- Anslut Manual Launch Trigger till både Convert HTML to PDF och Assign PDF Link.
- Bekräfta att arbetsflödet visar parallella grenar från Manual Launch Trigger.
Manual Launch Trigger skickar utdata parallellt till både Convert HTML to PDF och Assign PDF Link.
Steg 2: Anslut autentiseringsuppgifter för PDF Toolkit
Dessa noder använder det anpassade PDF-verktygskitet och måste autentiseras.
- Öppna Convert HTML to PDF och ställ in Credential Required: Anslut era
customJsApi-autentiseringsuppgifter. - Öppna Compress PDF Binary och ställ in Credential Required: Anslut era
customJsApi-autentiseringsuppgifter. - Öppna Compress PDF from URL och ställ in Credential Required: Anslut era
customJsApi-autentiseringsuppgifter.
customJsApi-autentiseringsuppgifter kommer arbetsflödet att misslyckas vid körning.Steg 3: Sätt upp grenen för HTML-till-PDF
Den här grenen konverterar rå HTML till en PDF och komprimerar den sedan.
- Öppna Convert HTML to PDF och ställ in HTML Input till
.Hello World
- Anslut Convert HTML to PDF till Compress PDF Binary.
- Behåll inställningarna i Compress PDF Binary som standard om ni inte behöver specifika komprimeringsalternativ.
Steg 4: Sätt upp grenen för URL-till-komprimerad PDF
Den här grenen tilldelar en PDF-URL och komprimerar PDF:en från länken.
- Öppna Assign PDF Link och ställ in JavaScript Code till
return {"json": {"path": "https://example.com/[YOUR_ID].pdf"}};. - Öppna Compress PDF from URL och ställ in Resource till
url. - Ställ in Field Name till
={{ $json.path }}i Compress PDF from URL. - Anslut Assign PDF Link till Compress PDF from URL.
Tips: Ersätt [YOUR_ID] i URL:en med en riktig filidentifierare för att undvika ett 404-svar.
Steg 5: Testa och aktivera ert arbetsflöde
Validera båda grenarna och aktivera arbetsflödet för löpande användning.
- Klicka på Execute Workflow för att köra Manual Launch Trigger.
- Bekräfta att Convert HTML to PDF genererar en PDF och skickar den vidare till Compress PDF Binary.
- Verifiera att Assign PDF Link ger en giltig
pathoch att Compress PDF from URL slutförs utan fel. - När resultaten ser korrekta ut, växla arbetsflödet till Active för användning i produktion.
Tips för felsökning
- CustomJS-credentials kan löpa ut eller klistras in fel. Om något skapar fel, kontrollera först CustomJS API-nyckeln i n8n Credentials och bekräfta sedan att den fortfarande matchar det som visas i din CustomJS-profil.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera utdata för alltid.
Snabba svar
Cirka 30 minuter om din CustomJS-nyckel och ditt Gmail-konto är redo.
Nej. Du kan köra hela flödet med CustomJS-noderna och credentials. Code-steget för URL-hantering ingår redan och du kan låta det vara som det är.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna med kostnader för CustomJS API-användning baserat på hur många PDF:er du konverterar och komprimerar.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och klarar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är ganska flexibelt. Du kan ersätta Manual Trigger med en Webhook-nod för att göra det till en tjänst där man ”skickar in HTML och får tillbaka en komprimerad PDF”. Du kan också byta ut leveransen så att den laddas upp till Google Drive, postas i Slack eller loggar en rad i Airtable/Google Sheets efter komprimering. De flesta ändringar sker kring triggern och sista leveranssteget, medan noderna CustomJS HTML-to-PDF och CompressPDF är oförändrade.
Oftast beror det på en ogiltig eller utgången API-nyckel sparad i n8n Credentials. Skapa en ny nyckel i din CustomJS-profil, uppdatera den i n8n och kör sedan igen med en enkel test-HTML. Om du komprimerar en PDF från en URL, bekräfta också att länken är publikt åtkomlig från din n8n-host och inte kräver inloggning.
I self-hosted n8n finns ingen körningsgräns; begränsningen är din server och hur snabbt CustomJS processar dina filer. I n8n Cloud beror din månatliga körningsgräns på plan. I praktiken kör många team från dussintals till några hundra PDF:er per vecka utan att röra något, så länge filstorlekarna är rimliga och man inte triggar allt samtidigt.
Ofta, ja, eftersom den här typen av dokumentflöde gynnas av bättre kontroll över binärer och grenlogik. n8n är också enklare att bygga ut: du kan lägga till en väg som säger ”om PDF:en är för stor, komprimera igen”, eller returnera filen direkt som svar från en webhook. En annan praktisk anledning är kostnad; frekventa, fil-tunga körningar kan bli dyra på plattformar som prissätter per task. Samtidigt kan Zapier eller Make fungera bra för lätta mejlbilagor och enkla tvåappszaps. Prata med en automationsexpert om du vill ha hjälp att välja.
När det här är på plats slutar PDF-leverans att vara en återkommande liten brand. Du skickar mindre filer med större trygghet och slipper fram-och-tillbaka i 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.