{
  "workflow": {
    "id": 10130,
    "name": "Generate event badges with QR codes, HTMLCSStoImage, Gmail & Google Sheets",
    "views": 57,
    "recentViews": 0,
    "totalViews": 57,
    "createdAt": "2025-10-24T16:30:10.885Z",
    "description": "# Automated Event Badge Generator\n\nStreamline your event registration process with this fully automated badge generation system. Perfect for conferences, seminars, corporate events, universities, and training programs.\n\n## 🎯 What This Workflow Does\n\n1. **Receives Registration Data** via webhook (POST request)\n2. **Validates & Sanitizes** attendee information (email, name, role)\n3. **Generates Unique QR Codes** for each attendee with scannable IDs\n4. **Creates Beautiful HTML Badges** with gradient design and branding\n5. **Converts to High-Quality PNG Images** (400x680px) via HTMLCSStoImage API\n6. **Logs Everything** to Google Sheets for tracking and analytics\n7. **Sends Personalized Emails** with badge attachment and event instructions\n8. **Handles Errors Gracefully** with admin notifications\n\n## ✨ Key Features\n\n- **Professional Badge Design**: Gradient purple background, attendee photos (initials), QR codes\n- **Automatic QR Code Generation**: Unique scannable codes for quick check-in\n- **Email Delivery**: Personalized HTML emails with download links\n- **Google Sheets Tracking**: Complete audit trail of all badge generations\n- **Error Handling**: Admin alerts when generation fails\n- **Scalable**: Process registrations one-by-one or in batches\n\n## 🔧 Required Setup\n\n### APIs & Credentials:\n1. **HTMLCSStoImg API** - \n   - Sign up at https://htmlcsstoimg.com\n   - Get API Key\n\n2. **Gmail OAuth2**\n   - Connect your Gmail account\n   - Grant send permissions\n\n3. **Google Sheets OAuth2**\n   - Create a tracking spreadsheet\n   - Add headers: Name, Email, Event, Role, Attendee ID, Badge URL, Timestamp\n   - Connect via OAuth2\n\n### Before Activation:\n- Replace `YOUR_GOOGLE_SHEETS_ID` with your Google Sheet ID\n- Replace `admin@example.com` with your admin email address\n- Add all three credentials\n- Test with sample data\n\n## 📊 Use Cases\n\n- **Conferences & Seminars**: Generate badges for 100+ attendees\n- **Universities**: Student ID cards and event passes\n- **Corporate Events**: Employee badges with QR check-in\n- **Training Programs**: Course participant badges\n- **Workshops**: Professional badges with role identification\n- **Trade Shows**: Exhibitor and visitor badges\n\n## 🎨 Customization Options\n\n- **Badge Design**: Modify HTML/CSS for custom branding, colors, logos\n- **QR Code Size**: Adjust dimensions for different use cases\n- **Email Template**: Personalize welcome message and instructions\n- **Role-Based Badges**: Different designs for VIP, Speaker, Staff, Attendee\n- **Multi-Event Support**: Handle multiple events with different templates\n\n## 📈 What You'll Track\n\n- Total badges generated\n- Attendee names, emails, roles\n- Badge image URLs for reprints\n- Generation timestamps\n- Event names and dates\n\n## ⚡ Processing Time\n\n- **Average**: 5-8 seconds per badge\n- **Includes**: Validation, QR generation, HTML rendering, image conversion, logging, email\n\n## 🔒 Security Features\n\n- Email format validation\n- Continue-on-fail error handling\n- Admin notifications on failures\n- Secure credential storage\n\n## 💡 Pro Tips\n\n- Use a dedicated Gmail account for automation\n- Monitor HTMLCSStoImg API limits\n- Create separate sheets for different events\n- Archive old data periodically\n- Set up webhook authentication for production\n\n## 🚀 Getting Started\n\n1. Import this workflow\n2. Add the three required credentials\n3. Update Sheet ID and admin email\n4. Test with sample registration data\n5. Activate and integrate with your registration form\n\nPerfect for event organizers, HR teams, universities, and anyone managing events with 10-1000+ attendees!\n\n---",
    "workflow": {
      "id": "",
      "meta": {
        "instanceId": "",
        "templateCredsSetupCompleted": false
      },
      "name": "Event Badge Generator",
      "tags": [
        {
          "id": "event-registration",
          "name": "Event Registration"
        },
        {
          "id": "conference",
          "name": "Conference"
        },
        {
          "id": "automation",
          "name": "Automation"
        },
        {
          "id": "productivity",
          "name": "Productivity"
        }
      ],
      "nodes": [
        {
          "id": "4c1e6d44-4f5e-4f4e-a6ad-038860f9e11f",
          "name": "Extract Image URL",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            2912,
            -112
          ],
          "parameters": {
            "url": "={{ $json['Badge URL'] }}",
            "options": {
              "response": {
                "response": {
                  "responseFormat": "file",
                  "outputPropertyName": "badge"
                }
              }
            }
          },
          "typeVersion": 4.2
        },
        {
          "id": "f875b20b-393e-470c-8bf9-3c4cdfad8fb7",
          "name": "Badge Design",
          "type": "n8n-nodes-htmlcsstoimage.htmlCssToImage",
          "position": [
            2048,
            -16
          ],
          "parameters": {
            "html_content": "=<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <style>\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n        \n        body {\n            font-family: 'Arial', sans-serif;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            min-height: 100vh;\n            background: transparent;\n            padding: 20px;\n        }\n        \n        .badge-container {\n            width: 400px;\n            height: 650px;\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n            border-radius: 20px;\n            padding: 25px;\n            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\n            position: relative;\n            overflow: hidden;\n        }\n        \n        .badge-container::before {\n            content: '';\n            position: absolute;\n            top: -50%;\n            right: -50%;\n            width: 200%;\n            height: 200%;\n            background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);\n        }\n        \n        .badge-header {\n            text-align: center;\n            margin-bottom: 20px;\n            position: relative;\n            z-index: 1;\n        }\n        \n        .event-logo {\n            width: 70px;\n            height: 70px;\n            background: white;\n            border-radius: 50%;\n            margin: 0 auto 12px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-size: 32px;\n            font-weight: bold;\n            color: #667eea;\n            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);\n        }\n        \n        .event-title {\n            font-size: 22px;\n            font-weight: bold;\n            color: white;\n            text-transform: uppercase;\n            letter-spacing: 2px;\n            margin-bottom: 5px;\n        }\n        \n        .event-date {\n            font-size: 13px;\n            color: rgba(255, 255, 255, 0.9);\n            font-weight: 500;\n        }\n        \n        .badge-body {\n            background: white;\n            border-radius: 15px;\n            padding: 25px 20px;\n            text-align: center;\n            position: relative;\n            z-index: 1;\n            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);\n        }\n        \n        .attendee-photo {\n            width: 100px;\n            height: 100px;\n            border-radius: 50%;\n            margin: 0 auto 15px;\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-size: 42px;\n            color: white;\n            font-weight: bold;\n            border: 4px solid #f0f0f0;\n        }\n        \n        .attendee-name {\n            font-size: 26px;\n            font-weight: bold;\n            color: #2d3748;\n            margin-bottom: 6px;\n            line-height: 1.2;\n        }\n        \n        .attendee-role {\n            font-size: 15px;\n            color: #718096;\n            margin-bottom: 18px;\n            font-weight: 500;\n        }\n        \n        .qr-code-container {\n            margin: 20px auto 12px;\n            padding: 12px;\n            background: #f7fafc;\n            border-radius: 10px;\n            display: inline-block;\n        }\n        \n        .qr-code-container img {\n            width: 140px;\n            height: 140px;\n            display: block;\n        }\n        \n        .attendee-id {\n            font-size: 11px;\n            color: #a0aec0;\n            font-weight: 600;\n            letter-spacing: 1px;\n            margin-top: 8px;\n        }\n        \n        .badge-footer {\n            text-align: center;\n            margin-top: 18px;\n            position: relative;\n            z-index: 1;\n        }\n        \n        .badge-footer p {\n            font-size: 10px;\n            color: rgba(255, 255, 255, 0.85);\n            line-height: 1.4;\n        }\n    </style>\n</head>\n<body>\n    <div class=\"badge-container\">\n        <div class=\"badge-header\">\n            <div class=\"event-logo\">{{ $json.initials }}</div>\n            <div class=\"event-title\">{{ $json.event }}</div>\n            <div class=\"event-date\">{{ $json.eventDate }}</div>\n        </div>\n        \n        <div class=\"badge-body\">\n            <div class=\"attendee-photo\">{{ $json.initials }}</div>\n            <div class=\"attendee-name\">{{ $json.name }}</div>\n            <div class=\"attendee-role\">{{ $json.role }}</div>\n            \n            <div class=\"qr-code-container\">\n                <img src=\"{{ $json.qrCodeUrl }}\" alt=\"QR Code\">\n            </div>\n            \n            <div class=\"attendee-id\">ID: {{ $json.attendeeId }}</div>\n        </div>\n        \n        <div class=\"badge-footer\">\n            <p>Please present this badge at the entrance<br>Valid for event duration only</p>\n        </div>\n    </div>\n</body>\n</html>"
          },
          "credentials": {
            "htmlcsstoimgApi": {
              "id": "credential-id",
              "name": "htmlcsstoimgApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "d6843d6d-6411-4183-94b0-338bd2e51324",
          "name": "Sticky Note10",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            240,
            -304
          ],
          "parameters": {
            "color": 7,
            "width": 464,
            "height": 500,
            "content": "## SETUP CREDENTIALS FIRST\n\n**🔐 HTMLCSStoImage API**\n• Sign up: https://htmlcsstoimg.com\n• Get API credentials from dashboard\n• Add to n8n: Basic Auth credential\n\n**📧 Gmail OAuth2**\n• Select: \"Gmail OAuth2 API\"\n• Connect your Gmail account\n• Grant send permissions\n\n**📊 Google Sheets API**  \n• Select: \"Google Sheets OAuth2\"\n• Authenticate with Google\n• Grant read/write access\n\n**Test each credential before running the workflow**\n\n\n**💡 Pro Tips:**\n• Use a dedicated Gmail for automation\n• Create a new Sheet for each event\n• Monitor API rate limits"
          },
          "typeVersion": 1
        },
        {
          "id": "6bdd8ff7-3561-439c-afb9-cfa4ed7828dd",
          "name": "Sticky Note9",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2624,
            112
          ],
          "parameters": {
            "color": 7,
            "width": 260,
            "height": 568,
            "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n## ERROR HANDLING\n\nTriggered when badge generation fails\n\nSends admin alert with:\n- Full attendee details\n- Attendee ID\n- Timestamp\n- Possible failure causes\n- Action items\n\nTo: admin@example.com\n\nNext steps:\n- Check API status\n- Review logs\n- Retry manually"
          },
          "typeVersion": 1
        },
        {
          "id": "116af5fb-934d-435d-8038-bffd493a2f37",
          "name": "Sticky Note8",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            3136,
            -416
          ],
          "parameters": {
            "color": 7,
            "width": 372,
            "height": 468,
            "content": "## STEP 9: SEND BADGE EMAIL\n\nSends via Gmail with:\n- Personalized HTML email\n- Badge download link\n- Event instructions\n- Check-in details\n- Contact information\n\nTo: Attendee email\nAttachment: Badge PNG from URL\n\nContinue on fail: ON"
          },
          "typeVersion": 1
        },
        {
          "id": "ee261506-4c6f-4f6a-a30d-cb455be0ddb1",
          "name": "Sticky Note7",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2848,
            -368
          ],
          "parameters": {
            "color": 7,
            "height": 396,
            "content": "## STEP 8: EXTRACT BADGE URL\n\nExtracts image URL from API response\n\nReturns clean data:\n- binary file named badge\n\nUsed for: Logging & email"
          },
          "typeVersion": 1
        },
        {
          "id": "7c784e20-dd16-4f47-94cc-7c905603ce3e",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2256,
            -384
          ],
          "parameters": {
            "color": 7,
            "width": 272,
            "height": 524,
            "content": "## STEP 6: CONDITIONAL LOGIC\n\nCONDITIONAL CHECK\n\nVerifies badge generation success\n\nCondition: {{ $json.image_url }} is not empty\n\nTRUE (Green):\n→ Badge generated successfully\n→ Continue to email delivery\n\nFALSE (Red):\n→ Generation failed\n→ Send error alert to admin"
          },
          "typeVersion": 1
        },
        {
          "id": "e44f9c73-c536-4304-8f18-3a5efea15d8c",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1984,
            -368
          ],
          "parameters": {
            "color": 7,
            "height": 500,
            "content": "## STEP 5: BUILD HTML BADGE\n\nUses HTMLCSStoImage AP\n\nSends:\n- Full HTML code\n- Viewport: 400x680px\n\nReturns: Image URL\n\nAuth: Basic Auth with API credentials\n\nContinue on fail: ON"
          },
          "typeVersion": 1
        },
        {
          "id": "f450caab-0b6b-42ce-828e-d1bcffb4ef28",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1680,
            -256
          ],
          "parameters": {
            "color": 7,
            "width": 288,
            "height": 368,
            "content": "## STEP 4: PREPARE QR URL\n\nConverts binary QR to accessible URL\n\nCreates URL:\nhttps://api.qrserver.com/...?data=ATD-XXX\n\nUsed for: Embedding in HTML badge template"
          },
          "typeVersion": 1
        },
        {
          "id": "ae2d3024-f48b-4fc9-844b-c8fe61350c64",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1424,
            -352
          ],
          "parameters": {
            "color": 7,
            "height": 492,
            "content": "## STEP 3: QR CODE GENERATION\n\nCreates QR code via qrserver.com API\n\nParameters:\n- Size: 300x300px\n- Data: Attendee ID\n- Format: PNG image\n\nOutput: Binary QR code file\n\nContinue on fail: ON"
          },
          "typeVersion": 1
        },
        {
          "id": "aedbf094-b3b9-4230-ac41-9f516fe5ad5d",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1136,
            -400
          ],
          "parameters": {
            "color": 7,
            "width": 256,
            "height": 528,
            "content": "## STEP 2: DATA VALIDATION\n\nOperations:\n✓ Validates email format\n✓ Checks name exists\n✓ Generates unique attendee ID\n✓ Capitalizes name properly\n✓ Extracts initials (2 letters)\n✓ Normalizes email to lowercase\n✓ Sets default event/role if missing\n✓ Adds timestamp\n\nThrows error if:\n- Email invalid\n- Name missing"
          },
          "typeVersion": 1
        },
        {
          "id": "2d4702e5-361d-4259-b590-2566225db67e",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            752,
            -304
          ],
          "parameters": {
            "color": 7,
            "width": 368,
            "height": 420,
            "content": "## STEP 1: WEBHOOK TRIGGER\n\n**Test with cURL:**\n```bash\ncurl -X POST https://your-n8n.com/webhook/admissio\n-H \"Content-Type: application/json\" \\\n-d '{\n    \"name\": \"Jane Smith\",\n    \"email\": \"your-email@gmail.com\",\n    \"event\": \"TechCon 2025\",\n    \"role\": \"VIP Speaker\"\n}'\n```"
          },
          "typeVersion": 1
        },
        {
          "id": "9af27c62-c599-4ace-88b5-2f59ade4770e",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            336,
            -960
          ],
          "parameters": {
            "color": 7,
            "width": 380,
            "height": 588,
            "content": "## WORKFLOW OVERVIEW\n\n**Purpose:** Automated event badge generation system\n\n**Processing Time:** 5-8 seconds end-to-end\n\n**Workflow Steps:**\n1. Receive registration data via webhook (POST)\n2. Validate email and format inputs\n3. Generate unique QR code with attendee ID\n4. Create custom HTML badge design\n5. Convert HTML to downloadable PNG\n6. Log all data to Google Sheets\n7. Send badge via email with instructions\n\n**Success Path:**\n✅ Valid data → Badge generated → Email sent\n\n**Error Path:**\n❌ Invalid data → Workflow stopped → Error logged\n\n**Perfect For:**\n• Universities & colleges\n• Corporate events\n• Conferences & seminars\n• Training programs"
          },
          "typeVersion": 1
        },
        {
          "id": "10d6aab4-3b05-45e7-a9f2-a724bc4788f6",
          "name": "Send Error Alert",
          "type": "n8n-nodes-base.gmail",
          "position": [
            2688,
            128
          ],
          "webhookId": "",
          "parameters": {
            "sendTo": "admin@example.com",
            "message": "=<!DOCTYPE html>\n<html>\n<head>\n    <style>\n        body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; }\n        .container { max-width: 600px; margin: 0 auto; padding: 20px; }\n        .alert-header { background: #dc3545; color: white; padding: 20px; text-align: center; border-radius: 8px 8px 0 0; }\n        .alert-content { background: #f8d7da; padding: 20px; border: 1px solid #f5c6cb; border-radius: 0 0 8px 8px; }\n        .info-box { background: white; padding: 15px; border-radius: 5px; margin: 15px 0; }\n        .info-row { padding: 8px 0; border-bottom: 1px solid #dee2e6; }\n        .label { font-weight: bold; color: #495057; }\n        .value { color: #212529; }\n    </style>\n</head>\n<body>\n    <div class=\"container\">\n        <div class=\"alert-header\">\n            <h2>⚠️ Badge Generation Failed</h2>\n        </div>\n        \n        <div class=\"alert-content\">\n            <p><strong>A badge generation request has failed.</strong></p>\n            \n            <div class=\"info-box\">\n                <h3>Attendee Details:</h3>\n                <div class=\"info-row\">\n                    <span class=\"label\">Name:</span>\n                    <span class=\"value\">{{ $('Validate & Sanitize').item.json.name }}</span>\n                </div>\n                <div class=\"info-row\">\n                    <span class=\"label\">Email:</span>\n                    <span class=\"value\">{{ $('Validate & Sanitize').item.json.email }}</span>\n                </div>\n                <div class=\"info-row\">\n                    <span class=\"label\">Event:</span>\n                    <span class=\"value\">{{ $('Validate & Sanitize').item.json.event }}</span>\n                </div>\n                <div class=\"info-row\">\n                    <span class=\"label\">Role:</span>\n                    <span class=\"value\">{{ $('Validate & Sanitize').item.json.role }}</span>\n                </div>\n                <div class=\"info-row\">\n                    <span class=\"label\">Attendee ID:</span>\n                    <span class=\"value\">{{ $('Validate & Sanitize').item.json.attendeeId }}</span>\n                </div>\n                <div class=\"info-row\">\n                    <span class=\"label\">Timestamp:</span>\n                    <span class=\"value\">{{ $('Validate & Sanitize').item.json.timestamp }}</span>\n                </div>\n            </div>\n            \n            <h3>Possible Causes:</h3>\n            <ul>\n                <li>HTMLCSStoImage API is down or rate limited</li>\n                <li>API credentials expired or invalid</li>\n                <li>Network connectivity issues</li>\n                <li>Invalid HTML in badge template</li>\n            </ul>\n            \n            <h3>Action Required:</h3>\n            <ol>\n                <li>Check n8n workflow execution logs</li>\n                <li>Verify HTMLCSStoImage API status</li>\n                <li>Manually regenerate badge for this attendee</li>\n                <li>Contact attendee if urgent</li>\n            </ol>\n            \n            <p><strong>Workflow Name:</strong> Event Badge Generator</p>\n            <p><strong>n8n Instance:</strong> n8n.mediajade.com</p>\n        </div>\n    </div>\n</body>\n</html>",
            "options": {},
            "subject": "⚠️ Badge Generation Failed"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "f1a3b78b-c10f-4595-9339-963b6f298d24",
          "name": "Send Badge Email",
          "type": "n8n-nodes-base.gmail",
          "onError": "continueRegularOutput",
          "position": [
            3216,
            -112
          ],
          "webhookId": "",
          "parameters": {
            "sendTo": "={{ $json.Email }}",
            "message": "=<!DOCTYPE html>\n<html>\n<head>\n    <style>\n        body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; }\n        .container { max-width: 600px; margin: 0 auto; padding: 20px; }\n        .header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 30px; text-align: center; border-radius: 10px 10px 0 0; }\n        .content { background: #f7fafc; padding: 30px; }\n        .badge-info { background: white; padding: 20px; border-radius: 10px; margin: 20px 0; }\n        .badge-info h3 { color: #667eea; margin-bottom: 15px; }\n        .info-row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #e2e8f0; }\n        .info-label { font-weight: bold; color: #4a5568; }\n        .info-value { color: #2d3748; }\n        .button { display: inline-block; background: #667eea; color: white; padding: 15px 30px; text-decoration: none; border-radius: 8px; margin: 20px 0; font-weight: bold; }\n        .instructions { background: #fff3cd; padding: 15px; border-radius: 8px; border-left: 4px solid #ffc107; margin: 20px 0; }\n        .footer { text-align: center; padding: 20px; color: #718096; font-size: 14px; }\n    </style>\n</head>\n<body>\n    <div class=\"container\">\n        <div class=\"header\">\n            <h1>🎉 Your Event Badge is Ready!</h1>\n            <p>Welcome to {{ $json.Event }}</p>\n        </div>\n        \n        <div class=\"content\">\n            <p>Hello <strong>{{ $json.Name }}</strong>,</p>\n            \n            <p>Great news! Your personalized event badge for <strong>{{ $json.Event }}</strong> has been generated successfully.</p>\n            \n            <div class=\"badge-info\">\n                <h3>📋 Your Badge Details</h3>\n                <div class=\"info-row\">\n                    <span class=\"info-label\">Name:</span>\n                    <span class=\"info-value\">{{ $json.Name }}</span>\n                </div>\n                <div class=\"info-row\">\n                    <span class=\"info-label\">Role:</span>\n                    <span class=\"info-value\">{{ $json.Role }}</span>\n                </div>\n                <div class=\"info-row\">\n                    <span class=\"info-label\">Attendee ID:</span>\n                    <span class=\"info-value\">{{ $json['Attendee ID'] }}</span>\n                </div>\n                <div class=\"info-row\">\n                    <span class=\"info-label\">Event:</span>\n                    <span class=\"info-value\">{{ $json.Event }}</span>\n                </div>\n            </div>\n            \n            <div style=\"text-align: center;\">\n                <a href=\"{{ $json['Badge URL'] }}\" class=\"button\">📥 Download Your Badge</a>\n            </div>\n            \n            <div class=\"instructions\">\n                <h4>📌 Important Instructions:</h4>\n                <ul>\n                    <li><strong>Download</strong> your badge using the button above</li>\n                    <li><strong>Print</strong> it in color on standard paper OR save it on your phone</li>\n                    <li><strong>Present</strong> your badge at the event entrance for check-in</li>\n                    <li>The QR code on your badge will be scanned for quick entry</li>\n                </ul>\n            </div>\n            \n            <p><strong>Event Details:</strong></p>\n            <ul>\n                <li>📅 <strong>Date:</strong> October 25-27, 2025</li>\n                <li>📍 <strong>Venue:</strong> Convention Center</li>\n                <li>🕐 <strong>Check-in:</strong> Opens 8:00 AM daily</li>\n            </ul>\n            \n            <p>If you have any questions or need assistance, please reply to this email or contact our support team.</p>\n            \n            <p>We look forward to seeing you at the event! 🎊</p>\n            \n            <p>Best regards,<br>\n            <strong>TechCon 2025 Team</strong></p>\n        </div>\n        \n        <div class=\"footer\">\n            <p>This is an automated email. Please do not reply to this message.</p>\n            <p>© 2025 TechCon. All rights reserved.</p>\n        </div>\n    </div>\n</body>\n</html>",
            "options": {
              "attachmentsUi": {
                "attachmentsBinary": [
                  {
                    "property": "badge"
                  }
                ]
              }
            },
            "subject": "=Your Event Badge for {{ $json.Event }} 🎫"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "160ee018-7b7f-40ef-b448-f453e5ffadb2",
          "name": "Log to Sheets",
          "type": "n8n-nodes-base.googleSheets",
          "onError": "continueRegularOutput",
          "position": [
            2672,
            -112
          ],
          "parameters": {
            "columns": {
              "value": {
                "Name": "={{ $('Prepare QR URL').item.json.name }}",
                "Role": "={{ $('Prepare QR URL').item.json.role }}",
                "Email": "={{ $('Prepare QR URL').item.json.email }}",
                "Event": "={{ $('Prepare QR URL').item.json.event }}",
                "Status": "Sent",
                "Badge URL": "={{ $json.image_url }}",
                "Timestamp": "={{ $('Prepare QR URL').item.json.timestamp }}",
                "Attendee ID": "={{ $('Prepare QR URL').item.json.attendeeId }}"
              },
              "schema": [
                {
                  "id": "Name",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Email",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Email",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Event",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Event",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Role",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Role",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Attendee ID",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Attendee ID",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Badge URL",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Badge URL",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Timestamp",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Timestamp",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Status",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Status",
                  "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_ID/edit#gid=0",
              "cachedResultName": "BadgesLog"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "YOUR_GOOGLE_SHEETS_ID",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_ID/edit?usp=drivesdk",
              "cachedResultName": "Event Badge Tracker"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.4
        },
        {
          "id": "b06c61ed-c72a-434f-8963-8a9d971553e1",
          "name": "Is Badge Generated?",
          "type": "n8n-nodes-base.if",
          "position": [
            2352,
            -16
          ],
          "parameters": {
            "conditions": {
              "string": [
                {
                  "value1": "={{ $json.image_url }}",
                  "operation": "isNotEmpty"
                }
              ]
            }
          },
          "typeVersion": 1
        },
        {
          "id": "046da474-268b-4274-9741-6c73fa1cc462",
          "name": "Prepare QR URL",
          "type": "n8n-nodes-base.code",
          "position": [
            1760,
            -16
          ],
          "parameters": {
            "jsCode": "// Get attendee data from previous node\nconst data = $input.first().json;\n\n// Create QR code URL that can be used in HTML\nconst qrCodeUrl = `https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=${encodeURIComponent(data.attendeeId)}`;\n\n// Return all data with QR URL\nreturn {\n  name: data.name,\n  email: data.email,\n  event: data.event,\n  role: data.role,\n  attendeeId: data.attendeeId,\n  initials: data.initials,\n  eventDate: data.eventDate,\n  timestamp: data.timestamp,\n  qrCodeUrl: qrCodeUrl\n};"
          },
          "typeVersion": 2
        },
        {
          "id": "ae88dca5-7d9d-47cc-a26c-99b1fd937476",
          "name": "Generate QR Code",
          "type": "n8n-nodes-base.httpRequest",
          "onError": "continueRegularOutput",
          "position": [
            1504,
            -16
          ],
          "parameters": {
            "url": "https://api.qrserver.com/v1/create-qr-code/",
            "options": {
              "response": {
                "response": {
                  "responseFormat": "file",
                  "outputPropertyName": "qrcode"
                }
              }
            },
            "sendQuery": true,
            "queryParameters": {
              "parameters": [
                {
                  "name": "size",
                  "value": "300x300"
                },
                {
                  "name": "data",
                  "value": "={{ $json.attendeeId }}"
                }
              ]
            }
          },
          "typeVersion": 4.2
        },
        {
          "id": "fbd2eb39-1544-4697-8a48-21439fd1eddc",
          "name": "Validate & Sanitize",
          "type": "n8n-nodes-base.code",
          "position": [
            1232,
            -16
          ],
          "parameters": {
            "jsCode": "// Get input data from webhook body\nconst webhookData = $input.item.json.body;\n\n// Validation function\nfunction validateEmail(email) {\n  const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n  return emailRegex.test(email);\n}\n\n// Extract and validate data\nconst name = webhookData.name?.trim() || '';\nconst email = webhookData.email?.trim().toLowerCase() || '';\nconst eventTitle = webhookData.event || 'TechCon 2025';\nconst role = webhookData.role || 'Attendee';\n\n// Check for required fields\nif (!name) {\n  throw new Error('Name is required');\n}\n\nif (!email || !validateEmail(email)) {\n  throw new Error('Valid email is required');\n}\n\n// Generate unique attendee ID\nconst attendeeId = 'ATD-' + Date.now().toString(36).toUpperCase() + '-' + Math.random().toString(36).substr(2, 4).toUpperCase();\n\n// Capitalize name properly\nconst capitalizedName = name\n  .toLowerCase()\n  .split(' ')\n  .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n  .join(' ');\n\n// Get initials for badge\nconst initials = capitalizedName\n  .split(' ')\n  .map(word => word[0])\n  .join('')\n  .toUpperCase()\n  .substr(0, 2);\n\n// Current date for event\nconst eventDate = 'October 25-27, 2025';\n\n// Return sanitized data\nreturn {\n  name: capitalizedName,\n  email: email,\n  event: eventTitle,\n  role: role,\n  attendeeId: attendeeId,\n  initials: initials,\n  eventDate: eventDate,\n  timestamp: new Date().toISOString()\n};"
          },
          "typeVersion": 2
        },
        {
          "id": "3855779b-e567-4b44-8ac8-18ea02328f5c",
          "name": "Webhook",
          "type": "n8n-nodes-base.webhook",
          "position": [
            992,
            -16
          ],
          "webhookId": "",
          "parameters": {
            "path": "new-attendee",
            "options": {},
            "httpMethod": "POST"
          },
          "typeVersion": 1.1
        },
        {
          "id": "dd40ecde-5b4c-455d-998f-06c3f8b15a23",
          "name": "Sticky Note11",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            2576,
            -448
          ],
          "parameters": {
            "color": 7,
            "height": 480,
            "content": "## STEP 9: LOG TO GOOGLE SHEETS\n\nAppends row to tracking sheet:\n- Name\n- Email\n- Event\n- Role\n- Attendee ID\n- Badge URL\n- Timestamp\n\nSheet: Event Badge Tracker\nContinue on fail: ON"
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "",
      "connections": {
        "Webhook": {
          "main": [
            [
              {
                "node": "Validate & Sanitize",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Badge Design": {
          "main": [
            [
              {
                "node": "Is Badge Generated?",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Log to Sheets": {
          "main": [
            [
              {
                "node": "Extract Image URL",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Prepare QR URL": {
          "main": [
            [
              {
                "node": "Badge Design",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Generate QR Code": {
          "main": [
            [
              {
                "node": "Prepare QR URL",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Extract Image URL": {
          "main": [
            [
              {
                "node": "Send Badge Email",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Is Badge Generated?": {
          "main": [
            [
              {
                "node": "Log to Sheets",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Send Error Alert",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Validate & Sanitize": {
          "main": [
            [
              {
                "node": "Generate QR Code",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 22,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 1
        },
        "n8n-nodes-base.code": {
          "count": 2
        },
        "n8n-nodes-base.gmail": {
          "count": 2
        },
        "n8n-nodes-base.webhook": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 12
        },
        "n8n-nodes-base.httpRequest": {
          "count": 2
        },
        "n8n-nodes-base.googleSheets": {
          "count": 1
        },
        "n8n-nodes-htmlcsstoimage.htmlCssToImage": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Jitesh Dugar",
      "username": "jiteshdugar",
      "bio": "AI 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.",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/jiteshdugar"
      ],
      "avatar": "https://gravatar.com/avatar/edaa3abb99806b0586dced559d0a5417f24a507e7c4464a63960f0638a4b1b90?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 18,
        "icon": "file:googleSheets.svg",
        "name": "n8n-nodes-base.googleSheets",
        "codex": {
          "data": {
            "alias": [
              "CSV",
              "Sheet",
              "Spreadsheet",
              "GS"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/",
                  "icon": "❤️",
                  "label": "Love at first sight: Ricardo’s n8n journey"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/",
                  "icon": "⏲",
                  "label": "Creating triggers for n8n workflows using polling"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/",
                  "icon": "📈",
                  "label": "Migrating Community Metrics to Orbit using n8n"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/",
                  "icon": "🍔",
                  "label": "How Honest Burgers Use Automation to Save $100k per year"
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Data & Storage",
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\",\"output\"]",
        "defaults": {
          "name": "Google Sheets"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="
        },
        "displayName": "Google Sheets",
        "typeVersion": 5,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          },
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "id": 19,
        "icon": "file:httprequest.svg",
        "name": "n8n-nodes-base.httpRequest",
        "codex": {
          "data": {
            "alias": [
              "API",
              "Request",
              "URL",
              "Build",
              "cURL"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/",
                  "icon": "✍️",
                  "label": "Learn how to automatically cross-post your content with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/",
                  "icon": "🛳",
                  "label": "Running n8n on ships: An interview with Maranics"
                },
                {
                  "url": "https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/",
                  "icon": " 🪢",
                  "label": "What are APIs and how to use them with no code"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/world-poetry-day-workflow/",
                  "icon": "📜",
                  "label": "Celebrating World Poetry Day with a daily poem in Telegram"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/",
                  "icon": "🎨",
                  "label": "Automate Designs with Bannerbear and n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/",
                  "icon": "🧰",
                  "label": "How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/",
                  "icon": "🦄",
                  "label": "Learn how to use webhooks with Mattermost slash commands"
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                },
                {
                  "url": "https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/",
                  "icon": "🤟",
                  "label": "Creating scheduled text affirmations with n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "HTTP Request",
          "color": "#0004F5"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "HTTP Request",
        "typeVersion": 4,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 20,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.if",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "Filter",
              "Condition",
              "Logic",
              "Boolean",
              "Branch"
            ],
            "details": "The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "If",
          "color": "#408000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "If",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 47,
        "icon": "file:webhook.svg",
        "name": "n8n-nodes-base.webhook",
        "codex": {
          "data": {
            "alias": [
              "HTTP",
              "API",
              "Build",
              "WH"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/",
                  "icon": "✍️",
                  "label": "Learn how to automatically cross-post your content with n8n"
                },
                {
                  "url": "https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/",
                  "icon": "🛳",
                  "label": "Running n8n on ships: An interview with Maranics"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/",
                  "icon": " 🪢",
                  "label": "What are APIs and how to use them with no code"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-custom-incident-response-workflows-with-n8n/",
                  "label": "How to automate every step of an incident response workflow"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/",
                  "icon": "🦄",
                  "label": "Learn how to use webhooks with Mattermost slash commands"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Webhook"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"
        },
        "displayName": "Webhook",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 356,
        "icon": "file:gmail.svg",
        "name": "n8n-nodes-base.gmail",
        "codex": {
          "data": {
            "alias": [
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Gmail"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"
        },
        "displayName": "Gmail",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 834,
        "icon": "file:code.svg",
        "name": "n8n-nodes-base.code",
        "codex": {
          "data": {
            "alias": [
              "cpde",
              "Javascript",
              "JS",
              "Python",
              "Script",
              "Custom Code",
              "Function"
            ],
            "details": "The Code node allows you to execute JavaScript in your workflow.",
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="
        },
        "displayName": "Code",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 35,
        "name": "Document Extraction"
      }
    ],
    "image": []
  }
}