To zapier generate pdf output with RelayPDF, add the official RelayPDF app in the Zap editor, connect a pdf_live_ key, and run Create PDF. Zapier owns the trigger and field mapping. RelayPDF owns Chromium and LibreOffice. The Zapier host does not run a browser. Create PDF, Convert File, and Merge return a File field that Gmail, Google Drive, and Slack already know how to attach. Integration page: https://relaypdf.com/integrations/zapier. Sibling n8n how-to: https://relaypdf.com/blog/n8n-pdf-generation.
The generate step is the same four moves as the n8n post: receive data, map it into a document, generate a PDF, then send or store the file. Recurring invoices use a published templateId plus templateData. Convert and raster jobs wait via Zapier callbacks so LibreOffice can outlive the action timeout.
Connect the official app
In Zapier, create a Zap. Search RelayPDF when you add an action. Connect an account and paste the dashboard key (pdf_live_…) with no Bearer prefix. The connection test calls GET /v1/account and is not billed. Store the key in the Zapier connection only. Do not put it in a query string. Query-string keys are rejected on the API.
The app is invite-only until Zapier directory review. Maintainers push from packages/zapier-relaypdf. Until the listing is public, use the invite from the integration page or the Webhooks by Zapier fallback at the bottom of this article.
Zapier → Create → Search RelayPDF → Connect account (pdf_live_…)
Action: Create PDF → Source Template
Template: invoice
Template Data: (map from Google Sheets / Typeform)
File: attach in Gmail / Drive / Slack
Create PDF
The documented generate action is Create PDF. The setup on the integration page is Source Template. Template is the published dashboard slug or UUID (the same templateId you would send on POST /v1/pdf). Template Data is the JSON object Zapier maps from the trigger: a new Sheets row, a Typeform submission, or any earlier step. Recurring invoices and certificates live here. Publish the Handlebars layout in the dashboard before the Zap runs. A draft slug is not a published templateId.
Create PDF, Convert File, and Merge return a File field. Map that File into Gmail, Drive, or Slack. If you need to store a link instead of bytes, the URL field is a 24-hour download (GET /v1/files/:id). Pin the trigger fields you still need after the RelayPDF step. A File response replaces the item the same way a binary response does in n8n: the recipient address is not on the PDF step.
Do not invent extra RelayPDF actions in the editor. The live Zapier page names Create PDF, Convert File, Merge, and New Webhook Event. Other REST tools exist on the API and on the n8n node. They are not listed as Zapier actions on that page, so this how-to does not treat them as Zap steps.
Office files
Office files go through Convert File, not Create PDF. That is POST /v1/convert, not POST /v1/pdf. Pass the previous step’s File and a sourceFilename with the real extension (.docx, .xlsx, .pptx, or whatever LibreOffice received). A Gmail attachment or a Drive download is a File. Convert File reads that File. A 503 convert_unavailable means the document worker is cold; retry; it is not billed.
Convert and raster jobs wait via Zapier callbacks. LibreOffice can outlive the default action timeout. Do not replace Convert File with a Webhooks by Zapier POST to /v1/pdf and expect a Word file to print. Wrong path, wrong worker.
Merge
Merge is a named Zapier action. It returns the same File field as Create PDF. Use it when the Zap already has more than one PDF (two Create PDF steps, or a Convert File plus a Create PDF) and the next step should attach one file. The integration page does not document merge field names beyond the File output. Map the files the action UI exposes. Do not assume n8n’s mixed URL-and-binary merge inputs exist in Zapier unless the action shows those fields.
New Webhook Event
New Webhook Event uses POST /v1/webhooks. That is the official trigger path for the Zapier app. Do not paste Zapier URLs into Dashboard → Webhooks unless you are using the HTTP fallback. Dashboard webhooks and the Zapier trigger are different registration paths. Per-request callbackUrl on a generate or convert call is unsigned and is a different path again.
The n8n trigger lists signed dashboard events (job.completed, job.failed, wallet.topup, wallet.auto_reload, wallet.auto_reload_failed, wallet.payment_required) and HMAC-SHA256 on {t}.{raw_body}. The Zapier page does not reprint that event table on New Webhook Event. Configure the events the Zapier trigger UI lists. Do not paste n8n event names into a Zap field that is not shown.
Example: template invoice to Gmail
Mirror of the n8n invoice walkthrough, using only Zapier steps the integration page names.
- Trigger: Google Sheets (new row) or Typeform (new entry). The row or form must include recipient email and the invoice fields your published template expects.
- Action: RelayPDF → Create PDF → Source Template. Template: invoice (or the published slug). Template Data: map the trigger fields into the JSON the template binds.
- Action: Gmail send email. Attach the File field from Create PDF. Read the recipient from the trigger step, not from the RelayPDF step.
- If you need a stored copy, add Google Drive and upload the same File. If you need a link in Slack, map URL (24-hour) or upload File.
Test the Zap with a real published template and a funded wallet. Failed jobs are not billed on the API. An empty wallet returns payment_required and is not billed as a render.
Webhooks by Zapier fallback
If the official app is not on your account yet, Webhooks by Zapier remains the escape hatch. POST https://api.relaypdf.com/v1/pdf with Authorization Bearer pdf_live_… and a JSON body. Do not put the key in the URL.
curl -X POST https://api.relaypdf.com/v1/pdf
-H "Authorization: Bearer pdf_live_…"
-H "Content-Type: application/json"
-d '{"html":"<h1>Invoice #1042</h1>","filename":"invoice.pdf"}'
--output invoice.pdf
That curl is the same fallback as the n8n post. In Zapier, the Webhooks action is POST, URL https://api.relaypdf.com/v1/pdf, header Authorization = Bearer pdf_live_…, header Content-Type = application/json, body the JSON object. For HTML one-offs that the official Create PDF setup does not show as Source Template, this fallback is the documented way to send html. For a published invoice, prefer the official Create PDF action.
Dashboard → Webhooks is not the place to paste a Webhooks by Zapier catch URL unless you chose that HTTP fallback on purpose. New Webhook Event registers through POST /v1/webhooks.
Common failures
- PDF generated but not attached: File field not mapped, or the recipient was read from the RelayPDF step after File replaced the item.
- invalid_request: more than one source, or none. Empty strings count. Create PDF with Source Template still needs a published templateId and templateData.
- 401: extra Bearer in the Zapier connection (paste the key only), or missing Bearer on the Webhooks by Zapier fallback.
- Office file sent to Create PDF: use Convert File and sourceFilename with the real extension.
- url_not_allowed: a URL or callbackUrl RelayPDF cannot reach (private, loopback, metadata, or non-https callback).
- Zapier URL pasted into Dashboard → Webhooks while using the official New Webhook Event trigger.
- payment_required / rate_limited: empty wallet or 429. Neither is billed as a render. convert_unavailable: retry; not billed.
More: Zapier integration (https://relaypdf.com/integrations/zapier), n8n how-to (https://relaypdf.com/blog/n8n-pdf-generation), POST /v1/pdf, templates.
Ready to generate?
One API for HTML, Markdown, URLs, and Office. In Zapier, start with the official app: Create PDF, Convert File, Merge, New Webhook Event. REST, SDK, CLI, or MCP if you leave Zapier.
Open the Zapier integration: https://relaypdf.com/integrations/zapier