PodPDF Is Now in Five Automation Tools
Zapier, n8n, Activepieces, Windmill and any MCP client can now make PDFs, and work on PDFs you already have — merge, split, stamp, number and fill forms — without writing a line of code.
PodPDF started as an API, and an API is still the fastest way to use it. But most documents are produced by a workflow someone already has: a form arrives, a row is added, a payment clears, and a PDF should come out of it. That workflow usually lives in an automation tool, and until recently putting PodPDF into one meant hand-building an HTTP request.
That’s done. PodPDF now has a native integration in five places, and they all do the same things.
Where it is
| How to add it | |
|---|---|
| Zapier | Public in Zapier’s app directory. Search for PodPDF in the Zap editor. |
| n8n | A verified community node, installable from the canvas on n8n Cloud. |
| Activepieces | Install activepieces-piece-podpdf by name from Admin → Pieces. |
| Windmill | Scripts and a podpdf resource type on the Windmill Hub. |
| MCP | podpdf-mcp on npm and in the official MCP Registry, for Claude and any other MCP client. |
Webhooks cover everything else: anything that can receive an HTTP request can be told the moment a PDF is ready.
Each one connects with an API key from your dashboard. Nothing else to configure.
What they can do
Every integration started with the same five actions — generate a PDF from HTML, Markdown or a URL, fill a saved template, queue a long document, check a job, fetch a download link. Those cover making a PDF.
The ones added this month cover the other half: a PDF you already have.
- Merge several PDFs into one, taking only some pages of each if you want.
- Split one PDF, by page, every N pages, by ranges, or pulling out the pages you name.
- Stamp a watermark, a received date, a reference or a line of running text.
- Number a bundle with Bates numbering, continuing the sequence across documents.
- Rearrange pages: rotate, delete, keep only some, reorder.
- Fill a form by field name, and flatten it so the answers can no longer be edited.
- Clean a document: strip metadata, or remove JavaScript, embedded files and auto-actions.
- Inspect a PDF first — page count, page ids, and every form field with its type and options. That one is free.
So a workflow can now take the attachment from an email, stamp it, merge it with a cover letter and send the result, with no code in the middle.
The one thing worth knowing
A whole editing recipe is one charge, however many operations it carries. Watermark every page, strip the metadata and delete page one, and that is a single PDF at $0.01 — not three. Inspecting a document costs nothing at all.
Each integration also sends a commit token with an edit, so if the platform retries a step after a dropped connection, you get the first result back instead of a second charge.
A sketch of each
An invoice for every paid order. Payment webhook → Render Template with the order’s JSON → email the PDF. The layout lives in a template, so the automation only carries data.
A signed-off bundle. Form submission with an attachment → Merge PDFs with your terms → Edit PDF to Bates-number the result → upload to Drive.
Statements, one per person. Monthly file arrives → Split PDF every N pages → loop over the parts and email each one.
From a chat. With the MCP server, an assistant can do all of the above in conversation: ask it to take a PDF, stamp it and send it back, and it calls the same endpoints your Zap would.
Still to come
Make is in review with their team, and Pipedream is waiting on the PodPDF app being created on their side. Both already work through a plain HTTP request in the meantime — see the API docs — and we’ll post when the native versions land.
Getting started
New accounts get 10 free PDFs, so you can build a real workflow before deciding anything. Create a key in the dashboard under Settings → API Keys, pick your tool from the table above, and paste the key in. The Zapier integration has a setup guide with worked examples.
One tip that saves an afternoon: when you map fields into a template, a nested field like
{{customer.name}} needs a dotted key — type customer.name as the field name and the
integration expands it for you. Fields sent flat come out blank.