What you'll build
By the end of this guide, you will have a Zapier automation (called a "Zap") that listens for a trigger event in one of your tools, calls the Typsetter API with the relevant data, and delivers the generated PDF to an email address or saves it to a cloud folder. The whole setup takes about 20 minutes and requires zero code.
Prerequisites
- A Typsetter account (free plan works for this guide)
- A Zapier account (free plan works for initial setup; paid plan needed for premium triggers like Stripe)
- One of the trigger apps: Stripe, Airtable, Typeform, Google Forms, or any Zapier-supported app
- A template in your Typsetter account — use any of the 31+ starters from the store
Choose your trigger
The trigger is the event that starts your Zap. Here are the three most common use cases for PDF automation:
Stripe Payment
Generate an invoice or receipt the moment a payment is completed. Uses the "New Payment" or "New Charge" trigger.
Airtable Record
Generate a contract or report when a new record is created or a status field changes. Uses Airtable's "New Record" trigger.
Form Submission
Generate a certificate or agreement the moment someone submits a Typeform, Google Form, or Gravity Form.
This guide uses the Airtable new record trigger as the example. The steps for Stripe and Typeform are structurally identical — only the trigger app changes.
Create a Typsetter account and get your API key
Go to typsetter.dev/register and create a free account. No credit card required for the free plan (100 PDFs/month).
After signing in, go to Settings → API Keys and click Create New Key. Name it "Zapier" and copy the key. It looks like ts_live_sk_abc123.... Store it securely — you'll need it in Step 4.
While in the dashboard, note the slug of the template you want to use (e.g., invoice-professional). You'll find it in the template editor URL or on the template card in the store.
Create a new Zap in Zapier
Log into your Zapier account at zapier.com. Click Create Zap in the top bar.
You'll be taken to the Zap editor, which is a step-by-step wizard. The first step is always the trigger.
Set up the trigger: Airtable new record
In the trigger step, search for Airtable and select it. Choose the trigger event New Record.
Connect your Airtable account by clicking Sign in to Airtable and following the OAuth flow. Once connected, select:
- Base: The Airtable base containing your client or order data
- Table: The specific table (e.g., "Invoices" or "Orders")
Click Test trigger to pull a sample record. Zapier will fetch the most recent row from your table, which you'll use to map fields in the next steps.
Add the Typsetter action: Webhooks by Zapier
Click + to add an action. Search for Webhooks by Zapier and select it. Choose POST as the event.
Fill in the webhook configuration:
- URL:
https://api.typsetter.dev/v1/render - Payload Type: JSON
- Headers: Add a header named
Authorizationwith valueBearer ts_live_sk_YOUR_KEY(replace with your actual key from Step 1)
Map Airtable fields to template variables
In the Data section of the Webhooks step, you'll build the JSON body that Typsetter receives. Click into the data field and add your key-value pairs. Use the blue dropdown on each value to insert data from the Airtable trigger step.
The field names in the data.* keys must match the variable names in your Typsetter template exactly. Open your template in the Typsetter editor and look for {{ variable_name }} placeholders to find the correct names.
Test the Zap end-to-end
Click Test action in the Webhooks step. Zapier will make a real POST request to the Typsetter API using the sample data from your Airtable trigger.
If the test is successful, the response will be a PDF binary (it will show as garbled characters in the Zapier UI — this is normal for binary data). If you see a JSON error response, check that your Authorization header is correct and that the template slug matches exactly.
Common issues:
- 401 Unauthorized: API key is wrong or has a trailing space. Re-paste from the dashboard.
- 422 Unprocessable Entity: A required template variable is missing from your data fields. Check the template for required variables.
- 404 Not Found: The template slug is wrong. Double-check it in the Typsetter dashboard.
Add email delivery (optional but recommended)
The Typsetter API returns the PDF as a binary response. To email it, add a second action step after the Webhooks step:
- Click + to add another action
- Search for Gmail (or your email provider) and select it
- Choose Send Email with Attachment
- Set To to
{{airtable.Email}} - Set Subject to something like
Your Invoice {{airtable.Invoice Number}} - Set Attachment to the Body output from the Webhooks step (this is the PDF binary)
- Set Attachment Filename to
invoice-{{airtable.Invoice Number}}.pdf
Instead of (or in addition to) emailing, you can add a Google Drive "Upload File" action and save the PDF binary directly to a folder. Use the same Body output from the Webhooks step as the file content.
Turn on your Zap
Click Publish Zap in the top right corner of the Zap editor. Your automation is now live. Every new Airtable record that matches your trigger conditions will automatically generate a PDF invoice and email it to the client.
To monitor runs, go to the Zap History tab on your Zap. Each run shows the full input and output data for every step, making debugging straightforward.
Scaling up
The Zap approach generates PDFs one at a time, synchronously, which is appropriate for triggered events like "new payment received." If you need to generate PDFs for 500 existing records at once, use Typsetter's batch endpoint instead (see our batch generation guide).
For high-volume automations (hundreds of PDFs per hour), Zapier's rate limits may become a bottleneck. In that case, consider replacing the Zapier step with a direct API call from your backend, or use Typsetter's native n8n or Make.com integration which handles retries and parallel execution more efficiently.
Ready to automate your first PDF?
Create a free Typsetter account, pick a template from the store, and your Zapier integration will be live in under 20 minutes.