Integrations · Google Sheets

Add a row, issue a certificate

Keep your list of participants in Google Sheets as you do today. Each new row with a name and an email gets a verifiable certificate, and the sheet shows the result and the certificate link next to it. Setup takes about ten minutes and needs no technical knowledge.

Before you start you need a Certrust Pro or Enterprise plan, at least one achievement created in Certrust, and a Google account.

1. Create an API key in Certrust

  1. Sign in to Certrust and go to Manage → API keys.
  2. Name the key "Google Sheets" and keep the Read and Issue permissions ticked.
  3. Select Create key and copy the key. It starts with crt_ and is shown only once.

2. Add the Certrust script to your sheet

  1. Open your Google Sheet, or create a new one.
  2. In the menu, choose Extensions → Apps Script. A new browser tab opens.
  3. Delete the few lines of code that are there.
  4. Copy the Certrust script and paste it in:
    or download it
  5. Select the Save icon (the disk), then close that browser tab.
  6. Back in your sheet, reload the page. A Certrust menu appears after a few seconds.

3. Connect the sheet

  1. Choose Certrust → Connect this tab…
  2. The first time, Google asks for permission. Choose your account. If Google shows "Google hasn't verified this app", select Advanced, then Go to … (unsafe). Then select Allow.
  3. Choose Certrust → Connect this tab… again, paste your API key and select Connect.
  4. Pick the achievement this tab should issue and select Save.
Why the Google warning? The script is a copy that belongs to you and runs only in your Google account, so Google has not reviewed it. It asks for three things: to edit this spreadsheet, to connect to Certrust, and to run on a timer. It is open for anyone to read at the download link above.

4. Issue certificates

  1. Add people under Name and Email, one per row. An empty tab gets these headings for you.
  2. Choose Certrust → Issue new rows now.
  3. Each row gets a status and a certificate link. The person receives their certificate by email.

To issue without clicking, choose Certrust → Turn on automatic issuing. New rows are then issued every 5 minutes, even when the sheet is closed.

Collecting names with a form? See Google Forms: each person who submits the form gets their certificate straight away.

Columns

Columns are found by their heading in row 1 and can be in any order. Your other columns are left alone.

HeadingNotes
NameRequiredAlso recognised: Full name, Recipient, Recipient name.
EmailRequiredAlso recognised: E-mail, Email address, Recipient email.
Expiry dateOptionalA date in the future. Leave empty for a certificate that does not expire.
Your custom attributesIf you use themOne column per custom attribute from the Design Studio, with the attribute's name as the heading, for example Training Date.
Certrust statusAdded for youFilled in by Certrust. Don't type here, except to clear a row you want issued again.
Certificate linkAdded for youThe link to the person's certificate.

What the status means

StatusMeaning
Issued 2026-10-04The certificate was issued that day and emailed to the person.
Already issuedThis person already holds this certificate, so nothing new was sent.
Waiting: add a nameThe row has an email but no name. It is issued as soon as you add one.
Error: …Something is wrong with this row, and the message says what. Fix it, then choose Certrust → Retry rows with errors.

Good to know

  • Nobody is issued twice. A row is issued once. If the same person appears again for the same achievement, the row says "Already issued".
  • One achievement per tab. For another course or event, add a tab and choose Connect this tab… there.
  • Your key stays private. It is stored for your Google account only. Other people who can edit the sheet can't see it, and they need their own key to issue.
  • Large lists. Up to 200 rows are issued per run; the rest follow on the next run.
  • To stop, choose Certrust → Disconnect. To block the key completely, revoke it in Certrust under Manage → API keys.
  • Using Excel? Save the list as CSV and upload it on the Issue page.

If something doesn't work

  • No Certrust menu: reload the sheet and wait a few seconds. Check that the script was saved in Extensions → Apps Script.
  • "That API key is not valid": the key was mistyped, revoked or has expired. Create a new one and connect again.
  • "This key needs both the Read and the Issue permission": create a new key with both ticked.
  • No achievements listed: the list shows achievements created by the person who made the key. Create one in Certrust first.
  • A row says "… is required": your organisation has a required custom attribute. Add a column with that attribute's name and fill it in, then choose Retry rows with errors.

Connecting another system instead? See the setup guide for developers.