PodPDF for Zapier
Connect PodPDF to 7,000+ apps with Zapier. Turn a new spreadsheet row, form response, payment or webhook into a PDF, then email it, save it to cloud storage or post the link in chat. Or take a PDF that arrives in an email or a folder and merge, split, stamp or fill it on the way through. No code needed.
What you can doβ
| Step | Type | What it does |
|---|---|---|
| Generate PDF | Action | Converts HTML, Markdown or a public web page into a PDF. Up to 25 pages and about 30 seconds. |
| Render Template | Action | Fills one of your saved templates with data from earlier steps and returns the PDF. |
| Start Long Job | Action | Queues a large HTML or Markdown document (up to 100 pages) for background conversion. |
| Find Job | Search | Gets the status and details of a job by its ID. |
| Find Download Link | Search | Gets a fresh download link, and the PDF file, for a finished job. |
For PDFs you already have:
| Step | Type | What it does |
|---|---|---|
| Merge PDFs | Action | Combines two or more PDFs into one, in the order given, optionally taking only some pages of each. |
| Split PDF | Action | Splits a PDF into several files: one per page, every N pages, by page ranges, or just the pages you pick. |
| Add Text or Watermark to PDF | Action | Stamps text onto pages, such as a received date, a reference or a DRAFT watermark. |
| Add Page Numbers, Header or Footer to PDF | Action | Adds running text to every page, such as "Page 3 of 12" or a company name and date. |
| Bates Number PDF | Action | Stamps sequential numbers, such as ACME-000001, on each page. |
| Rotate, Delete or Keep PDF Pages | Action | Rotates pages, deletes pages, or keeps only the pages you choose. |
| Fill PDF Form | Action | Fills the fields of a fillable PDF and can lock the answers in. |
| Edit PDF (Advanced) | Action | Applies a list of PDF editor operations in one step. |
Every action returns the PDF as a file, so you can attach it to an email or upload it to Google Drive, Dropbox or OneDrive directly. They also return a Download URL that stays valid for one hour.
Before you startβ
- A PodPDF account. New accounts get 10 free PDFs; after that each PDF costs one credit ($0.01). See Billing.
- A Zapier account. The free Zapier plan runs two-step Zaps, such as a trigger plus PodPDF. To send the PDF somewhere afterwards you need a paid Zapier plan.
Connect your accountβ
- In the PodPDF dashboard, open Settings β API Keys and create a key. Copy it; it is shown once.
- In the Zap editor, add a step, search for PodPDF and choose an action.
- Click Sign in, paste the API key and click Yes, Continue.
The connection is labelled with your PodPDF account email. To use a different account later, add a new connection with that account's key.
Example: PDF invoices from Google Sheetsβ
- Trigger: Google Sheets β New Spreadsheet Row.
- Action: PodPDF β Render Template.
- Template ID: copy it from the template's card in Templates, in the dashboard.
- Data: add one row per template field, and map a spreadsheet column into each value.
- Filename (optional): for example
invoice-followed by the invoice number column.
- Action: Gmail β Send Email. In Attachments, choose PDF File from the PodPDF step.
Test each step, then turn the Zap on.
Filling a templateβ
Your template's fields are the names inside {{ }}, such as {{customer.name}} or {{invoice_number}}. There are two ways to pass values; you can use both, and Data (JSON) wins where they overlap.
Data (one row per field). Use the field name on the left and map a value on the right. For a nested field, type the dotted name:
| Key | Value |
|---|---|
invoice_number | (Invoice No. column) |
customer.name | (Name column) |
customer.email | (Email column) |
PodPDF turns dotted keys into nested data, so customer.name fills {{customer.name}}.
Data (JSON) for lists, such as invoice line items, which the Data rows can't express:
{
"invoice_number": "INV-1042",
"customer": { "name": "Jane Doe", "email": "jane@example.com" },
"items": [
{ "description": "Widget", "quantity": 2, "unit_price": 19.5 },
{ "description": "Gadget", "quantity": 1, "unit_price": 42 }
]
}
Open the template in the dashboard and click Copy JSON (also on each template card). It copies sample data with every field the template uses, ready to paste into Data (JSON) and replace with mapped values.
Example: HTML or a web page to PDFβ
Use Generate PDF when you have the content itself rather than a template:
- Input Type: HTML, Markdown or URL.
- Content: the HTML or Markdown, or the page URL. Map it from an earlier step, such as a webhook, an email body or a CMS post.
- Page options (all optional): Page Format (A4, Letterβ¦), Landscape, Margin, Print Background, Scale and Page Ranges. Anything left blank uses PodPDF's defaults.
URLs must be publicly reachable; pages behind a login can't be converted.
PDFs you already haveβ
The eight actions in the second table take a PDF in rather than making one. In the PDF field, map either:
- a file from an earlier step: an email attachment, a Google Drive or Dropbox file, or the PDF File from another PodPDF step, or
- a public link to a PDF.
Each of these steps is charged once, as one PDF operation, however many changes it makes. The price of an operation depends on the number of pages; see Billing.
Merge PDFsβ
Add the PDFs in the order you want them. Pages of Each PDF is optional: one line per PDF, in the same order, such as 1-3 or 2-end; leave a line blank for every page.
Up to 20 PDFs and 4 MB in total are merged in the step, and you get the merged PDF File straight away. Bigger merges (up to 100 PDFs) run in the background: the step returns a Job ID, and you collect the result the same way as a long document, with a Delay step and then Find Download Link.
Split PDFβ
Choose a Split Mode:
| Mode | You also set | You get |
|---|---|---|
| Each page as its own PDF | β | One PDF per page |
| Every N pages | Pages per File | A new file every N pages |
| By page ranges | Ranges, one per line, such as 1-3, 4-9, 10-end | One PDF per range |
| Extract some pages into one PDF | Pages, such as 1-3,5 | One PDF with those pages |
The step returns each part as a line item (Outputs), with its own file and link, plus a File that is the PDF itself when there is one part and a ZIP of them all when there are several. Use Filename Pattern to name the parts, for example payslip-{index:03}.
A PDF over 4 MB is split in the background and returns a Job ID; Find Download Link then gives a ZIP of the parts.
Text, watermarks, page numbers and Bates numbersβ
These work on PDFs of up to 200 pages and finish in the step: a PDF over 4 MB is uploaded first, but there is no background job to wait for.
- Add Text or Watermark to PDF. Style picks the starting point: Text is small and top left, Watermark is large, faint, centred and diagonal. Position, font size, colour, opacity and rotation override it. Pages limits it to some pages, such as
1or2-end. - Add Page Numbers, Header or Footer to PDF. In Text,
{page},{pages}and{date}are filled in on each page. Left blank, it printsPage {page} of {pages}at the bottom centre. - Bates Number PDF. Set a Prefix such as
ACME-, a Start Number and the number of Digits. The step returns Next Start: map it into the next run's Start Number to carry one sequence across several documents.
Rotate, Delete or Keep PDF Pagesβ
Pick an Action and the Pages it applies to, such as 1, 1-3,5 or 2-end. Rotating with Pages left blank turns every page; deleting or keeping needs the pages.
Fill PDF Formβ
In Fields, put a form field's name on the left and map its value on the right. Names must match the form exactly; if one is wrong, the error lists the names the form really has. For a check box use true or false. Fields (JSON) takes the values as one JSON object instead, which is the way to select several items in a list.
Lock the Answers (Flatten) draws the answers onto the page so they can no longer be edited. It cannot be undone.
Edit PDF (Advanced)β
For anything the other actions don't cover, such as removing metadata, adding an image stamp, or several changes in one step, Recipe (JSON) takes a list of editor operations, applied in order:
[
{ "op": "pages.delete", "pages": "1" },
{ "op": "watermark.text", "text": "COPY" },
{ "op": "metadata.strip" }
]
Every operation is listed in the PDF editor reference.
If Zapier runs an editing step again the same day after an error, PodPDF recognises the same PDF and the same changes and returns the first result instead of charging twice. Merge and split are charged each time they run.
A PDF that is password-protected, or that restricts printing and copying, is refused with PDF_ENCRYPTED. Unlock it first in the dashboard under PDF Tools β Unlock, or with POST /pdf/unlock; there is no Zapier step for that yet.
Example: stamp contracts as they arriveβ
- Trigger: Gmail β New Attachment, filtered to your contracts label.
- Action: PodPDF β Add Text or Watermark to PDF.
- PDF: the attachment from step 1.
- Text:
Receivedfollowed by the email's date. - Style: Text. Position: Top right.
- Action: Google Drive β Upload File. In File, choose PDF File from the PodPDF step.
Long documents (over 25 pages)β
Zapier stops a step after about 30 seconds, so big documents run in the background:
- PodPDF β Start Long Job, with the HTML or Markdown. It returns a Job ID.
- Delay by Zapier β Delay For 3 to 5 minutes.
- PodPDF β Find Download Link, with the Job ID from step 1. It returns the PDF file and a fresh link.
If the job hasn't finished when step 3 runs, the step fails with JOB_NOT_READY; make the delay longer. Find Job tells you a job's status and page count if you want to check first.
Find Download Link also works for PDFs made by Generate PDF and Render Template: map their Job ID to get a new link after the first one expires. Generated files are kept for 30 days; see Limits.
Troubleshootingβ
| Message or symptom | What to do |
|---|---|
UNAUTHORIZED or the connection test fails | The API key was deleted or mistyped. Create a new key and reconnect. |
INSUFFICIENT_CREDITS or a payment-required error | Buy a credit pack or pick a plan in the dashboard's Billing page. |
TEMPLATE_NOT_FOUND | Check the Template ID. It must belong to the same PodPDF account as the API key. |
| A field is blank in the PDF | The key doesn't match the template's field name. Names are case-sensitive; use Copy JSON to see the exact names. |
Data (JSON) is not valid JSON | Check quotes and commas. Keys and text values need double quotes. |
PAGE_LIMIT_EXCEEDED, QUICKJOB_TIMEOUT or the step times out | The document is too big for Generate PDF. Use Start Long Job. |
| The download link doesn't open | Links expire after one hour. Use Find Download Link with the Job ID, or attach the PDF File instead of the link. |
Could not download PDF or PDF is not a PDF file | The PDF field needs a file from an earlier step or a public link to a PDF. A link to a sign-in page or a viewer page won't work. |
PDF_ENCRYPTED | The PDF is password-protected. Unlock it first; see PDFs you already have. |
PDF_TOOLS_NOT_ENABLED or PDF_EDITOR_NOT_ENABLED | Your plan doesn't include the PDF tools or the editor. Contact PodPDF. |
PDF_PAGE_LIMIT_EXCEEDED on an editing step | The editing actions take up to 200 pages. Use Split PDF first, then edit the parts. |
| A merge or split returned a Message and no file | The PDFs were over 4 MB, so the work runs in the background. Add a Delay, then Find Download Link with the Job ID. |
This PDF has no form fields to fill | The PDF is not a fillable form, or its fields were already flattened. |
RATE_LIMIT_EXCEEDED | Zapier retries automatically. Frequent throttling means your Zaps run faster than your plan's rate limit. |
For the full list of error codes, see Error handling.
Getting helpβ
- Problems with a Zap (it didn't trigger, a step was skipped, Zapier errors): contact Zapier support. They can see your Zap's history and will pass PodPDF-side issues to us.
- Problems with PDFs, templates, credits or your account: contact PodPDF.