Email certificates when a student finishes a course

Mark a student as completed in a sheet and they get a congratulations email with their certificate link.

Easy Saves ~3 hours/month Education & TrainingBy Flowngn team

Works with n8n · Make · Zapier

How it works

Trigger: Google Sheets — new row in Completions
  1. Add the student (name, email, course, certificate link) to Completions.
  2. Email them congratulations with the certificate link.
  3. Invite them to give feedback and see your next course.

Diagram

GCourse completedGoogle Sheets TriggerGEmail the certifica…Gmail
Trigger App

Build it

Pick your tool — same automation, step by step.

Copy and paste straight into an n8n canvas (Ctrl+V), or download and use Import from File. Then connect your own credentials and replace every YOUR_… placeholder.

Workflow JSON
Show code (91 lines)
{
  "name": "Email certificates when a student finishes a course (Flowngn)",
  "nodes": [
    {
      "parameters": {
        "content": "## Email certificates when a student finishes a course\nMark a student as completed in a sheet and they get a congratulations email with their certificate link.\n\n**Setup**\n1. Open each node and connect your own credentials.\n2. Replace every YOUR_… placeholder.\n3. Test once, then activate.\n\nFree template from Flowngn",
        "height": 260,
        "width": 340
      },
      "id": "2c527986-f663-44a2-ab4f-9b3f13e4c88a",
      "name": "Setup notes",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -420,
        -60
      ]
    },
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "documentId": {
          "__rl": true,
          "value": "YOUR_SPREADSHEET_ID",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Completions",
          "mode": "name"
        },
        "event": "rowAdded",
        "options": {}
      },
      "id": "2c527986-f663-44a2-ab4f-9b3f13e4c88a",
      "name": "Course completed",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "typeVersion": 1,
      "position": [
        0,
        0
      ]
    },
    {
      "parameters": {
        "sendTo": "={{ $json.email }}",
        "subject": "=🎓 Congratulations, {{ $json.name.split(' ')[0] }}! Your certificate is ready",
        "emailType": "text",
        "message": "=Hi {{ $json.name.split(' ')[0] }},\n\nCongratulations on finishing {{ $json.course }}!\n\nDownload your certificate here:\n{{ $json.certificate_link }}\n\nWe'd love to hear what you thought: YOUR_FEEDBACK_LINK\nAnd if you're ready for the next step: YOUR_NEXT_COURSE_LINK\n\nYOUR_NAME",
        "options": {
          "appendAttribution": false
        }
      },
      "id": "2c527986-f663-44a2-ab4f-9b3f13e4c88a",
      "name": "Email the certificate",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.1,
      "position": [
        300,
        0
      ]
    }
  ],
  "connections": {
    "Course completed": {
      "main": [
        [
          {
            "node": "Email the certificate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": []
}

Open in the playground to edit →

Tips

  • Generate certificates with Google Slides + a mail-merge add-on, then paste each link in the sheet.

Related flows