Zapier Tutorial

Google Sheets to PDF with Zapier

You have data in a spreadsheet. You need PDFs. Let's connect them.

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.

1

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.

My example spreadsheet
nameemailcoursedate
Sarah Chensarah@example.comAdvanced PythonFeb 28, 2026
Marcus Johnsonmarcus@example.comData Science 101Mar 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

  • name
  • email
  • completion_date
  • total_amount

These cause problems

  • Full Name → use name
  • E-mail Address → use email
  • Date (MM/DD) → use date

Already have a spreadsheet with weird column names? It'll still work, you'll just have to map fields manually in Zapier.

2

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.

  1. Go to Templates
  2. Pick one that looks close to what you need
  3. 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:

{
"name": "Sarah Chen",
"email": "sarah@example.com",
"course": "Advanced Python",
"date": "Feb 28, 2026"
}

You should see the values appear in your certificate. If something looks off, fix it now before we connect Zapier.

3

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

  1. Go to zapier.com and create a new Zap
  2. Search for Google Sheets
  3. Pick New Spreadsheet Row as the trigger
  4. Connect your Google account and select your spreadsheet
  5. 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

  1. Add an action step and search for TemplateFox
  2. Pick Generate PDF
  3. Connect your account (you'll need your API key from the dashboard)
  4. Select the template you created earlier
  5. Map the fields — Zapier shows you all the columns from your sheet

My field mapping looks like this:

name1. name (from Google Sheets)
course1. course (from Google Sheets)
date1. date (from Google Sheets)

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.

  1. Add another action: Gmail (or whatever email service you use)
  2. For the recipient, use the email column from your spreadsheet
  3. Attach the PDF URL from the previous step
  4. 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.

Other tutorials

Frequently asked questions

How do I match spreadsheet columns to template fields?

Use the same names. If your spreadsheet has a column called name, use {{name}} in your template. When you set up the Zap, Zapier shows you all your columns and you just click to map them.

Does each row become a separate PDF?

Yes. One row = one PDF. Add 10 rows, you get 10 PDFs. If you need to process a bunch of existing rows at once (not just new ones), check out Make instead — it can loop through rows.

Can I regenerate PDFs when I edit a row?

Yes. Use the New or Updated Spreadsheet Row trigger instead. It fires whenever any cell in a row changes.

What if my spreadsheet has formulas?

Zapier sees the result, not the formula. If a cell shows 120 (calculated from =A2*1.2), Zapier sends 120 to your template.

Can I include images?

If you have image URLs in your spreadsheet, yes. Add an image element to your template and bind it to that column. The image gets fetched and embedded when the PDF generates.

Is there a limit on how many rows I can process?

Not from us. Each row triggers independently. The limits are on Zapier's side (tasks per month based on your plan) and Google's API quotas, but those are pretty generous.

How do I send each PDF to a different email address?

Add an email column to your spreadsheet. In the Gmail action, use that column as the recipient. Each person gets their own PDF.

What does it cost?

You get 60 free PDFs per month. After that, plans start at $19/month. See pricing.

Automate your PDF generation

Complete documentation, no-code integrations, and a powerful API to help you generate PDFs at scale. Let us handle the boring stuff.