Automation · 3 min read
By Murtaza Aziz
Generate a PDF from Zapier or Make: HTTP Module Setup Step by Step
POST JSON to Docuplate from a Zapier webhook or a Make HTTP module, then email or store the fileUrl. API keys start on Pro. Webhooks and public forms work on every plan without a key.
If the PDF has to appear when a form submits or a card moves, you do not want a person in the loop. Zapier and Make can POST the same payload the PDF generation API expects. The catch: the API key belongs on the server side of the automation, never in a Webflow page or a Bubble client workflow that a visitor can view-source.
Webhooks and public forms on Docuplate already cover a lot of this without Zapier. Use an HTTP module when the trigger lives in another app (Typeform, Shopify, a CRM) and you want that app to call Docuplate.
When you need an API key, and when you do not
Every plan can paste a Docuplate webhook URL into another tool, or share a public form that fills a template. That is the automate PDFs path. REST keys (they start with df_) exist on Pro ($39/mo) and Business. You need a key for Zapier's Webhooks POST and Make's HTTP module, because those tools call POST /api/public/templates/{templateId}/generate.
Create the key under API Keys in the app. Copy it once. Store it in Zapier's or Make's secret fields, not in a spreadsheet cell and not in a GitHub gist.
Make: HTTP module
Trigger: whatever produces the data (Webflow form, Shopify order, Google Sheet new row). Action: HTTP → Make a request.
URL: https://www.docuplate.io/api/public/templates/{templateId}/generate (replace the id from the builder URL). Method: POST. Headers: Authorization = Bearer df_… and Content-Type = application/json. Body type: JSON, with a data object whose keys match your template paths:
{"data":{"customer":{"name":"{{name}}"},"invoice":{"number":"{{number}}"}}}
Map Make fields from the previous module. For line items, build an items array with Make's array aggregator or a JSON module. On 200, read fileUrl from the response and pass it to Gmail, Drive, or your CRM.
Zapier: Webhooks by Zapier
Trigger: Webflow Form Submission, Shopify New Order, or any app Zapier already supports. Action: Webhooks by Zapier → POST. Same URL, same Bearer header, same JSON body shape. Then add Email by Zapier or Google Drive and use the fileUrl from the webhook response.
If Zapier returns 401, the key is missing, truncated, or sitting on a Free/Starter workspace that cannot mint API keys. If the PDF is blank, the JSON keys do not match the paths in the builder. Open Example data and copy the shape exactly.
What not to do
Do not put df_ in Webflow custom code, a Bubble page workflow that runs in the browser, or a public Git repo. Anyone who sees the key can generate PDFs on your quota.
Bubble can call Docuplate from a backend workflow via the API Connector; that is fine. Webflow should go through Make, Zapier, or a tiny worker that holds the secret. The Guides page has copy-paste bodies for Bubble, Make, and Zapier if you want the field names in one place.
Timeouts: a sync generate usually returns in a couple of seconds. If Zapier or Make hits its HTTP timeout, switch the Docuplate call to async=true and add a second module that polls GET /api/public/jobs/{jobId} until fileUrl appears. Store that URL on the order record rather than downloading the bytes into the scenario, unless you need to attach the file to email in the same run.