Archive weekly web page snapshots into a single PDF with PDFMint
Go to WorkflowDescription
Quick overview
This workflow runs every Monday at 07:00 UTC to render a predefined list of URLs to PDFs using PDFMint, then merges the successful renders into a single dated archive PDF and outputs a short summary of what was archived.
How it works
Runs every Monday at 07:00 on a schedule trigger.
Loads the list of web page URLs to archive and stops if the list is empty.
Checks PDFMint usage to confirm enough credits remain for one PDF per page plus one merge operation.
Builds a week-based archive name and file name, then renders each URL to an individual PDF with PDFMint.
Drops any pages that failed to render so a broken URL does not fail the whole run.
If two or more PDFs survived, merges them into a single dated PDF archive with PDFMint; otherwise keeps the single rendered PDF as the archive.
Outputs a summary string describing how many pages were archived and the resulting file name.
Setup
Self-host n8n and install/configure the PDFMint community node, then add a PDFMint API key credential.
Replace the URLs array and (optionally) the base archive name in the “Set the pages to archive” step.
Adjust the schedule rule if you want the archive to run on a different day or time.
Ensure your PDFMint plan has enough monthly credits for your page count (one credit per rendered page plus one credit for merging).
Additional info
Disclosure: I build and run PDFMint, the service this template calls. This is a self-submission, not a third-party recommendation.
Executed before submitting, in n8n 2.36.7 on Node 24 with [email protected] installed from the public npm registry, against the live service. Four runs: three reachable pages produced a 3,737,422-byte, 79-page merged PDF ("Archived 3 of 3"); three pages with one 404 dropped the dead page and merged the rest into 1,544,647 bytes / 70 pages ("Archived 2 of 3"); two pages with one 404 left a single survivor, where the merge is correctly skipped because PDFMint needs two PDFs, and the summary says so; and a run with credits_remaining=0 stopped at the quota check without spending anything. That single-survivor branch exists because the earlier version reported "Archived 1 of 2" when nothing had in fact been archived.