Why Google Sheets
Most people already have their data in a spreadsheet. Student names, order details, employee records — it's all sitting in Google Sheets. The problem is getting that data into documents without copy-pasting each row manually.
We're going to fix that. By the end of this tutorial, every new row you add will automatically generate a PDF and deliver it wherever you need.
Already have your spreadsheet ready? Skip to creating your template.
Prepare your Google Sheet
1.1 — Structure your data
Nothing fancy here. Headers in row 1, data below. I'll use a certificate example, but the same structure works for invoices, reports, whatever you're building.
| name | course | date | |
|---|---|---|---|
| Sarah Chen | sarah@example.com | Advanced Python | Feb 28, 2026 |
| Marcus Johnson | marcus@example.com | Data Science 101 | Mar 1, 2026 |
I added an email column so I can send each certificate to the right person later. You can skip that if you just need to download the PDFs.
1.2 — Column naming tips
One thing that'll save you headaches: keep column names simple. No spaces, no special characters.
These work well
nameemailcompletion_datetotal_amount
These cause problems
Full Name→ usenameE-mail Address→ useemailDate (MM/DD)→ usedate
Already have a spreadsheet with weird column names? It'll still work, you'll just have to map fields manually in Zapier.
Create your PDF template
2.1 — Choose a template
I'll use a certificate template for this tutorial. You can grab one from our template gallery or create your own from scratch.
- Go to Templates
- Pick one that looks close to what you need
- Click Use Template to copy it to your dashboard
Already have a design from Canva or Figma? Check out our Canva import guide.
2.2 — Add variables for your columns
Here's the key part. Your spreadsheet has a column called name. In your template, you use {{name}}. When Zapier runs, it swaps the placeholder for the actual value.
For my certificate, I'm using:
name→{{name}}course→{{course}}date→{{date}}So the template text changes from this:
Before
This certifies that John Doe has completed...
After
This certifies that {{name}} has completed...
Need to do more with your data? Check expressions for things like formatting dates or doing math.
2.3 — Test it
Before connecting Zapier, let's make sure the template actually works. Click the Preview tab and paste in some test data:
You should see the values appear in your certificate. If something looks off, fix it now before we connect Zapier.
Connect with Zapier
Now we wire it up. The Zap will watch your spreadsheet, and when you add a row, it sends that data to TemplateFox and emails the PDF.
Google Sheets
New Row
TemplateFox
Generate PDF
Gmail
Send Email
3.1 — Set up the trigger
- Go to zapier.com and create a new Zap
- Search for Google Sheets
- Pick New Spreadsheet Row as the trigger
- Connect your Google account and select your spreadsheet
- Test it — Zapier should pull in one of your existing rows
There's also a New or Updated Spreadsheet Row trigger if you want to regenerate PDFs when you edit a row. I'm using the simpler one for this tutorial.
3.2 — Add the PDF action
- Add an action step and search for TemplateFox
- Pick Generate PDF
- Connect your account (you'll need your API key from the dashboard)
- Select the template you created earlier
- Map the fields — Zapier shows you all the columns from your sheet
My field mapping looks like this:
If you named your columns the same as your template variables, Zapier might auto-fill some of this.
3.3 — Send the PDF somewhere
The PDF action gives you a URL. Now you need to do something with it. I'm going to email it.
- Add another action: Gmail (or whatever email service you use)
- For the recipient, use the
emailcolumn from your spreadsheet - Attach the PDF URL from the previous step
- Write your email subject and body
Turn on the Zap and add a row to your spreadsheet. If everything's wired up right, you should get an email with the PDF attached.
Don't want to email? You can save to Google Drive, upload to Dropbox, post to Slack — whatever works for your workflow.
What people build with this
Certificates
The most common use case. Course creators use this to send certificates when students finish a course. Works great with Teachable, Thinkific, or just a simple signup form.
Reports
Weekly sales reports, project updates, performance summaries. Some teams run a script every Monday to populate the sheet, then PDFs go out automatically.
Invoices
Freelancers and agencies who track projects in spreadsheets. Add a row when a project wraps, and the invoice goes out.
Labels & Badges
Event organizers who collect registrations in a form. Each signup becomes a printable badge or name tag.
Letters
HR teams sending offer letters, or nonprofits sending donor acknowledgments. Same template, different names.