Get started
How to automate PDF generation with Zapier and Make.com

How to automate PDF generation with Zapier and Make.com

Step-by-step no-code guide to automating PDF generation with Zapier and Make.com. Typeform to PDF receipt, email delivery, Google Drive storage, and a full Zapier vs Make comparison.

benoitded13 min read

You can automate PDF generation in Zapier and Make.com by calling a PDF API from an HTTP action inside a multi-step workflow. The trigger is anything (a Typeform submission, a Stripe payment, a new row in Airtable), the middle step posts the data to the API, and the final step emails or stores the resulting PDF. No code, no server, no cron job.

This guide walks through the exact configuration for both platforms, using a concrete example: a Typeform submission generates a PDF receipt and emails it to the customer. It also compares Zapier and Make.com on the dimensions that matter for PDF workflows (price per run, webhook vs polling, error handling) and points at n8n for self-hosted alternatives.

PlatformBest forPricing modelWebhook trigger
ZapierBeginners, broad app catalogPer-taskPremium feature
Make.comHigh-volume workflowsPer-operationNative, included
n8n (self-hosted)Unlimited runs, privacyFree (community edition)Native, included

What you need before you start

You need three things: a no-code platform account, a PDF API key, and a template. This section covers what each one is and where to get it.

A no-code platform account is Zapier, Make.com, or n8n. Zapier's free plan does not include Webhooks by Zapier, so you need at least the Starter tier ($29.99/month at the time of writing). Make.com has a free plan that includes 1,000 operations per month, enough for roughly 250 PDFs. n8n's community edition is free and unlimited if you self-host it.

A PDF API key from PDF4.dev or any HTTP-based PDF service. On PDF4.dev, sign up, go to Settings, create an API key, and copy the p4_live_ token. You will paste it into the Authorization header of every request.

A template. Either a saved template in the PDF API (referenced by template_id) or raw HTML passed inline. The examples below use a saved template called receipt with three variables: {{customer_name}}, {{amount}}, and {{date}}.

Zapier setup: Typeform to PDF receipt

The Zap has three steps: Typeform trigger, Webhooks by Zapier action that calls the PDF API, and Gmail action that emails the result. Total click-through time is under 15 minutes for a first-time user.

Step 1: Typeform trigger

In the Zap editor, pick Typeform as the trigger app and "New Entry" as the event. Connect your Typeform account (Zapier opens an OAuth popup), select the form, and Zapier automatically pulls the field schema. When you run the test, Zapier shows the answers from the most recent submission, which you use to map fields in the next step.

Make sure your Typeform has the fields you need: customer name, email, and the line items or amount. Use the Typeform "Hidden Fields" feature if you want to pre-fill values from the URL (for example, the product SKU).

Step 2: Webhooks by Zapier

Add a new action, pick "Webhooks by Zapier", and choose "POST" as the event. The configuration screen has four fields:

  • URL: https://pdf4.dev/api/v1/render
  • Payload type: JSON
  • Data: map each template variable to the corresponding Typeform field
  • Headers: add Authorization: Bearer p4_live_YOUR_KEY and Content-Type: application/json

The Data section is where you wire the dynamic fields. Use Zapier's field picker to insert Typeform answers as variables. Your payload looks like this:

{
  "template_id": "receipt",
  "data": {
    "customer_name": "{{typeform_name}}",
    "customer_email": "{{typeform_email}}",
    "amount": "{{typeform_amount}}",
    "date": "{{zap_meta_human_now}}"
  },
  "delivery": "url"
}

The delivery: "url" field is critical. It tells PDF4.dev to save the PDF to temporary storage and return a signed download URL instead of a 2 MB base64 string that Zapier would truncate in the UI. The URL expires after 24 hours, long enough for the downstream steps to fetch it.

Test the step. If the API key is valid and the template variables match, Zapier shows a response that looks like { "url": "https://pdf4.dev/api/v1/renders/render_abc.../token=...", "expires_at": "...", "size_bytes": 42511, "duration_ms": 287 }.

Step 3: Gmail email with attachment

Add a Gmail action, pick "Send Email" as the event, and fill in the form:

  • To: the customer email from Typeform
  • Subject: "Your receipt"
  • Body: "Thank you for your purchase. Your receipt is attached."
  • Attachments: the url field from Step 2

Zapier is smart about URLs in the Attachments field. It fetches the URL at send time, downloads the binary, and attaches it to the outgoing email with the correct filename (set via Content-Disposition: attachment; filename="..." on the API response). No scripting needed.

