---
title: "\\[n8n-template\\] Certification Creator & Checker — Paolo Ronco"
language: "en"
url: "https://paoloronco.it/en/writing/n8n-template-certification-creator-checker"
---

[← writing](/en/writing)

25 November 2025 · 5 min read · #n8n

# \[n8n-template\] Certification Creator & Checker

This Guide contains a complete end-to-end certification management system built with n8n. It automates the entire lifecycle of a digital certificate — from…

* * *

This Guide contains a complete **end-to-end certification management system built with n8n**.It automates the entire lifecycle of a digital certificate — from creation, to PDF generation, to verification via API or a user-friendly HTML page.

![](/posts/n8n-template-certification-creator-checker/Workflow-image.png)

[Example-Certificate](https://raw.githubusercontent.com/paoloronco/n8n-templates/main/free-templates/3-Certification-Creation%26Validation/Assets/Example-Certificate.pdf)

See all my workflows on Github [paoloronco/n8n-templates](https://github.com/paoloronco/n8n-templates)  
Video: YouTube - [Certificate Creator & Validator](https://youtu.be/A7aKK0Z9n9A)

See the workflow on n8n Creators hub: \[coming soon\]

* * *

## 🔥 What This Workflow Does

### 🎓 1. Certificate Creation

Automatically generates a fully personalized certificate when a new request is received:

-   Accepts candidate data via a **POST webhook** (`/certifications`)
-   Reads: **name**, **surname**, **course**, **email**
-   Produces a **unique Certification ID** using a custom generation algorithm

### 🗂 2. Data Storage

Stores each issued certificate in an **n8n Data Table**, including:

-   Candidate First Name
-   Candidate Last Name
-   Certification ID

This creates a persistent, searchable certification registry.

### 🧾 3. PDF Certificate Generation

Builds a professional certificate PDF using **PDF Generator API**:

-   Fully customizable HTML template
-   Inserts candidate data, course name, certification ID, and date
-   Outputs the final document as `document.pdf`

### ✉️ 4. Email Delivery

Automatically sends the generated certificate to the candidate:

-   Uses **Gmail OAuth2**
-   Includes the PDF as an attachment
-   Sends a clean, customizable confirmation message

### 🔍 5. Certificate Verification

Provides a secure verification system through:

-   A **public API endpoint** (`/certificationscheck`)
-   Response includes:
-   Validation status
-   Candidate name + surname (if valid)

### 🌐 6. Verification Mini-Website

Includes a ready-to-use HTML page for certificate lookup:

-   User enters Certification ID
-   Page queries your `certificationscheck` endpoint
-   Displays whether the certificate is valid
-   Shows the candidate’s name if found
-   Fully customizable (branding, style, messages)

File included in the repo:**`Cerification_Check.html`**

* * *

In short, this workflow automates:✔ Certificate generation✔ Certificate storage✔ Certificate validation✔ PDF production✔ Email distribution✔ Public verification interface

Together, these features form a complete, production-ready certificate management platform powered by n8n.

* * *

🛠 Requirements

Before using this workflow, you must have:

1.  **n8n instance**(Cloud or self-hosted)
2.  **n8n Data Table** with ID fields:

-   `Name` (string)
-   `Surname` (string)
-   `CertificationID` (string)

1.  **PDF Generator API account**Credentials set in n8n as `pdfGeneratorApi`.
2.  **Gmail OAuth2 credentials**Configured in n8n as `gmailOAuth2`.
3.  Ability to call **HTTP POST endpoints** from your website, backend, forms, etc.

* * *

🚀 Installation

### **1\. Import workflow**

In n8n:

-   Go to **Workflows → Import**
-   Paste the JSON provided in this repository

### **2\. Configure Data Table**

Update the following nodes to point to your Data Table:

-   `Insert_Certificaton`
-   `Find_Certification_By_ID`
-   `Find_Certification_By_ID1`

Make sure the Data Table has the fields:

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

### **3\. Configure Credentials**

In the workflow:

-   Node **Generate\_PDF** → set PDF Generator API credentials
-   Node **Email\_Certification** → set Gmail OAuth2 credentials

### **4\. Activate Workflow**

Click **Activate** in n8n.

* * *

🔧 How the Workflow Works

### 🔹 1. Webhook: Certificate Creation (`/certifications`)

The workflow starts with:

`POST https://YOUR-N8N-DOMAIN.com/webhook/certification Headers: name: John surname: Doe course: Advanced n8n email: john.doe@example.com`

The webhook passes these headers to the next nodes.

* * *

### 🔹 2. Generate\_Certification\_ID (Code Node)

JavaScript used:

```plaintext
const uniqueId =
  Date.now().toString(36).toUpperCase() +
  Math.random().toString(36).substring(2, 8).toUpperCase();

return [{ id: uniqueId }];
```

Produces something like:`LQ4Z5H8R2A1F`

* * *

### 🔹 3. Check if ID already exists

The workflow uses:

-   `Find_Certification_By_ID`
-   `Certification_ID_Exists`

If the ID **already exists**, it loops back and generates a new one.

If the ID is **unique**, the workflow continues.

* * *

### 🔹 4. Insert certification in Data Table

Saves:

-   Name
-   Surname
-   Unique ID

* * *

### 🔹 5. Generate PDF Certificate

Using the PDF Generator API, the workflow builds a certificate from an **HTML template**.

The **default HTML provided in the workflow is just an example** and can be fully customized.You can freely change:

-   Layout and structure (containers, sections, alignment)
-   Colors, fonts, borders, and background
-   Logos, images, and branding elements
-   Text content (titles, subtitles, messages)
-   Additional placeholders/fields

By default, the example template includes:

-   Candidate name
-   Course title
-   Unique Certification ID
-   Current date

After the HTML is rendered, this node generates a PDF file and outputs it as `binary.document.pdf`, which is then attached to the email in the next step.

* * *

### 🔹 6. Send Certificate via Gmail

The workflow sends an email with:

**Subject:** `Your certification is ready!`**Attachment:** the generated `document.pdf`

The recipient is the email provided to the webhook.

* * *

🔍 Certificate Verification (`/certificationscheck`)

The workflow provides two different ways to verify the authenticity of a certificate:

### ✅ 1. Manual API Request

You can verify a certificate by sending a manual HTTP request:    

`POST /certificationscheck Headers: id: CERTIFICATION-ID-HERE`

#### API Logic:

1.  `Find_Certification_By_ID1` searches the Data Table for the ID
2.  `Certification_Exists` checks if a match exists
3.  Returns JSON:

#### If found:

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

#### If NOT found:

`{ "ok": "false" }`

* * *

🌐 Using This on Your Website

The repository also includes a **ready-to-use verification webpage**:`Cerification_Check.html`

#### Use the correct endpoint URL

Inside the HTML page, the verification request uses:

`fetch("https://YOUR-N8N-DOMAIN.com/webhook/certificationscheck",`

Replace **YOUR-N8N-DOMAIN.com** with the actual domain where your n8n instance is hosted.

This mini site allows users to:

-   Enter a Certification ID into a text field
-   Trigger a verification request with a single click
-   See the result immediately on-screen
-   View the certificate holder’s name and surname if the ID is valid

The page communicates with your `/certificationscheck` endpoint using JavaScript `fetch()` and behaves exactly like the manual API request — but in a clean, simple interface.

#### What you can customize

-   Logo and header text
-   Colors, fonts, and CSS
-   Button styles and layout
-   Messages for valid/invalid IDs
-   Language and UI text
-   The endpoint URL (if your n8n instance changes)

This makes it easy to embed certificate verification directly into your website, LMS, or customer portal.

## HTML Templates:

-   **[HTML Certificate Template](https://github.com/paoloronco/n8n-templates/blob/main/free-templates/3-Certification-Creation%26Validation/HTML-Files/Certificate.html)**
    
-   [**HTML Certificate Validator**](https://github.com/paoloronco/n8n-templates/blob/main/free-templates/3-Certification-Creation%26Validation/HTML-Files/Cerification_Check.html)
    

On this page

-   [🔥 What This Workflow Does](#-what-this-workflow-does)
-   [HTML Templates:](#html-templates)
