{
  "name": "Automate verified visitor management with email verification, badges & Slack alerts",
  "nodes": [
    {
      "id": "c897caf3-b83b-46fd-9eb3-a73ea8b563a1",
      "name": "Set - Extract Form Data",
      "type": "n8n-nodes-base.set",
      "position": [
        192,
        384
      ]
    },
    {
      "id": "01532eac-8645-4137-b17e-283a31800072",
      "name": "IF - Check Email Valid",
      "type": "n8n-nodes-base.if",
      "position": [
        944,
        384
      ]
    },
    {
      "id": "d2f63287-e0f0-41e2-bc7a-141a8fa05367",
      "name": "Function - Generate Visitor ID & QR",
      "type": "n8n-nodes-base.code",
      "position": [
        1360,
        288
      ]
    },
    {
      "id": "d1630c9e-05c5-43ae-9370-e22a778d86d5",
      "name": "HTML/CSS to Image",
      "type": "n8n-nodes-htmlcsstoimage.htmlCssToImage",
      "position": [
        1712,
        288
      ]
    },
    {
      "id": "24b92189-7f95-46a8-a65b-426070b99316",
      "name": "Send a message1",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2208,
        0
      ]
    },
    {
      "id": "8b759709-dbea-4680-932d-4bffd248e037",
      "name": "Slack - Notify Security Team",
      "type": "n8n-nodes-base.slack",
      "position": [
        2320,
        288
      ]
    },
    {
      "id": "8f13df6c-3418-464d-b333-4ff900c2ebc0",
      "name": "Google Sheets - Log Visitor",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2224,
        560
      ]
    },
    {
      "id": "0df8d27a-411a-4e4b-be7b-d40ea8c78691",
      "name": "Verifi Email",
      "type": "n8n-nodes-verifiemail.verifiEmail",
      "position": [
        592,
        384
      ]
    },
    {
      "id": "d6dd5889-309a-4f37-a55a-b4c80425baa2",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -224,
        384
      ]
    },
    {
      "id": "31b44373-0af2-46d4-8b0b-6fd85824bd12",
      "name": "Stop and Error",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        1360,
        528
      ]
    },
    {
      "id": "922d05d1-426d-426b-918c-36065bc8b2b1",
      "name": "Sticky Note - Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -736,
        -736
      ],
      "parameters": {
        "width": 347,
        "height": 368,
        "content": "## 🎯 WORKFLOW OVERVIEW\n\n**Purpose:** Automated Verified Visitor Pass System for Coworking Spaces\n\n**Key Benefits:**\n- ⚡ Instant visitor pass generation (30 seconds)\n- 🔒 Email verification prevents fak"
      }
    },
    {
      "id": "b3f56e5d-a276-4c20-aff6-f2ffe8cfd524",
      "name": "Sticky Note - Credentials",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -752,
        -352
      ],
      "parameters": {
        "width": 443,
        "height": 660,
        "content": "## 🔐 CREDENTIALS SETUP GUIDE\n\n### Required Credentials (5 Total)\n\n### 1️⃣ VerifiEmail API\n Go to: https://verifi.email\n\n### 2️⃣ HTMLCSSToImage API\n Go to: https://htmlcsstoimg.com\n\n### 3️⃣ Gmail OAuth"
      }
    },
    {
      "id": "b24936a8-334b-4035-a367-fdc51a26e2b7",
      "name": "Sticky Note - Webhook",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -288,
        -16
      ],
      "parameters": {
        "width": 367,
        "height": 532,
        "content": "## 📥 STEP 1: WEBHOOK TRIGGER\n\n**Expected Input Format:**\n```json\n{\n  \"Full Name\": {\n    \"first\": \"John\",\n    \"last\": \"Doe\"\n  },\n  \"Email\": \"john@example.com\",\n  \"Profile Photo\": \"https://...\",\n  \"Visi"
      }
    },
    {
      "id": "e0297444-b797-411b-9df5-b2c2ad9fe2dd",
      "name": "Sticky Note - Set Extract",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        112
      ],
      "parameters": {
        "width": 383,
        "height": 424,
        "content": "## 🔄 STEP 2: EXTRACT & ORGANIZE DATA\n\n**What It Does:**\n- Extracts visitor information from nested JSON\n- Combines first and last name into full name\n- Formats visit date in multiple ways (ISO & displ"
      }
    },
    {
      "id": "a6716cea-e840-42d5-a632-860890132bab",
      "name": "Sticky Note - Verifi Email",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        496,
        112
      ],
      "parameters": {
        "width": 335,
        "height": 416,
        "content": "## ✅ STEP 3: EMAIL VERIFICATION\n\n**What It Does:**\n- Verifies email format is correct\n- Checks if domain exists and has MX records\n- Validates mailbox actually exists\n- Detects disposable/temporary em"
      }
    },
    {
      "id": "c1760877-16f2-4416-ba40-89288fd91ff1",
      "name": "Sticky Note - IF Node",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        848,
        144
      ],
      "parameters": {
        "width": 383,
        "height": 384,
        "content": "## 🔀 STEP 4: VALIDATION DECISION POINT\n\n**What It Does:**\n- Checks if email verification passed\n- Splits workflow into two paths:\n  - ✅ TRUE = Valid email → Continue to badge generation\n  - ❌ FALSE = "
      }
    },
    {
      "id": "373d6fcc-490c-4625-9606-4008585158af",
      "name": "Sticky Note - Function",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1248,
        48
      ],
      "parameters": {
        "width": 383,
        "height": 396,
        "content": "## 🆔 STEP 5: GENERATE VISITOR ID & QR CODE\n\n**What It Does:**\n- Generates unique visitor ID with timestamp\n- Creates QR code data with full visitor info\n- Provides two QR formats (JSON & simple text)\n"
      }
    },
    {
      "id": "7a69ca42-4c7a-4d27-a58a-a59ad8ebbab1",
      "name": "Sticky Note - HTML to Image",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1648,
        -160
      ],
      "parameters": {
        "width": 367,
        "height": 596,
        "content": "## 🎨 STEP 6: CREATE VISITOR BADGE IMAGE\n\n**HTML Template Structure:**\n```\n┌─────────────────────────────┐\n│    [Logo] Visitor Pass      │\n├─────────────────────────────┤\n│      [✓ Photo]              "
      }
    },
    {
      "id": "ae0d79a7-33ae-457b-81c0-bd3658dbd972",
      "name": "Sticky Note - Email",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2064,
        -240
      ],
      "parameters": {
        "width": 383,
        "height": 388,
        "content": "## 📧 STEP 7: EMAIL VISITOR PASS\n\n**What It Does:**\n- Sends professional HTML email\n- Includes visitor pass badge image\n- Provides visit details and instructions\n- Gives location and contact info\n- Con"
      }
    },
    {
      "id": "0d44e4e6-add8-4e61-ac3a-aa0e6e1b0a6b",
      "name": "Sticky Note - Slack",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2064,
        192
      ],
      "parameters": {
        "width": 479,
        "height": 308,
        "content": "## 💬 STEP 8: SLACK SECURITY ALERT\n\n**Why Slack Notifications:**\n- ✅ Real-time alerts (instant)\n- ✅ Mobile push notifications\n- ✅ Team collaboration\n- ✅ Searchable history\n- ✅ No email clutter\n- ✅ Easy"
      }
    },
    {
      "id": "70256371-d8a1-4e0c-9118-30edcb8887ad",
      "name": "Sticky Note - Sheets",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2064,
        544
      ],
      "parameters": {
        "width": 351,
        "height": 712,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n## 📊 STEP 9: LOG TO GOOGLE SHEETS\n\n**What It Does:**\n- Appends new row to spreadsheet\n- Records all visitor information\n- Logs badge image URL\n- Tracks verification status\n- Creates sear"
      }
    },
    {
      "id": "0d03ee1f-d600-40c3-b34d-e7be412996f8",
      "name": "Sticky Note - Stop Error",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1248,
        512
      ],
      "parameters": {
        "width": 335,
        "height": 448,
        "content": "\n\n\n\n\n\n\n\n\n\n\n## ❌ STEP 4B: INVALID EMAIL HANDLING\n\n**What It Does:**\n- Terminates workflow execution\n- Shows error message: \"Invalid Email\"\n- Prevents fake visitor entries\n- No badge created\n- No email "
      }
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Set - Extract Form Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Verifi Email": {
      "main": [
        [
          {
            "node": "IF - Check Email Valid",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTML/CSS to Image": {
      "main": [
        [
          {
            "node": "Send a message1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Slack - Notify Security Team",
            "type": "main",
            "index": 0
          },
          {
            "node": "Google Sheets - Log Visitor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF - Check Email Valid": {
      "main": [
        [
          {
            "node": "Function - Generate Visitor ID & QR",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Stop and Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set - Extract Form Data": {
      "main": [
        [
          {
            "node": "Verifi Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Function - Generate Visitor ID & QR": {
      "main": [
        [
          {
            "node": "HTML/CSS to Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}