{
  "name": "Generate verifiable CEU certificates with Google Workspace & QR verification",
  "nodes": [
    {
      "id": "9d064507-3406-493e-836e-b16c81ad324b",
      "name": "Webhook Trigger",
      "type": "n8n-nodes-base.webhook",
      "position": [
        528,
        288
      ]
    },
    {
      "id": "8107e3ae-b4bb-4a9b-9ab3-843525bfe943",
      "name": "Validate Required Fields",
      "type": "n8n-nodes-base.if",
      "position": [
        752,
        288
      ]
    },
    {
      "id": "098338dc-abfd-4b12-b03d-4a9487f9a19d",
      "name": "Stop: Incomplete Data",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        960,
        480
      ]
    },
    {
      "id": "5f95d17f-040d-49d4-8b8c-f6a49ebf039c",
      "name": "Check Domain Verified",
      "type": "n8n-nodes-base.if",
      "position": [
        1136,
        272
      ]
    },
    {
      "id": "29ef1e50-241e-4c02-bc29-f803cec709b6",
      "name": "Stop: Domain Not Verified",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1392,
        480
      ]
    },
    {
      "id": "43662678-2cfd-42fc-9023-f37696269795",
      "name": "Upload to Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2016,
        256
      ]
    },
    {
      "id": "1e3c0f8b-74d5-42df-822a-f04ce0d2c752",
      "name": "Notify Organizers (Slack)",
      "type": "n8n-nodes-base.slack",
      "position": [
        2416,
        256
      ]
    },
    {
      "id": "1dc79c9a-895a-471b-8f25-e8a90c20ca42",
      "name": "Log to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2624,
        256
      ]
    },
    {
      "id": "8ab2756a-1239-459b-b9f6-6ec9fd6312f7",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2848,
        256
      ]
    },
    {
      "id": "086482ae-80f3-4058-848c-497a6774dcbc",
      "name": "Verifi Email",
      "type": "n8n-nodes-verifiemail.verifiEmail",
      "position": [
        944,
        272
      ]
    },
    {
      "id": "4f25bfb0-1934-4d2b-94e6-f0c9d898d13d",
      "name": "HTML to PDF",
      "type": "n8n-nodes-htmlcsstopdf.htmlcsstopdf",
      "position": [
        1584,
        256
      ]
    },
    {
      "id": "2266119e-b1a5-4472-b993-d47a8bdc3224",
      "name": "Download File",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1792,
        256
      ]
    },
    {
      "id": "be72ef00-997a-4826-82b9-c76ffca52cd3",
      "name": "Generate Certificate ID & QR",
      "type": "n8n-nodes-base.function",
      "position": [
        1360,
        256
      ]
    },
    {
      "id": "b93f81d0-b3eb-47ca-8c64-ea81b39c4e98",
      "name": "Send Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2208,
        256
      ]
    },
    {
      "id": "f8f78383-859a-4395-b326-be9f7406d692",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        48
      ],
      "parameters": {
        "width": 448,
        "height": 368,
        "content": "# How It Works\n\n## **Verified Corporate Training Certificate with CEUs**\n\nAutomates secure, verifiable CEU certificate generation for corporate training.\n\nFeatures:\n• Real-time email validation\n• Uniq"
      }
    },
    {
      "id": "6b634261-859a-4e5e-824b-66656ef038e6",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        464
      ],
      "parameters": {
        "width": 336,
        "height": 400,
        "content": "# Setup Credentials \n## Setup Steps (One-time)\n\n1. Connect credentials:\n• Verif.Email API at verifi.email\n• https://pdfmunk.com\n• Google Drive + Gmail\n• Google Sheets\n• Slack (optional)\n\n2. Update: \n•"
      }
    },
    {
      "id": "ad394608-8aa3-4123-a3c5-0a8ad127be46",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        496,
        48
      ],
      "parameters": {
        "width": 784,
        "height": 368,
        "content": "# Validation\n\n## **Data Reception & Validation**\n\n* Accepts POST from any form/tool\n* Checks all required fields\n* Validates email deliverability (MX + disposable check)\n\n\n"
      }
    },
    {
      "id": "0ac7497b-8134-48b6-8078-45d2687be00a",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1296,
        0
      ],
      "parameters": {
        "width": 624,
        "height": 400,
        "content": "# Generation\n\n## Certificate Generation\n\n* Generates unique Certificate ID\n* Creates QR code for verification\n* Renders beautiful PDF certificate via HTML  → PDF\n* Downloads pdf URL to Binary File\n\n\n"
      }
    },
    {
      "id": "a84cb6f5-cb07-437a-bf89-90d455fe3979",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1952,
        -16
      ],
      "parameters": {
        "width": 1120,
        "height": 432,
        "content": "# Delivery\n\n## Distribution & Logging\n\n* Uploads to Google Drive\n* Sends personalized email with PDF\n* Notifies team via Slack\n* Logs everything to Google Sheets\n* Returns success to webhook"
      }
    }
  ],
  "connections": {
    "Send Email": {
      "main": [
        [
          {
            "node": "Notify Organizers (Slack)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTML to PDF": {
      "main": [
        [
          {
            "node": "Download File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Verifi Email": {
      "main": [
        [
          {
            "node": "Check Domain Verified",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download File": {
      "main": [
        [
          {
            "node": "Upload to Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook Trigger": {
      "main": [
        [
          {
            "node": "Validate Required Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log to Google Sheets": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Domain Verified": {
      "main": [
        [
          {
            "node": "Generate Certificate ID & QR",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Stop: Domain Not Verified",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to Google Drive": {
      "main": [
        [
          {
            "node": "Send Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate Required Fields": {
      "main": [
        [
          {
            "node": "Verifi Email",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Stop: Incomplete Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify Organizers (Slack)": {
      "main": [
        [
          {
            "node": "Log to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Certificate ID & QR": {
      "main": [
        [
          {
            "node": "HTML to PDF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}