Create & Validate Digital Certificates with PDF Generator API and Gmail

Go to Workflow
0 views
Built by Paolo Ronco Paolo Ronco
Created on June 07, 2026

Description

Automated Certificate Creation & Verification (PDF Template-based)

๐Ÿ” Overview

This n8n workflow provides a complete end-to-end system for creating, distributing, and verifying digital certificates, using PDF Generator API templates instead of raw HTML.

It is designed as a production-ready MVP, fully functional and tested, that can be imported and adapted with minimal configuration.

The workflow exposes public endpoints to:

generate personalized certificates as PDFs
assign unique Certification IDs
email certificates automatically
verify certificate authenticity via API

๐ŸŽฏ Typical use cases

This workflow is ideal for:

training providers and academies
online courses and bootcamps
internal company certifications
workshops and events
proof-of-completion documents

Any scenario where certificates must be generated automatically and verified reliably.

โš™๏ธ What this workflow does

1๏ธโƒฃ Certificate creation (Webhook)

Endpoint

POST /certifications2

When triggered, the workflow:

Receives candidate data (name, surname, course, email)
Generates a unique Certification ID
Ensures the ID does not already exist
Stores certificate data in an n8n Data Table
Generates a PDF using a PDF Generator API template
Sends the certificate via email as a PDF attachment

2๏ธโƒฃ PDF generation (Template-based)

Instead of HTML, the workflow sends a JSON payload to a predefined PDF template.

Example payload:

{
"Candidate": "John Doe",
"CourseName": "Advanced n8n Automation",
"DueDate": "2025-01-10",
"ID": "LQ4Z5H8R2A1F"
}

The PDF layout (fonts, colors, logos, formatting) is fully managed via the PDF Generator API Template UI, keeping the workflow clean and maintainable.

3๏ธโƒฃ Email delivery

Uses Gmail OAuth2
Sends a customizable email
Attaches the generated certificate PDF automatically

4๏ธโƒฃ Certificate verification

Endpoint

GET /certificationscheck?id=CERTIFICATION-ID

This endpoint:

checks if the Certification ID exists
returns validation status and candidate info

Example response (valid):

{
"ok": true,
"name": "John",
"surname": "Doe"
}

This enables public, API-based certificate verification.

๐Ÿ›  Requirements

Before importing the workflow, you need:

n8n instance (cloud or self-hosted)
n8n Data Table with the following fields:

Name (string)
Surname (string)
CertificationID (string)
PDF Generator API account
Gmail OAuth2 credentials
Ability to expose webhook endpoints publicly

๐Ÿš€ Setup guide

Step 1 โ€“ Import the workflow

Open n8n
Go to Workflows โ†’ Import
Paste the provided workflow JSON

Step 2 โ€“ Configure the Data Table

Create (or reuse) an n8n Data Table with these fields:

| Field | Type |
| --------------- | ------ |
| Name | string |
| Surname | string |
| CertificationID | string |

Update the following nodes to reference your Data Table:

Insert_Certification
Find_Certification_By_ID
Find_Certification_By_ID1

Step 3 โ€“ Configure PDF Generator API

Create a PDF template in PDF Generator API
Add placeholders such as:

{Candidate}
{CourseName}
{DueDate}
{ID}
In n8n, set credentials on the Generate a PDF document node

โš ๏ธ Placeholder names must exactly match the JSON keys used in the workflow.

Step 4 โ€“ Configure email credentials

Open the Email Certificate node
Set Gmail OAuth2 credentials
Customize subject and message body if needed

Step 5 โ€“ Activate the workflow

Click Activate
Your endpoints are now live:

/certifications2
/certificationscheck

๐Ÿงช Status & notes

This workflow is an MVP, but already production-ready
Designed to be:

modular
reusable
easy to extend
Recommended version for new implementations
HTML-based version is kept only for reference/backward compatibility

๐Ÿ’ก Customization ideas

You can easily extend this workflow by:

adding QR codes to certificates
storing additional metadata
integrating with LMS platforms
adding a public verification webpage
switching email provider

Nodes Used (2)

Code
n8n-nodes-base.code
Gmail
n8n-nodes-base.gmail