Système de pré-émission de certificats d'atelier
Ceci est unDocument Extractionworkflow d'automatisation du domainecontenant 24 nœuds.Utilise principalement des nœuds comme If, Code, Gmail, Merge, GoogleDrive. Système automatisé de certificats d'atelier, intégrant JotForm, vérification par e-mail et Google Workspace
- •Compte Google et informations d'identification Gmail API
- •Informations d'identification Google Drive API
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Informations d'identification Google Sheets API
Nœuds utilisés (24)
Catégorie
{
"id": "",
"meta": {
"instanceId": "",
"templateCredsSetupCompleted": false
},
"name": "Workshop Certificate Pre-Issuance System",
"tags": [],
"nodes": [
{
"id": "5e7bec79-8951-4388-890c-73e37a6ef8b2",
"name": "IF - E-mail valide ?",
"type": "n8n-nodes-base.if",
"position": [
560,
560
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ $json.valid }}",
"value2": "={{ true }}"
}
]
}
},
"typeVersion": 1
},
{
"id": "1e9a2800-bab2-47f2-8fff-5f52f0d3e903",
"name": "Préparer les données d'attestation",
"type": "n8n-nodes-base.code",
"position": [
880,
368
],
"parameters": {
"jsCode": "// Get current item (merged data)\nconst data = $input.first().json;\n\n// Build full name\nconst fullName = `${data[\"Full Name\"].first} ${data[\"Full Name\"].last}`.trim();\n\n// Format date\nconst dateObj = data[\"Select Workshop Date\"];\nconst displayDate = new Date(`${dateObj.year}-${dateObj.month}-${dateObj.day}`).toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n});\n\n// QR Code URL\nconst verificationUrl = `https://your-domain.com/verify?email=${encodeURIComponent(data.Email)}&event=${encodeURIComponent(data[\"Select Workshop\"])}`;\n\n// Unique Certificate ID\nconst certificateId = `CERT-${Date.now().toString(36).toUpperCase()}-${Math.random().toString(36).substr(2, 5).toUpperCase()}`;\n\n// Return clean data for HTML\nreturn [\n {\n json: {\n name: fullName,\n email: data.Email,\n event: data[\"Select Workshop\"],\n date: displayDate,\n qrCodeUrl: `https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(verificationUrl)}&size=200x200&margin=10`,\n verificationUrl: verificationUrl,\n certificateId: certificateId,\n verifiedAt: new Date().toISOString(),\n emailProvider: data.details?.mx?.provider || \"Unknown\",\n isValid: data.valid\n }\n }\n];"
},
"typeVersion": 2
},
{
"id": "ff60e9dc-464e-4b54-8bbd-1e90874436d5",
"name": "Télécharger le fichier PDF",
"type": "n8n-nodes-base.httpRequest",
"position": [
1536,
368
],
"parameters": {
"url": "={{ $json.pdf_url }}",
"options": {
"response": {
"response": {
"responseFormat": "file",
"outputPropertyName": "pdfData"
}
}
}
},
"typeVersion": 4.2
},
{
"id": "f8ec0f94-b7c6-43c8-8598-7cb5e324b523",
"name": "Envoyer l'e-mail de confirmation",
"type": "n8n-nodes-base.gmail",
"position": [
2464,
368
],
"webhookId": "",
"parameters": {
"sendTo": "={{ $('Prepare Certificate Data').item.json.email }}",
"message": "=<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\">\n <style>\n body { font-family: 'Segoe UI', Tahoma, sans-serif; background: #f4f4f9; color: #333; padding: 20px; }\n .container { max-width: 600px; margin: auto; background: white; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }\n .header { background: #1a5fb4; color: white; padding: 30px; text-align: center; }\n .header h1 { margin: 0; font-size: 24px; }\n .body { padding: 30px; line-height: 1.6; }\n .highlight { background: #e3f2fd; padding: 15px; border-radius: 8px; margin: 20px 0; font-weight: bold; }\n .qr { text-align: center; margin: 25px 0; }\n .qr img { width: 140px; height: 140px; border: 1px solid #ddd; padding: 8px; border-radius: 8px; }\n .footer { background: #f0f0f0; padding: 20px; text-align: center; font-size: 12px; color: #777; }\n .btn { display: inline-block; background: #1a5fb4; color: white; padding: 12px 24px; text-decoration: none; border-radius: 6px; margin-top: 15px; font-weight: bold; }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <div class=\"header\">\n <h1>Workshop Confirmation</h1>\n </div>\n <div class=\"body\">\n <p>Hi <strong>{{ $json['Full Name'] }}</strong>,</p>\n <p>Congratulations! Your registration for:</p>\n <div class=\"highlight\">\n <strong>{{ $json.Workshop }}</strong><br>\n {{ $json.Date }}\n </div>\n <p>has been <strong>verified and confirmed</strong>.</p>\n\n <div class=\"qr\">\n <img src=\"{{ $json['QR Code URL'] }}\" alt=\"QR Code\">\n <p><em>Scan on event day for instant check-in</em></p>\n </div>\n\n <p><strong>Certificate ID:</strong> <code>{{ $json['Certificate ID'] }}</code></p>\n <p><strong>Verified Email:</strong> {{ $json.Email }}</p>\n\n <p>Your official <strong>pre-issued certificate is attached</strong> as a PDF.</p>\n\n <a href=\"{{ $json['PDF Link'] }}\" class=\"btn\" target=\"_blank\">\n View Certificate Online\n </a>\n </div>\n <div class=\"footer\">\n Issued on {{ new Date().toLocaleDateString() }} • Powered by <strong>n8n Automation</strong>\n </div>\n </div>\n</body>\n</html>",
"options": {},
"subject": "=🎉 Your Workshop Seat is Confirmed - {{ $('Prepare Certificate Data').item.json.event }}"
},
"credentials": {
"gmailOAuth2": {
"id": "YOUR_GMAIL_OAUTH2_ID",
"name": "Gmail OAuth2"
}
},
"typeVersion": 2.1
},
{
"id": "96b09356-225b-41dd-8684-b003df5b7f1c",
"name": "Journaliser dans Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
2176,
368
],
"parameters": {
"columns": {
"value": {
"Date": "={{ $('Prepare Certificate Data').item.json.date }}",
"Email": "={{ $('Prepare Certificate Data').item.json.email }}",
"PDF Link": "={{ $json.webViewLink }}",
"Workshop": "={{ $('Prepare Certificate Data').item.json.event }}",
"Full Name": "={{ $('Prepare Certificate Data').item.json.name }}",
"Timestamp": "={{ new Date().toISOString() }}",
"QR Code URL": "={{ $('Prepare Certificate Data').item.json.qrCodeUrl }}",
"Verified At": "={{ $json.createdTime }}",
"Certificate ID": "={{ $('Prepare Certificate Data').item.json.certificateId }}"
},
"schema": [
{
"id": "Timestamp",
"type": "string",
"display": true,
"required": false,
"displayName": "Timestamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Full Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Full Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Workshop",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Workshop",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Certificate ID",
"type": "string",
"display": true,
"required": false,
"displayName": "Certificate ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "QR Code URL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "QR Code URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PDF Link",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "PDF Link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Verified At",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Verified At",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOCUMENT_ID/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEETS_DOCUMENT_ID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOCUMENT_ID/edit?usp=drivesdk",
"cachedResultName": "Workshop Registrations & Certificates"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "YOUR_GOOGLE_SHEETS_OAUTH2_ID",
"name": "Google Sheets OAuth2"
}
},
"typeVersion": 4.4
},
{
"id": "4c34e01e-c47f-4879-a79b-f358b4e774e6",
"name": "Journaliser les inscriptions échouées",
"type": "n8n-nodes-base.googleSheets",
"position": [
880,
736
],
"parameters": {
"columns": {
"value": {
"Date": "={{ new Date(\n $json[\"Select Workshop Date\"].year + '-' +\n String($json[\"Select Workshop Date\"].month).padStart(2, '0') + '-' +\n String($json[\"Select Workshop Date\"].day).padStart(2, '0')\n).toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' }) }}",
"Email": "={{ $json.Email }}",
"Status": "Invalid Email",
"PDF Link": "Invalid Email",
"Workshop": "={{ $json[\"Select Workshop\"] }}",
"Full Name": "={{ $json['Full Name'].first + ' ' + $json['Full Name'].last }}",
"Timestamp": "={{ $now }}",
"QR Code URL": "Invalid Email",
"Verified At": "Invalid Email",
"Certificate ID": "Invalid Email"
},
"schema": [
{
"id": "Timestamp",
"type": "string",
"display": true,
"required": false,
"displayName": "Timestamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Full Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Full Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Workshop",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Workshop",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date",
"type": "string",
"display": true,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Certificate ID",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Certificate ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "QR Code URL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "QR Code URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PDF Link",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "PDF Link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Verified At",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Verified At",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOCUMENT_ID/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEETS_DOCUMENT_ID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOCUMENT_ID/edit?usp=drivesdk",
"cachedResultName": "Workshop Registrations & Certificates"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "YOUR_GOOGLE_SHEETS_OAUTH2_ID",
"name": "Google Sheets OAuth2"
}
},
"typeVersion": 4.4
},
{
"id": "0d26d3cd-509b-4f95-b188-00d41bb17e3c",
"name": "Déclencheur JotForm",
"type": "n8n-nodes-base.jotFormTrigger",
"position": [
-224,
544
],
"webhookId": "",
"parameters": {
"form": "YOUR_JOTFORM_FORM_ID"
},
"credentials": {
"jotFormApi": {
"id": "YOUR_JOTFORM_API_ID",
"name": "JotForm API"
}
},
"typeVersion": 1
},
{
"id": "de18b560-5a30-4b26-998f-a701590b4e9d",
"name": "Verifi Email",
"type": "n8n-nodes-verifiemail.verifiEmail",
"position": [
0,
752
],
"parameters": {
"email": "={{ $json.Email }}"
},
"credentials": {
"verifiEmailApi": {
"id": "YOUR_VERIFI_EMAIL_API_ID",
"name": "VerifiEmail API"
}
},
"typeVersion": 1
},
{
"id": "1eb2b648-b557-42f1-aed5-d6b3f5b6419e",
"name": "Fusionner",
"type": "n8n-nodes-base.merge",
"position": [
288,
560
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.2
},
{
"id": "5b63e21f-3504-4081-8422-800bda3803b5",
"name": "HTML en PDF",
"type": "n8n-nodes-htmlcsstopdf.htmlcsstopdf",
"position": [
1200,
368
],
"parameters": {
"html_content": "=<div style=\"font-family: 'Georgia', serif; text-align: center; padding: 40px; border: 8px double #1a5fb4; background: #f9f9fb; max-width: 600px; margin: auto; color: #1a1a1a;\">\n <h1 style=\"color: #1a5fb4; margin-bottom: 10px;\">Certificate of Confirmation</h1>\n <p style=\"font-size: 18px; color: #555;\">This certifies that</p>\n \n <h2 style=\"font-size: 28px; margin: 15px 0; color: #1a5fb4;\">{{ $json.name }}</h2>\n \n <p style=\"font-size: 18px; color: #555;\">has successfully registered for</p>\n <h3 style=\"font-size: 22px; color: #000;\">{{ $json.event }}</h3>\n \n <p style=\"font-size: 16px; margin: 10px 0;\"><strong>Date:</strong> {{ $json.date }}</p>\n \n <div style=\"margin: 30px 0;\">\n <img src=\"{{ $json.qrCodeUrl }}\" alt=\"QR Code\" style=\"width: 150px; height: 150px;\" />\n </div>\n \n <p style=\"font-size: 14px; color: #666;\">\n <strong>Certificate ID:</strong> {{ $json.certificateId }}<br>\n <strong>Verified Email:</strong> {{ $json.email }} ({{ $json.emailProvider }})<br>\n <em>Scan QR code on event day for instant check-in</em>\n </p>\n \n <hr style=\"border: 1px dashed #ccc; margin: 30px 0;\">\n <p style=\"font-size: 12px; color: #999;\">\n Issued: {{ new Date().toLocaleDateString() }} • Powered by n8n Automation\n </p>\n</div>"
},
"credentials": {
"htmlcsstopdfApi": {
"id": "YOUR_HTML_TO_PDF_API_ID",
"name": "HTML to PDF API"
}
},
"typeVersion": 1
},
{
"id": "d7504f9f-ee7e-41b0-8ec3-28acf6b139be",
"name": "Téléverser le fichier",
"type": "n8n-nodes-base.googleDrive",
"position": [
1856,
368
],
"parameters": {
"name": "=Confirmed_Attendee_{{ $('Prepare Certificate Data').item.json.name }}_{{ $('Prepare Certificate Data').item.json.date }}.pdf",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive",
"cachedResultUrl": "https://drive.google.com/drive/my-drive",
"cachedResultName": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_DRIVE_FOLDER_ID",
"cachedResultUrl": "https://drive.google.com/drive/folders/YOUR_GOOGLE_DRIVE_FOLDER_ID",
"cachedResultName": "Attendee Data"
},
"inputDataFieldName": "pdfData"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "YOUR_GOOGLE_DRIVE_OAUTH2_ID",
"name": "Google Drive OAuth2"
}
},
"typeVersion": 3
},
{
"id": "cfe08577-ff68-4961-af0a-20ad40a7393b",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-928,
-32
],
"parameters": {
"width": 368,
"height": 336,
"content": "## 🎯 WORKFLOW OVERVIEW\n\n**Purpose:** Automated Pre-Issued Workshop Certificate System\n\n**What This Workflow Does:**\n1. ✅ Captures workshop registrations from Jotform\n2. ✅ Verifies email validity using VerifiEmail\n3. ✅ Generates professional PDF certificates\n4. ✅ Saves certificates to Google Drive\n5. ✅ Sends confirmation email with certificate\n6. ✅ Logs all registrations to Google Sheets\n7. ✅ Handles invalid email addresses gracefully\n"
},
"typeVersion": 1
},
{
"id": "3bc160b5-b5f3-4b6d-82cc-85a70e6f7beb",
"name": "Note adhésive - Étape 3 Fusion",
"type": "n8n-nodes-base.stickyNote",
"position": [
176,
336
],
"parameters": {
"color": 5,
"width": 300,
"height": 381,
"content": "## 🔀 STEP 3: Data Merge\n\n**What It Does:**\n- Combines Jotform data with email verification results\n- Merges by position (1st submission + 1st verification)\n- Creates unified data object for downstream nodes\n"
},
"typeVersion": 1
},
{
"id": "343482c5-6df5-41c2-9954-5047ff76d18f",
"name": "Note adhésive - Étape 5 Préparation des données",
"type": "n8n-nodes-base.stickyNote",
"position": [
784,
160
],
"parameters": {
"color": 5,
"width": 348,
"height": 343,
"content": "## 🧠 STEP 5: Data Preparation\n\n**What It Does:**\n- Formats and cleans data for certificate\n- Builds full name from first + last\n- Formats date in readable format\n- Generates unique Certificate ID\n- Creates QR code URL for verification"
},
"typeVersion": 1
},
{
"id": "66a19ac2-10fb-465d-b54c-08593974aae0",
"name": "Note adhésive - Étape 6 Génération PDF",
"type": "n8n-nodes-base.stickyNote",
"position": [
1136,
112
],
"parameters": {
"color": 5,
"width": 316,
"height": 405,
"content": "## 🎨 STEP 6: PDF Certificate Generation\n\n**Certificate Design Features:**\n✨ Professional Georgia serif font\n✨ Blue theme (#1a5fb4) with double border\n✨ Centered layout\n✨ QR code for instant check-in\n✨ Certificate ID & verification details\n✨ Timestamp footer\n\n"
},
"typeVersion": 1
},
{
"id": "7e7c6eda-9d79-4cc2-97a4-3c70a1c42f5b",
"name": "Note adhésive - Étape 7 Télécharger PDF",
"type": "n8n-nodes-base.stickyNote",
"position": [
1456,
128
],
"parameters": {
"color": 5,
"width": 316,
"height": 377,
"content": "## ⬇️ STEP 7: Download PDF File\n\n**What It Does:**\n- Downloads PDF from generated URL\n- Converts to binary data\n- Prepares for Google Drive upload\n- Makes PDF available for email attachment\n\n\n"
},
"typeVersion": 1
},
{
"id": "556585b6-08ee-43c7-9ba0-2d770495b442",
"name": "Note adhésive - Étape 8 Google Drive",
"type": "n8n-nodes-base.stickyNote",
"position": [
1776,
112
],
"parameters": {
"color": 5,
"width": 300,
"height": 407,
"content": "## ☁️ STEP 8: Save to Google Drive\n\n**What It Does:**\n- Uploads PDF certificate to Google Drive\n- Organizes in \"Attendee Data\" folder\n- Generates shareable web view link\n- Creates permanent backup of all certificates\n\n\n"
},
"typeVersion": 1
},
{
"id": "b236ab7c-1343-401b-809a-46da6da52e78",
"name": "Note adhésive - Étape 9 Google Sheets",
"type": "n8n-nodes-base.stickyNote",
"position": [
2080,
-80
],
"parameters": {
"color": 5,
"width": 316,
"height": 601,
"content": "## 📊 STEP 9: Log to Google Sheets\n\n**Google Sheet:**\n\"Workshop Registrations & Certificates\"\n\n**Logged Fields:**\n\n| Columns | \n|--------|\n- Timestamp \n- Full Name \n- Email \n- Workshop \n- Date \n- Certificate ID \n- QR Code URL \n- PDF Link \n- Status\n- Verification time \n"
},
"typeVersion": 1
},
{
"id": "92f23ba3-991c-478f-a73a-6066d71c81c9",
"name": "Note adhésive - Étape 10 Gmail",
"type": "n8n-nodes-base.stickyNote",
"position": [
2400,
0
],
"parameters": {
"color": 5,
"width": 380,
"height": 519,
"content": "## 📧 STEP 10: Send Confirmation Email\n\n**What It Does:**\n- Sends beautiful HTML confirmation email\n- Includes event details & QR code\n- Provides Drive link to certificate\n- Professional branded template\n\n**Email Features:**\n✨ Mobile responsive\n✨ Professional styling\n✨ Blue color theme (#1a5fb4)\n✨ Clean typography\n✨ Embedded QR code\n✨ Direct Drive link\n\n"
},
"typeVersion": 1
},
{
"id": "e52d6ffe-cd32-410f-bc4a-6df2188e3159",
"name": "Note adhésive - Branche Fausse",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
720
],
"parameters": {
"color": 3,
"width": 380,
"height": 409,
"content": "\n\n\n\n\n\n\n\n\n\n\n\n## ❌ FALSE BRANCH: Invalid Email Path\n\n**Common Failure Reasons:**\n❌ Invalid email format\n❌ Disposable/temporary email\n❌ Domain doesn't exist\n❌ Mailbox doesn't exist\n❌ SMTP verification failed\n❌ Role-based email blocked\n\n"
},
"typeVersion": 1
},
{
"id": "c28f87a3-365f-4fba-aec5-3f9db0f0a571",
"name": "Note adhésive - État des identifiants",
"type": "n8n-nodes-base.stickyNote",
"position": [
-928,
336
],
"parameters": {
"color": 4,
"width": 327,
"height": 339,
"content": "## 🔐 CREDENTIALS SETUP CHECKLIST\n\n**Required Credentials (All Configured ✅):**\n\n1. **✅ Jotform API**\n2. **✅ VerifiEmail API**\n3. **✅ Google Drive OAuth2**\n - Folder: Attendee Data\n4. **✅ Gmail OAuth2**\n5. **✅ Google Sheets OAuth2**\n - Sheet: Workshop Registrations\n6. **✅ HTML to PDF API**\n"
},
"typeVersion": 1
},
{
"id": "8a808aa3-96eb-40c8-b2e1-e46258d936e4",
"name": "Note adhésive - Étape 1 Jotform",
"type": "n8n-nodes-base.stickyNote",
"position": [
-464,
336
],
"parameters": {
"color": 5,
"width": 364,
"height": 347,
"content": "## 📝 STEP 1: Registration Form Trigger\n\n**What It Does:**\n- Listens for new workshop registrations\n- Captures form data in real-time\n- Starts the automation workflow\n\n**Captured Fields:**\n- Full Name (First + Last)\n- Email Address\n- Workshop Selection\n- Workshop Date\n"
},
"typeVersion": 1
},
{
"id": "9e18f646-f00f-4a08-a22d-866d735cba3b",
"name": "Note adhésive - Étape 2 Vérification d'e-mail",
"type": "n8n-nodes-base.stickyNote",
"position": [
-128,
736
],
"parameters": {
"color": 5,
"width": 364,
"height": 367,
"content": "\n\n\n\n\n\n\n\n\n\n\n\n## ✉️ STEP 2: Email Verification\n\n**What It Does:**\n- Validates email deliverability in real-time\n- Checks for disposable/temporary emails\n- Verifies email format and DNS records\n- Detects role-based emails (info@, admin@)\n"
},
"typeVersion": 1
},
{
"id": "f59bfa08-733e-46d2-925a-97f717ee8162",
"name": "Note adhésive - Étape 4 Condition IF",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
288
],
"parameters": {
"color": 5,
"width": 300,
"height": 417,
"content": "## 🔀 STEP 4: Conditional Split\n\n**What It Does:**\n- Routes workflow based on email validation\n- Splits into two branches: SUCCESS & FAILURE\n\n**Condition:**\n`{{ $json.valid }} === true`\n\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "",
"connections": {
"1eb2b648-b557-42f1-aed5-d6b3f5b6419e": {
"main": [
[
{
"node": "5e7bec79-8951-4388-890c-73e37a6ef8b2",
"type": "main",
"index": 0
}
]
]
},
"5b63e21f-3504-4081-8422-800bda3803b5": {
"main": [
[
{
"node": "ff60e9dc-464e-4b54-8bbd-1e90874436d5",
"type": "main",
"index": 0
}
]
]
},
"d7504f9f-ee7e-41b0-8ec3-28acf6b139be": {
"main": [
[
{
"node": "96b09356-225b-41dd-8684-b003df5b7f1c",
"type": "main",
"index": 0
}
]
]
},
"de18b560-5a30-4b26-998f-a701590b4e9d": {
"main": [
[
{
"node": "1eb2b648-b557-42f1-aed5-d6b3f5b6419e",
"type": "main",
"index": 1
}
]
]
},
"0d26d3cd-509b-4f95-b188-00d41bb17e3c": {
"main": [
[
{
"node": "de18b560-5a30-4b26-998f-a701590b4e9d",
"type": "main",
"index": 0
},
{
"node": "1eb2b648-b557-42f1-aed5-d6b3f5b6419e",
"type": "main",
"index": 0
}
]
]
},
"ff60e9dc-464e-4b54-8bbd-1e90874436d5": {
"main": [
[
{
"node": "d7504f9f-ee7e-41b0-8ec3-28acf6b139be",
"type": "main",
"index": 0
}
]
]
},
"5e7bec79-8951-4388-890c-73e37a6ef8b2": {
"main": [
[
{
"node": "1e9a2800-bab2-47f2-8fff-5f52f0d3e903",
"type": "main",
"index": 0
}
],
[
{
"node": "4c34e01e-c47f-4879-a79b-f358b4e774e6",
"type": "main",
"index": 0
}
]
]
},
"96b09356-225b-41dd-8684-b003df5b7f1c": {
"main": [
[
{
"node": "f8ec0f94-b7c6-43c8-8598-7cb5e324b523",
"type": "main",
"index": 0
}
]
]
},
"f8ec0f94-b7c6-43c8-8598-7cb5e324b523": {
"main": [
[]
]
},
"1e9a2800-bab2-47f2-8fff-5f52f0d3e903": {
"main": [
[
{
"node": "5b63e21f-3504-4081-8422-800bda3803b5",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Extraction de documents
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Jitesh Dugar
@jiteshdugarAI Automation Specialist - OpenAI, CRM & Automation Expert with a solid understanding of various tools that include Zapier, Make, Zoho CRM, Hubspot, Google Sheets, Airtable, Pipedrive, Google Analytics, and more.
Partager ce workflow