If you use Outlook or a custom SMTP action instead of Gmail, check that the action supports attaching from URL. If not, add a "Formatter by Zapier" step with a "Utilities: Pick from List" trick, or swap the email step for a Google Drive upload and send the share link in the email body.

Make.com setup: the same workflow, cheaper

Make.com (formerly Integromat) does the same thing in slightly fewer operations because webhooks are included and the HTTP module is native. The scenario has three modules: Typeform webhook trigger, HTTP request, and Gmail send.

Step 1: Typeform webhook

In Make, create a new scenario and pick Typeform as the first module. Choose "Watch Responses" (webhook-based, not polling) and Make generates a unique webhook URL. Paste that URL into your Typeform's Connect tab under Webhooks. Submit a test response and Make captures the schema automatically.

The advantage over Zapier is latency. Zapier's Typeform trigger polls every 1 to 15 minutes depending on your plan. Make.com receives the webhook immediately, so the PDF lands in the user's inbox within seconds of submission.

Step 2: HTTP "Make a request"

Add an HTTP module with these settings:

  • URL: https://pdf4.dev/api/v1/render
  • Method: POST
  • Headers: Authorization: Bearer p4_live_YOUR_KEY, Content-Type: application/json
  • Body type: Raw
  • Content type: JSON (application/json)
  • Request content: paste the same JSON body as the Zapier example, with Make field placeholders

Make field placeholders look like {{1.answers[0].text}} instead of Zapier's {{typeform_name}}. The mapping panel on the right shows you every field available from the trigger, click to insert.

Enable "Parse response" in the advanced settings so the url field of the response becomes a typed variable in the next step. Without this, you parse JSON manually in step 3.

Step 3: Gmail send email

Add a Gmail module, pick "Send an Email", and configure:

  • To: customer email from the trigger
  • Subject: "Your receipt"
  • Content: "Thank you for your purchase."
  • Attachments: click "Add item", then "Get a file from URL" sub-action, and point at {{2.url}} from the HTTP step

Make handles the URL-to-attachment dance natively and supports any attachment type. The whole scenario runs in 2 to 3 operations per PDF, versus Zapier's 3 tasks.

Zapier vs Make.com: the honest comparison

Both platforms work. The right choice depends on volume, latency sensitivity, and how comfortable you are reading slightly more technical UIs.

DimensionZapierMake.com
Free tier includes webhooksNoYes
Starter paid tier$29.99/month (750 tasks)$10.95/month (10,000 operations)
Cost per PDF (3-step Zap)~$0.12~$0.003
Trigger latency (Typeform)1 to 15 minutes pollingReal-time webhook
Error retries3 automatic retriesConfigurable (0 to 5)
Native PDF handlingNoneNone
App catalog size6,000+2,000+
Beginner friendlinessVery highMedium
Scenario debuggingTask history UIVisual execution log per module
Error handling branchesPaths (premium)Error routes (included)

Zapier wins if you need a niche app that Make does not integrate, or if you want the simplest possible setup and your volume stays under 300 PDFs per month. The UI is more polished and the onboarding is gentler.

Make.com wins if you generate more than a few hundred PDFs per month, need sub-second trigger latency, or want fine-grained error handling. The cost difference at scale is dramatic: 10,000 PDFs per month costs roughly $1,200 on Zapier's plans versus $35 on Make.com's plans.

Both platforms charge per execution, not per successful PDF. If your PDF API returns an error, the task still counts. Build a filter or error route that catches 4xx responses and stops the workflow cleanly, otherwise a bad template variable can burn through your monthly quota in an afternoon.

Storing PDFs in Google Drive or Dropbox

Email delivery is one option. Another common pattern is saving the PDF to a cloud folder for later retrieval, auditing, or customer self-service. The trick is the same on both platforms: add a third step that takes the PDF URL and uploads it to a file-storage module.

Zapier: add a "Google Drive: Upload File" action. In the File field, paste the URL from the Webhooks step. Zapier downloads and uploads the file. Set the folder to a specific customer folder using a variable like /receipts/{{year}}/{{customer_id}} if you want per-customer segmentation.

Make.com: add a "Google Drive: Upload a file" module. Point at the URL from the HTTP module and set the destination folder. Make supports variable folder paths the same way Zapier does.

Dropbox, OneDrive, Box, and S3 all have equivalent modules on both platforms. The pattern is identical: the PDF API returns a URL, the storage module fetches and stores it.

Handling errors gracefully

A Zap or scenario that silently fails is worse than one that crashes loudly. Build error handling into every PDF workflow from day one.

