AutomationFlowsEmail & Gmail › Automated Certificate Generator with Google Sheets, Slides, PDF & Gmail Delivery

Automated Certificate Generator with Google Sheets, Slides, PDF & Gmail Delivery

ByMuhammad Saqib @saqib on n8n.io

This workflow is designed for educators, trainers, and event organizers who want to automatically generate and send digital certificates.

Event trigger★★★★☆ complexity8 nodesGoogle Sheets TriggerGoogle DriveGoogle SlidesGmail
Email & Gmail Trigger: Event Nodes: 8 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #8163 — we link there as the canonical source.

This workflow follows the Gmail → Google Drive recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Create Certificates",
  "tags": [],
  "nodes": [
    {
      "id": "node1",
      "name": "Google Sheets Trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "notes": "Getting data from sheets",
      "position": [
        0,
        0
      ],
      "parameters": {
        "event": "rowAdded",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "YOUR_GOOGLE_SHEET_URL#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "YOUR_GOOGLE_SHEET_URL"
        }
      },
      "credentials": {
        "googleSheetsTriggerOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "id": "node2",
      "name": "Copy file",
      "type": "n8n-nodes-base.googleDrive",
      "notes": "Copy certificate template",
      "position": [
        208,
        0
      ],
      "parameters": {
        "name": "={{ $json.Name }} Certificate",
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_SLIDES_TEMPLATE_ID"
        },
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "url",
          "value": "YOUR_TARGET_FOLDER_URL"
        },
        "operation": "copy",
        "sameFolder": false
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "typeVersion": 3
    },
    {
      "id": "node3",
      "name": "Replace text in a presentation",
      "type": "n8n-nodes-base.googleSlides",
      "notes": "Change text",
      "position": [
        416,
        0
      ],
      "parameters": {
        "textUi": {
          "textValues": [
            {
              "text": "[NAME]",
              "replaceText": "={{ $('Google Sheets Trigger').item.json.Name }}",
              "pageObjectIds": [
                "p1"
              ]
            }
          ]
        },
        "options": {},
        "operation": "replaceText",
        "presentationId": "={{ $json.id }}"
      },
      "credentials": {
        "googleSlidesOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "typeVersion": 2
    },
    {
      "id": "node4",
      "name": "Download file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        624,
        0
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.presentationId }}"
        },
        "options": {
          "fileName": "={{ $('Google Sheets Trigger').item.json.Name }} Certificate",
          "googleFileConversion": {
            "conversion": {
              "slidesToFormat": "application/pdf"
            }
          }
        },
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "node5",
      "name": "Upload file",
      "type": "n8n-nodes-base.googleDrive",
      "notes": "Saving PDFs",
      "position": [
        864,
        192
      ],
      "parameters": {
        "name": "={{ $('Google Sheets Trigger').item.json.Name }} Certificate.pdf",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "url",
          "value": "YOUR_FINAL_PDF_FOLDER_URL"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "typeVersion": 3
    },
    {
      "id": "node6",
      "name": "Delete a file",
      "type": "n8n-nodes-base.googleDrive",
      "notes": "Deleting temporary PPT",
      "position": [
        1152,
        176
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Replace text in a presentation').item.json.presentationId }}"
        },
        "options": {},
        "operation": "deleteFile"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "notesInFlow": true,
      "typeVersion": 3
    },
    {
      "id": "node7",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        864,
        16
      ],
      "parameters": {
        "sendTo": "={{ $('Google Sheets Trigger').item.json.Email }}",
        "message": "=Dear {{ $('Google Sheets Trigger').item.json.Name }},\nCongratulations on completing the program \ud83c\udf89.\nPlease find your certificate attached.\n\nBest regards,\nYour Team",
        "options": {
          "attachmentsUi": {
            "attachmentsBinary": [
              {
                "property": "data"
              }
            ]
          }
        },
        "subject": "Your Certificate",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "note1",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        784
      ],
      "parameters": {
        "width": 752,
        "height": 1008,
        "content": "## Workflow Guide: Auto-Certificate Generator \ud83c\udf93\n\n**Step 1 \u2013 Google Sheets Trigger**  \nWatches for new rows in the sheet (Name, Email).  \nEach new row starts the workflow.\n\n**Step 2 \u2013 Copy File (Google Drive)**  \nCopies the Google Slides certificate template.  \nNames the file `<Student Name> Certificate`.\n\n**Step 3 \u2013 Replace Text (Google Slides)**  \nFinds placeholder `[NAME]` in the copied template.  \nReplaces it with the student's actual name.\n\n**Step 4 \u2013 Download File (Google Drive)**  \nExports the customized Slides file as PDF.  \nFile name: `<Student Name> Certificate.pdf`.\n\n**Step 5 \u2013 Upload File (Google Drive)**  \nSaves the generated PDF into the selected folder.  \nKeeps all certificates organized.\n\n**Step 6 \u2013 Delete File (Google Drive)**  \nDeletes the temporary Slides copy.  \nOnly PDFs remain in Drive.\n\n**Step 7 \u2013 Send a message (Gmail)**  \nSends the generated certificate by email to the student.\n\n---\n\n\ud83d\udccc Notes:  \n- Update **Sheet ID**, **Slides template ID**, **Destination Folder ID**, and **Gmail credentials** with your own.  \n- Ensure your template has `[NAME]` exactly where the student name should appear.  \n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "Copy file": {
      "main": [
        [
          {
            "node": "Replace text in a presentation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload file": {
      "main": [
        [
          {
            "node": "Delete a file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download file": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          },
          {
            "node": "Upload file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets Trigger": {
      "main": [
        [
          {
            "node": "Copy file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Replace text in a presentation": {
      "main": [
        [
          {
            "node": "Download file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow is designed for educators, trainers, and event organizers who want to automatically generate and send digital certificates.

Source: https://n8n.io/workflows/8163/ — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Email & Gmail

DSP Certificate w/ Google Forms. Uses googleSheetsTrigger, noOp, stickyNote, googleDrive. Event-driven trigger; 17 nodes.

Google Sheets Trigger, Google Drive, Google Slides +1
Email & Gmail

This workflow automatically generates personalized certificates in Google Slides and emails them to respondents only if they meet a minimum score threshold, using data submitted via Google Forms (stor

Google Sheets Trigger, Google Drive, Google Slides +1
Email & Gmail

General use cases include: Property managers who manage multiple buildings or units. Building owners looking to centralize tenant repair communication. Automation builders who want to learn multi-trig

Google Sheets, Google Drive, Gmail +1
Email & Gmail

This workflow automates the full offer letter lifecycle, from generation to final candidate response tracking. When a new row with a Pending status is added to Google Sheets, it creates a personalized

Google Sheets Trigger, Google Drive, Google Docs +2
Email & Gmail

Hiring teams often struggle with document follow-ups, offer letter generation, and stakeholder communication. Manual checks, email back-and-forth, and missing files slow down hiring and create chaos d

Google Sheets Trigger, HTTP Request, Slack +3