세미나 증명서 사전 발급 시스템
고급
이것은Document Extraction분야의자동화 워크플로우로, 24개의 노드를 포함합니다.주로 If, Code, Gmail, Merge, GoogleDrive 등의 노드를 사용하며. JotForm, 이메일 검증, Google Workspace를 통합한 자동화 세미나 인증서 시스템
사전 요구사항
- •Google 계정 및 Gmail API 인증 정보
- •Google Drive API 인증 정보
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
사용된 노드 (24)
카테고리
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "",
"meta": {
"instanceId": "",
"templateCredsSetupCompleted": false
},
"name": "Workshop Certificate Pre-Issuance System",
"tags": [],
"nodes": [
{
"id": "5e7bec79-8951-4388-890c-73e37a6ef8b2",
"name": "IF - 이메일 유효?",
"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": "수료증 데이터 준비",
"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": "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": "확인 이메일 발송",
"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": "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": "실패한 등록 기록",
"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": "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": "Merge",
"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 to 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": "파일 업로드",
"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": "Sticky Note",
"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": "Sticky Note - 3단계 Merge",
"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": "Sticky Note - 5단계 데이터 준비",
"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": "Sticky Note - 6단계 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": "Sticky Note - 7단계 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": "Sticky Note - 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": "Sticky Note - 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": "Sticky Note - 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": "Sticky Note - False 분기",
"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": "Sticky Note - 자격 증명 상태",
"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": "Sticky Note - 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": "Sticky Note - 2단계 이메일 검증",
"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": "Sticky Note - 4단계 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
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 문서 추출
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
학부모 동의 자동화
이메일 검증, PDF 생성 및 Google Drive를 사용한 학교 여행 동의서 자동화
If
Code
Gmail
+
If
Code
Gmail
22 노드Jitesh Dugar
문서 추출
인증된 사용자 프로필 생성
이메일 확인, PDF 생성, Gmail 배달을 사용하여 검증된 사용자 프로필 만들기
If
Set
Gmail
+
If
Set
Gmail
20 노드Jitesh Dugar
문서 추출
회의록 및 액션 아이템 트래커
AI 기반 회의록: GPT-4, 작업 할당 및 다중 채널 배포 활용
If
Set
Code
+
If
Set
Code
38 노드Jitesh Dugar
콘텐츠 제작
인플루언서 마케팅 캠페인 관리 시스템 자동화
Instagram/YouTube API를 활용한 인플루언서 평가 및 캠페인 관리 자동화
If
Code
Gmail
+
If
Code
Gmail
24 노드Jitesh Dugar
콘텐츠 제작
fraud 방지 잠재 고객 캡처 및 성장 시스템
AI 평점, 테이블 추적, 다중 채널 알림을 통해防欺诈 잠재 고객을捕获하고 키우습니다.
If
Set
Code
+
If
Set
Code
28 노드Jitesh Dugar
콘텐츠 제작
검증된 방문자 패스 생성기
이메일 확인, 패스 및 Slack 알림을 사용한 방문자 관리 자동화
If
Set
Code
+
If
Set
Code
22 노드Jitesh Dugar
문서 추출
워크플로우 정보
난이도
고급
노드 수24
카테고리1
노드 유형11
저자
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.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유