How to make certificates from a Google Sheet
A list of names in, one named certificate PDF per person out.
The standard Sheets answer is a Google Slides template driven by Apps Script — Slides rather than Docs, because a certificate is a designed, fixed-size page and Slides gives you real control over where things sit.
A Slides template plus Apps Script
Two hours or so to build, minutes per batch afterwards
- 1
Design one certificate in Google Slides
One slide, page size set to your certificate dimensions, with a text box containing a placeholder such as {{Name}} where the recipient's name belongs.
- 2
Put the names in a Sheet
One row per recipient. Any extra columns you want on the certificate — course, date, grade — become extra placeholders.
- 3
Script the loop
From Extensions → Apps Script, copy the template with DriveApp, open the copy with SlidesApp, and call replaceAllText('{{Name}}', value) for each placeholder.
- 4
Export and clean up
Take getAs('application/pdf') from the copy, save it to a folder under the recipient's name, then trash the copied deck so Drive is not left holding one presentation per person.
Where it breaks
- The same six-minute ceiling applies, and Slides copies are heavier than Docs copies — a cohort of a few hundred certificates is a realistic place for a run to die partway through.
- Long names are the quiet failure. replaceAllText does not resize anything, so a name noticeably longer than the one you designed around either overflows its box or wraps onto a second line — and you find out by opening the PDFs one at a time.
- Every recipient's certificate passes through your Drive, which matters if the list is students or staff and you would rather that data not sit in cloud storage at all.
- The unverified-app consent screen has to be clicked through, and on a managed Workspace domain an admin may have blocked that route entirely — which is where this method stops being available rather than merely awkward.
Or do it here, in two clicks more
This runs in your browser, so it reads a downloaded file rather than connecting to your Google account — no Drive access, no consent screen, no signup. The export is the only extra step:
- 1File → Download → Comma Separated Values (.csv) on your list of recipients.
- 2Drop it below and pick the certificate layout, or bring your own template with {{Column}} placeholders.
- 3Run it. One PDF per recipient, named from the name column, straight to your Downloads folder — no Drive copies to clean up afterwards.
Runs entirely in your browser · No upload · No signup · Open the network tab and check
Questions
Can I use my own certificate design?
Yes — bring a template with {{Column}} placeholders matching your spreadsheet's headers. The names of the columns are the names of the placeholders; nothing has to be configured beyond that.
How does it handle unusually long names?
Honestly, this is a hard problem in every tool including this one. Check a long name and a short one in your first batch before sending any of them — that advice applies equally to the Slides route, where nothing warns you either.
Is there a limit on how many I can generate?
The free tier covers 20 rows per run, which is enough to prove the output looks right on real names. Beyond that it is a paid feature — but the 20-row run uses the same engine, so what you see is what you will get.
Working in Excel instead?
Certificate Generator covers the same job from an .xlsx or .csv file, with the Excel methods — Power Query, VBA and the rest — written out in full.