Zapier error handling. Use Paths (Zapier's branching feature, premium) to check the HTTP response status from the Webhooks step. If the status is 200, continue to email delivery. If it is 4xx or 5xx, route to an "Email by Zapier" action that notifies your ops email with the error body. This isolates failures without killing the Zap.

Make.com error handling. Right-click the HTTP module and add an error route. In the error route, add an "Incremental Sleep" module with 30-second backoff and a retry counter. If retries exceed three, send a Slack alert via the Slack module. Error routes are free and do not count against your operations budget.

Common failure modes you will see in production:

  • 401 Unauthorized: wrong API key or expired. Catch and alert.
  • 400 Invalid request: template variable is missing or wrong type. Validate the trigger data before the HTTP step.
  • 429 Rate limited: too many PDFs per second. Add an incremental delay module between the trigger and HTTP step.
  • 500 Server error: transient, retry with backoff.

What about n8n?

n8n is the self-hosted alternative. It is free, runs on any VPS, and has no per-operation pricing. PDF4.dev publishes an official n8n community node called n8n-nodes-pdf4 on npm. Install it from n8n's Settings → Community Nodes panel, paste n8n-nodes-pdf4, and click Install. The node exposes four operations: Render From Template, Render From HTML, List Templates, and Get Template.

The tradeoff with n8n is operations: you run the server, you update it, you monitor it. If you already have a homelab or a small VPS, n8n is the cheapest option by a wide margin. If you want zero ops, stick with Zapier or Make.

For PDF4.dev users specifically, the n8n node saves you the "Webhooks by Zapier" or "HTTP request" step because it speaks the API natively. You pick the template from a dropdown instead of typing the URL. See the n8n integration page for full setup instructions.

A second workflow: Stripe payment to branded invoice

Once you have the basic pattern down, the second workflow is trivial. Swap the trigger and the template variables stay the same shape.

Trigger: Stripe "New Charge" event. Zapier and Make both have native Stripe modules with webhook-based triggers.

HTTP action: POST to https://pdf4.dev/api/v1/render with template_id: "invoice" and the Stripe charge data mapped to template variables: customer_name, customer_email, invoice_number (use charge.id), amount (use charge.amount divided by 100), currency (use charge.currency).

Delivery: two parallel branches, one to email the customer, one to upload to Google Drive for your accounting records. Both branches share the same url variable from the HTTP response.

Total operations per payment: five (trigger, HTTP, email, drive upload, Slack notification to the sales channel). On Make.com, that is roughly $0.005 per invoice. On Zapier, roughly $0.20. At 1,000 invoices per month, the difference is $195.

FAQ

Can Zapier generate PDFs?

Zapier itself does not generate PDFs, but it can call any HTTP API that does. The Webhooks by Zapier action posts your data to a PDF generation API and hands the returned file to the next step in the Zap, typically an email or cloud storage action.

Is Make.com better than Zapier for PDF workflows?

Make.com is cheaper per operation and has native webhook triggers with no polling delay. Zapier has more native app integrations and a simpler UI. For PDF automation specifically, Make.com wins on cost at scale; Zapier wins on time-to-first-Zap for beginners.

How much does it cost to generate a PDF via Zapier?

A typical PDF Zap uses three tasks (trigger, HTTP request, email delivery). On Zapier's Starter plan, that is three tasks per PDF. At 750 tasks per month, you can generate 250 PDFs. Higher volumes push you to Professional or Team plans.

What is the minimum Zapier plan needed for PDF generation?

The Starter plan ($29.99/month) includes Webhooks by Zapier and Multi-step Zaps, which are the two premium features needed for PDF workflows. The free plan does not include Webhooks.

Can I send a generated PDF by email in Zapier?

Yes. Use Gmail or Outlook as the email action, and in the Attachments field, paste the URL returned by the PDF generation step. Zapier fetches the URL and attaches the file to the outgoing email.

How do I trigger a PDF when a Typeform is submitted?

Connect Typeform as the trigger, map form answers to template variables in a Webhooks by Zapier action that calls your PDF API, then add a Gmail step that sends the PDF URL as an attachment. Total setup time is under 15 minutes.

Does n8n work as an alternative to Zapier and Make?

Yes. n8n is a self-hosted workflow tool with a free community edition. PDF4.dev publishes an official n8n community node so you can render PDFs inside n8n workflows without writing HTTP request logic by hand.

Start automating your PDF workflows

PDF4.dev speaks the HTTP APIs that Zapier, Make.com, and n8n all understand. A free tier covers testing, and the delivery: "url" response mode is built for workflow tools that pass file links between steps.

Try the HTML to PDF toolTry it free

Free tools mentioned:

Html To PdfTry it free

Start generating PDFs

Build PDF templates with a visual editor. Render them via API from any language in ~300ms.