{
  "workflow": {
    "id": 9150,
    "name": "Automated email verification & onboarding with VerifiEmail, Gmail & Slack",
    "views": 180,
    "recentViews": 0,
    "totalViews": 180,
    "createdAt": "2025-10-01T11:23:38.672Z",
    "description": "# Customer Onboarding Email Verification\n\nAutomated email verification and welcome email workflow that validates new user signups, prevents fake emails, and creates a seamless onboarding experience with real-time team notifications.\n\n## Features\n\n✅ Real-time email validation with VerifiEmail API  \n✅ Automatic data sanitization (lowercase, trim whitespace)  \n✅ Smart typo detection and correction suggestions  \n✅ Disposable email domain blocking  \n✅ Professional HTML welcome emails with responsive design  \n✅ Automatic duplicate prevention in Google Sheets logging  \n✅ Real-time Slack notifications for sales/marketing teams  \n✅ MX record and SMTP deliverability checks  \n\n## What You Need\n\n### Required Accounts/APIs:\n\n1. **VerifiEmail API** - For email validation ([verifi.email](https://verifi.email))\n2. **Gmail account** (or SMTP server) - For sending welcome emails\n3. **Google Sheets** - For logging verified users\n4. **Slack workspace** - For team notifications (optional but recommended)\n\n## Setup Instructions\n\n1. **Create Google Sheet**\n   - Create new spreadsheet named \"Verified Users\"\n   - Add headers: Name | Email | Status | Verified At | Original Email | Validation Score\n\n2. **Connect Credentials**\n   - Add VerifiEmail API key in n8n credentials\n   - Connect Gmail via OAuth2 (enable 2FA, generate app password if needed)\n   - Connect Google Sheets via OAuth2\n   - Connect Slack workspace via OAuth2\n\n3. **Customize Email Template**\n   - Open \"Personalize Welcome Email\" node\n   - Replace \"Your Company\" with your brand name (appears 3 times)\n   - Update CTA URLs:\n     - `yourapp.com/dashboard` → Your actual dashboard URL\n     - `yourapp.com/getting-started` → Your docs/guide URL\n     - `yourapp.com/support` → Your support page URL\n   - Modify colors: Purple gradient `#667eea` to `#764ba2` (line 37)\n\n4. **Configure Slack Channel**\n   - Create #new-signup channel in Slack (or use existing)\n   - Update channel in \"Team Notification\" node\n\n5. **Test Workflow**\n   - Activate workflow\n   - Copy webhook URL from Webhook node\n   - Test with: `curl -X POST [webhook-url] -H \"Content-Type: application/json\" -d '{\"name\":\"Test User\",\"email\":\"test@gmail.com\"}'`\n\n6. **Integrate with Your Signup Form**\n   - Point form submission to webhook URL\n   - Ensure payload includes `name` and `email` fields\n\n## Input Format\n\nSend POST request to webhook with this JSON:\n\n```json\n{\n  \"name\": \"John Doe\",\n  \"email\": \"johndoe@gmail.com\"\n}\n```\n\nThe workflow handles various input formats (nested in `body` field, query params, etc.) and sanitizes automatically.\n\n## Output\n\nAfter execution, you'll get:\n\n1. **Email validated** via VerifiEmail API with deliverability score\n2. **Welcome email sent** to user with personalized greeting and CTAs\n3. **User logged** to Google Sheets with timestamp and validation details\n4. **Slack notification** sent to team with user details and status\n5. **Invalid emails blocked** with typo correction suggestions prepared\n\n### For Valid Emails (~85-90%):\n- Professional HTML welcome email delivered\n- Entry added to \"Verified Users\" sheet\n- Real-time Slack alert to #new-signup channel\n\n### For Invalid Emails (~10-15%):\n- Workflow stops with error message\n- No email sent (prevents bounces)\n- Typo suggestion prepared (e.g., gmial.com → gmail.com)\n\n## Customization\n\n### Change Email Design:\nEdit the \"Personalize Welcome Email\" node HTML:\n- **Colors**: Change gradient in line 37: `background: linear-gradient(135deg, #667eea 0%, #764ba2 100%)`\n- **Logo**: Add `<img>` tag in header section\n- **Buttons**: Modify CTA text and links in lines 45-65\n- **Footer**: Update copyright year and company name\n\n### Modify Validation Rules:\nIn \"Prepare Correction Email\" node, add more typo patterns:\n```javascript\nconst commonTypos = {\n  'gmial': 'gmail',\n  'gmai': 'gmail',\n  // Add your custom patterns:\n  'yourdomain': 'yourcorrectdomain'\n}\n```\n\n### Enable Correction Email Sending:\nReplace \"Stop and Error\" node with Gmail \"Send Email\" node:\n- Connect from \"Prepare Correction Email\"\n- Use `{{ $json.email }}` as recipient\n- Use `{{ $json.emailBody }}` as message\n- User receives helpful correction suggestion instead of silent failure\n\n### Add More Notification Channels:\nAfter \"Log Valid Users\" node, add:\n- Discord webhook for team notifications\n- Microsoft Teams connector\n- Email to sales@ or support@\n- Custom webhook to your CRM\n\n### Log Invalid Attempts:\nAdd Google Sheets node after \"Prepare Correction Email\":\n- Create \"Invalid Attempts\" tab in same spreadsheet\n- Log: Name, Email, Reason, Suggestion, Timestamp\n- Analyze patterns weekly for form improvements\n\n## Troubleshooting\n\n**\"undefined\" error in Data Sanitization:**\n- Check webhook payload structure\n- Verify `name` and `email` fields are present\n- Test with the debug code provided in sticky notes\n\n**All emails marked as invalid:**\n- Verify VerifiEmail API key is active\n- Test API directly at verifi.email dashboard\n\n**Welcome emails not sending:**\n- Confirm Gmail OAuth2 is connected (check for expired tokens)\n- Verify sending limits not exceeded\n- Check spam folder if testing with personal email\n- Review Gmail \"Sent\" folder for delivery confirmation\n\n**No Slack notifications:**\n- Verify OAuth2 connection is active\n- Check bot has permission to post in #new-signup channel\n- Confirm channel ID is correct\n- Test Slack credentials in n8n\n\n**Duplicate entries in Google Sheets:**\n- Verify \"Email\" is set as matching column\n- Confirm operation is \"Append or Update\" not just \"Append\"\n- Check Sheet1 has the exact column names expected\n\n**High validation failure rate:**\n- Review invalid emails in execution logs\n- Check for form submission issues (bots, testing)\n- Verify VerifiEmail API is not blocking legitimate domains\n\n## Performance Optimization\n\nFor high-volume signups (&gt;100/day):\n- Switch Slack notifications to hourly digest\n- Implement rate limiting on webhook\n- Consider caching frequent domain validations\n- Use Google Workspace for higher email sending limits\n\n## Maintenance\n\n**Weekly:**\n- Check VerifiEmail API usage and quota\n- Review Slack notifications for anomalies\n- Scan Google Sheets for data quality\n- Test with sample signup\n\n**Monthly:**\n- Archive old Google Sheets data (&gt;90 days)\n- Review invalid email patterns\n- Update email template if needed\n- Audit credential security\n\n## Support\n\nFor issues or questions, visit the [n8n community forum](https://community.n8n.io).\n\n---",
    "workflow": {
      "id": "0l3nj6SM84lw3lvH",
      "meta": {
        "instanceId": "",
        "templateCredsSetupCompleted": false
      },
      "name": "Customer Onboarding Email Verification",
      "tags": [],
      "nodes": [
        {
          "id": "86910847-a9b7-4a7d-9ed0-259e9fb0b880",
          "name": "Webhook",
          "type": "n8n-nodes-base.webhook",
          "position": [
            -80,
            0
          ],
          "webhookId": "",
          "parameters": {
            "path": "/new-signup",
            "options": {},
            "httpMethod": "POST"
          },
          "typeVersion": 2.1
        },
        {
          "id": "e834db7e-1dc7-4ee5-8ac4-1be83f1a4041",
          "name": "Data Sanitization",
          "type": "n8n-nodes-base.code",
          "position": [
            176,
            0
          ],
          "parameters": {
            "jsCode": "// Handle different input structures safely\nconst items = $input.all();\n\nreturn items.map(item => {\n  // Try different possible data structures\n  const data = item.json.body || item.json || {};\n  \n  // Safe access with fallbacks\n  const name = (data.name || '').trim();\n  const email = (data.email || '').toLowerCase().trim();\n  \n  // Validation\n  if (!name || !email) {\n    throw new Error(`Missing required fields. Received: ${JSON.stringify(data)}`);\n  }\n  \n  return {\n    json: {\n      name: name,\n      email: email,\n      original_email: data.email || email,\n      received_at: new Date().toISOString()\n    }\n  };\n});"
          },
          "typeVersion": 2
        },
        {
          "id": "f0ccbc6e-9c10-47b3-bd2e-fb06a1f3615d",
          "name": "Email Validation",
          "type": "n8n-nodes-verifiemail.verifiEmail",
          "position": [
            496,
            0
          ],
          "parameters": {
            "email": "={{ $json.email }}"
          },
          "credentials": {
            "verifiEmailApi": {
              "id": "credential-id",
              "name": "verifiEmailApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "7fa85889-6906-4637-8bcb-d2ec30370fda",
          "name": "Validation Decision",
          "type": "n8n-nodes-base.if",
          "position": [
            800,
            0
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "35f8b0f1-c001-46e2-a4f1-f7d5bb7b2b24",
                  "operator": {
                    "type": "boolean",
                    "operation": "true",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json.valid }}",
                  "rightValue": ""
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "1c045477-d1eb-4bc7-a006-fd87321ddbb4",
          "name": "Personalize Welcome Email",
          "type": "n8n-nodes-base.code",
          "position": [
            1072,
            -96
          ],
          "parameters": {
            "mode": "runOnceForEachItem",
            "jsCode": "// Get data from previous nodes\nconst name = $('Data Sanitization').item.json.name;\nconst email = $('Data Sanitization').item.json.email;\nconst firstName = name.split(' ')[0];\n\n// Get validation details (optional - for logging)\nconst validationScore = $json.quality_score || 'N/A';\n\nreturn {\n  json: {\n    name: name,\n    firstName: firstName,\n    email: email,\n    subject: `Welcome to Our Platform, ${firstName}! 🎉`,\n    emailBody: `\n<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n</head>\n<body style=\"margin: 0; padding: 0; font-family: Arial, sans-serif; background-color: #f4f4f4;\">\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color: #f4f4f4; padding: 20px;\">\n    <tr>\n      <td align=\"center\">\n        <table width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color: #ffffff; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.1);\">\n          \n          <!-- Header -->\n          <tr>\n            <td style=\"background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 40px 20px; text-align: center;\">\n              <h1 style=\"color: #ffffff; margin: 0; font-size: 28px;\">Welcome, ${firstName}! 🎉</h1>\n            </td>\n          </tr>\n          \n          <!-- Content -->\n          <tr>\n            <td style=\"padding: 40px 30px;\">\n              <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0 0 20px 0;\">\n                Hi <strong>${firstName}</strong>,\n              </p>\n              \n              <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0 0 20px 0;\">\n                Thank you for joining us! We're thrilled to have you as part of our community.\n              </p>\n              \n              <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0 0 30px 0;\">\n                Here's what you can do next:\n              </p>\n              \n              <!-- Action Buttons -->\n              <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin-bottom: 30px;\">\n                <tr>\n                  <td style=\"padding: 10px 0;\">\n                    <a href=\"https://yourapp.com/dashboard\" style=\"display: inline-block; background-color: #667eea; color: #ffffff; text-decoration: none; padding: 14px 30px; border-radius: 5px; font-weight: bold; font-size: 16px;\">\n                      📊 Access Your Dashboard\n                    </a>\n                  </td>\n                </tr>\n                <tr>\n                  <td style=\"padding: 10px 0;\">\n                    <a href=\"https://yourapp.com/getting-started\" style=\"display: inline-block; background-color: #48bb78; color: #ffffff; text-decoration: none; padding: 14px 30px; border-radius: 5px; font-weight: bold; font-size: 16px;\">\n                      📚 Getting Started Guide\n                    </a>\n                  </td>\n                </tr>\n                <tr>\n                  <td style=\"padding: 10px 0;\">\n                    <a href=\"https://yourapp.com/support\" style=\"display: inline-block; background-color: #ed8936; color: #ffffff; text-decoration: none; padding: 14px 30px; border-radius: 5px; font-weight: bold; font-size: 16px;\">\n                      💬 Contact Support\n                    </a>\n                  </td>\n                </tr>\n              </table>\n              \n              <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0 0 10px 0;\">\n                Questions? Just reply to this email - we're here to help!\n              </p>\n              \n              <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0;\">\n                Best regards,<br>\n                <strong>The Team</strong>\n              </p>\n            </td>\n          </tr>\n          \n          <!-- Footer -->\n          <tr>\n            <td style=\"background-color: #f7fafc; padding: 20px 30px; text-align: center; border-top: 1px solid #e2e8f0;\">\n              <p style=\"font-size: 12px; color: #718096; margin: 0;\">\n                © 2025 Your Company. All rights reserved.\n              </p>\n            </td>\n          </tr>\n          \n        </table>\n      </td>\n    </tr>\n  </table>\n</body>\n</html>\n    `,\n    timestamp: new Date().toISOString(),\n    status: 'verified',\n    validationScore: validationScore\n  }\n};"
          },
          "typeVersion": 2
        },
        {
          "id": "090efe61-fd58-400b-935b-70291bb3595e",
          "name": "Prepare Correction Email",
          "type": "n8n-nodes-base.code",
          "position": [
            1104,
            176
          ],
          "parameters": {
            "jsCode": "const name = $('Data Sanitization').item.json.name;\nconst email = $('Data Sanitization').item.json.email;\nconst firstName = name.split(' ')[0];\n\n// Get validation reason\nconst validationData = $json;\nconst reason = validationData.deliverability || 'invalid';\n\n// Simple typo detection\nlet suggestion = '';\nconst commonTypos = {\n  'gmial': 'gmail',\n  'gmai': 'gmail',\n  'yahooo': 'yahoo',\n  'yaho': 'yahoo',\n  'hotmial': 'hotmail',\n  'outlok': 'outlook',\n  'outloo': 'outlook'\n};\n\nfor (const [typo, correct] of Object.entries(commonTypos)) {\n  if (email.includes(typo)) {\n    suggestion = email.replace(typo, correct);\n    break;\n  }\n}\n\nreturn {\n  json: {\n    name: name,\n    firstName: firstName,\n    email: email,\n    suggestion: suggestion,\n    reason: reason,\n    subject: `Please verify your email address`,\n    emailBody: `\n<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"UTF-8\">\n</head>\n<body style=\"margin: 0; padding: 0; font-family: Arial, sans-serif; background-color: #f4f4f4;\">\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color: #f4f4f4; padding: 20px;\">\n    <tr>\n      <td align=\"center\">\n        <table width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color: #ffffff; border-radius: 8px; overflow: hidden;\">\n          \n          <!-- Header -->\n          <tr>\n            <td style=\"background-color: #f56565; padding: 30px 20px; text-align: center;\">\n              <h1 style=\"color: #ffffff; margin: 0; font-size: 24px;\">⚠️ Email Verification Issue</h1>\n            </td>\n          </tr>\n          \n          <!-- Content -->\n          <tr>\n            <td style=\"padding: 40px 30px;\">\n              <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0 0 20px 0;\">\n                Hi <strong>${firstName}</strong>,\n              </p>\n              \n              <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0 0 20px 0;\">\n                We attempted to verify your email address but encountered an issue:\n              </p>\n              \n              <div style=\"background-color: #fff5f5; border-left: 4px solid #f56565; padding: 15px; margin: 20px 0;\">\n                <p style=\"margin: 0; color: #742a2a; font-family: monospace;\">\n                  <strong>Email entered:</strong> ${email}\n                </p>\n              </div>\n              \n              ${suggestion ? `\n              <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 20px 0;\">\n                Did you mean: <strong style=\"color: #48bb78;\">${suggestion}</strong>?\n              </p>\n              ` : ''}\n              \n              <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 20px 0;\">\n                Please double-check your email address and try again:\n              </p>\n              \n              <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n                <tr>\n                  <td style=\"padding: 20px 0; text-align: center;\">\n                    <a href=\"https://yourapp.com/signup\" style=\"display: inline-block; background-color: #4299e1; color: #ffffff; text-decoration: none; padding: 14px 40px; border-radius: 5px; font-weight: bold; font-size: 16px;\">\n                      Try Again\n                    </a>\n                  </td>\n                </tr>\n              </table>\n              \n              <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 20px 0;\">\n                Need help? <a href=\"https://yourapp.com/support\" style=\"color: #4299e1;\">Contact our support team</a>.\n              </p>\n              \n              <p style=\"font-size: 16px; line-height: 1.6; color: #333333; margin: 0;\">\n                Best regards,<br>\n                <strong>The Team</strong>\n              </p>\n            </td>\n          </tr>\n          \n          <!-- Footer -->\n          <tr>\n            <td style=\"background-color: #f7fafc; padding: 20px 30px; text-align: center;\">\n              <p style=\"font-size: 12px; color: #718096; margin: 0;\">\n                © 2025 Your Company\n              </p>\n            </td>\n          </tr>\n          \n        </table>\n      </td>\n    </tr>\n  </table>\n</body>\n</html>\n    `,\n    status: 'invalid',\n    timestamp: new Date().toISOString()\n  }\n};"
          },
          "typeVersion": 2
        },
        {
          "id": "3fb1d01c-b57d-4f0d-b160-5ed16f4ff5e5",
          "name": "Team Notification",
          "type": "n8n-nodes-base.slack",
          "position": [
            1968,
            -96
          ],
          "webhookId": "",
          "parameters": {
            "text": "=🎉 *New Verified Signup!*\n👤 *Name:* {{ $('Personalize Welcome Email').item.json.name }}\n📧 *Email:* {{ $('Personalize Welcome Email').item.json.email }}\n⏰ *Time:* {{ $('Personalize Welcome Email').item.json.timestamp }}\n✅ *Status:* Verified & Welcomed",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "list",
              "value": "",
              "cachedResultName": "new-signup"
            },
            "otherOptions": {},
            "authentication": "oAuth2"
          },
          "credentials": {
            "slackOAuth2Api": {
              "id": "credential-id",
              "name": "slackOAuth2Api Credential"
            }
          },
          "typeVersion": 2.3
        },
        {
          "id": "d42409be-e1c4-41e0-8114-4d59aaccea1e",
          "name": "Log Valid Users",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            1536,
            -96
          ],
          "parameters": {
            "columns": {
              "value": {
                "Name": "={{ $('Personalize Welcome Email').item.json.name }}",
                "Email": "={{ $('Personalize Welcome Email').item.json.email }}",
                " Status": "={{ $('Personalize Welcome Email').item.json.status }}",
                "Verified At": "={{ $('Personalize Welcome Email').item.json.timestamp }}",
                "Original Email": "={{ $('Data Sanitization').item.json.original_email }}",
                "Validation Score": "={{ $('Personalize Welcome Email').item.json.validationScore }}"
              },
              "schema": [
                {
                  "id": "Name",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Email",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "Email",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": " Status",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": " Status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Verified At",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Verified At",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Original Email",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Original Email",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Validation Score",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Validation Score",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [
                "Email"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "appendOrUpdate",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "",
              "cachedResultName": "Sheet1"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "",
              "cachedResultName": "Verified Users"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "9e8d198e-2cda-4ff3-8cda-3bfc909444b5",
          "name": "Send Welcome Email",
          "type": "n8n-nodes-base.gmail",
          "position": [
            1328,
            -96
          ],
          "webhookId": "",
          "parameters": {
            "sendTo": "={{ $json.email }}",
            "message": "={{ $json.emailBody }}",
            "options": {},
            "subject": "={{ $json.subject }}"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "04369699-c5d2-4948-96ea-47e74919fe9a",
          "name": "Stop and Error",
          "type": "n8n-nodes-base.stopAndError",
          "position": [
            1472,
            176
          ],
          "parameters": {
            "errorMessage": "\"Invalid email address\""
          },
          "typeVersion": 1
        },
        {
          "id": "b03ea9e9-1f92-4858-b2ae-e39f4ad2fe83",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -752,
            -112
          ],
          "parameters": {
            "color": 7,
            "width": 480,
            "height": 368,
            "content": "## CUSTOMER ONBOARDING EMAIL VERIFICATION WORKFLOW\n\n**Purpose**: Validate **new signups** and send **personalized welcome emails**\n**Owner**: [Your Team]\n**Status**: ✅ Active\n\n**Quick Stats**:\n- Average execution time: **~3-5 seconds**\n- API calls per signup: **1 (email validation)**\n- Success rate target: **>95%**\n\n**Monitor**: Check **Google Sheets** daily\n**Alerts**: **Slack #new-signups channel**"
          },
          "typeVersion": 1
        },
        {
          "id": "528bf108-604f-4242-8b99-1990ea3e682e",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -240,
            -448
          ],
          "parameters": {
            "color": 7,
            "width": 304,
            "height": 576,
            "content": "## WEBHOOK TRIGGER\n\n**Configuration**:\n- Method: **POST**\n- Path: **/new-signup**\n- Authentication: **[None/Basic Auth]**\n\n**Required Fields**:\n```\n{\n  \"name\": \"string\",\n  \"email\": \"string\"\n}\n```\n\n**TIP**: Use **\"Listen for Test Event\"** \n     to debug incoming data structure\n\n**IMPORTANT**: Rate limiting not enabled\n   Consider adding if public-facing"
          },
          "typeVersion": 1
        },
        {
          "id": "b06d93a6-c7d8-4983-8393-f3df19536dda",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            80,
            -480
          ],
          "parameters": {
            "color": 7,
            "width": 304,
            "height": 608,
            "content": "## DATA SANITIZATION\n\n- **Actions**:\n✓ Trim whitespace\n✓ Lowercase email\n✓ Preserve original email\n✓ Add timestamp\n\n**Common Issues**:\n- **\"undefined\" error** → Check webhook data structure\n- Missing fields → Ensure name & email present\n\n**Output Format**:\n```\n{\n  \"name\": \"John Doe\",\n  \"email\": \"johndoe@gmail.com\",\n  \"original_email\": \"JohnDoe@Gmail.com \",\n  \"received_at\": \"2025-10-01T09:07:28.320Z\"\n}\n```"
          },
          "typeVersion": 1
        },
        {
          "id": "99f39f7d-8b0d-49b4-81a7-cc691caba8bb",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            416,
            -416
          ],
          "parameters": {
            "color": 7,
            "width": 256,
            "height": 576,
            "content": "## EMAIL VALIDATION (VerifiEmail)\n\n- Service: **VerifiEmail API**\n\n**Validation Checks**:\n✓ Format validation\n✓ MX records exist\n✓ Disposable domain detection\n✓ Deliverability verification\n\n**Key Response Field**:\n- valid: **true/false (boolean)**\n\nCredentials: https://verifi.email\n\n💡 **Fallback**: If API fails,\n   workflow will error - consider\n   adding error handling"
          },
          "typeVersion": 1
        },
        {
          "id": "878cf3ea-e3e7-4e87-a4e3-6a209497ec1b",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            736,
            -320
          ],
          "parameters": {
            "color": 7,
            "height": 448,
            "content": "## VALIDATION DECISION POINT\n\n**DECISION POINT**\n**Condition**: **$json.valid == true**\n\n✅ **TRUE (~85-90%)**\n→ Welcome email → Sheets → Slack\n\n❌ **FALSE (~10-15%)**\n→ Error message → Stop\n\n💡 Monitor weekly split ratio"
          },
          "typeVersion": 1
        },
        {
          "id": "b9b68238-69ee-4542-ab77-1503382c235d",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1008,
            -432
          ],
          "parameters": {
            "color": 7,
            "width": 272,
            "height": 480,
            "content": "## PERSONALIZE EMAIL\n\n**Template**:\n- **Subject**: \"Welcome, {firstName}! 🎉\"\n- **HTML format (~8KB)**\n\n**Update These**:\n- Company name\n- CTA URLs (yourapp.com/*)\n- Brand colors\n- Footer copyright\n\nData: Name, Email, firstName extracted"
          },
          "typeVersion": 1
        },
        {
          "id": "9d7e44a0-3e33-4e27-9e91-508b1704f6e4",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1488,
            -448
          ],
          "parameters": {
            "color": 7,
            "height": 496,
            "content": "## LOG TO SHEETS\n\n**Operation**: Append or Update\n**Match**: Email (no duplicates)\n\nFields:\n- Name, Email, Status\n- Timestamp, Original Email\n- Validation Score\n\n**Uses**:\n✓ Audit trail\n✓ Marketing list\n✓ Analytics source\n\n**Review weekly for trends**"
          },
          "typeVersion": 1
        },
        {
          "id": "d249ffe4-fb29-4c93-8146-bba14304ff66",
          "name": "Sticky Note7",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1792,
            -384
          ],
          "parameters": {
            "color": 7,
            "width": 304,
            "height": 432,
            "content": "## SLACK ALERT\n\n**Channel**: #new-signup\n\n**Message**:\n🎉 New Verified Signup!\n👤 Name \n📧 Email \n⏰ Time\n\n**Who**: Sales, Marketing, Product\n\n- If >100/day, switch to:\n  - Hourly digest\n  - Daily summary"
          },
          "typeVersion": 1
        },
        {
          "id": "0d82df0e-bcef-478e-a58c-8d0562f40fc0",
          "name": "Sticky Note8",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1408,
            160
          ],
          "parameters": {
            "color": 7,
            "width": 256,
            "height": 480,
            "content": "\n\n\n\n\n\n\n\n\n\n\n## STOP & ERROR\n\n**Error**: **\"Invalid email address\"**\n\n**Result**:\n- Workflow stops\n- Marked as error\n- No email sent\n- Not logged\n\n**BETTER OPTION**:\n- Replace with Send Email node\n- Notify user\n- Log to \"Invalid Attempts\" sheet\n- Graceful UX"
          },
          "typeVersion": 1
        },
        {
          "id": "e76c5aeb-c342-4e9e-81ec-ad9d0330eeab",
          "name": "Sticky Note9",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -704,
            320
          ],
          "parameters": {
            "color": 7,
            "width": 288,
            "height": 384,
            "content": "## MAINTENANCE\n\n📅 WEEKLY:\n□ Check API usage\n□ Review Slack alerts\n□ Test sample signup\n\n📅 MONTHLY:\n□ Update email template\n□ Archive old data\n□ Check Gmail limits\n\n🆘 QUICK FIXES:\n- No emails? → Check Gmail OAuth2\n- Invalid all? → Check VerifiEmail API\n- No Slack? → Verify connection\n- Duplicates? → Check match column"
          },
          "typeVersion": 1
        },
        {
          "id": "f177dd8d-ba9e-4b74-816e-385b34a0da5d",
          "name": "Sticky Note10",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -352,
            320
          ],
          "parameters": {
            "color": 7,
            "width": 304,
            "height": 496,
            "content": "## QUICK REFERENCE\n\n🔗 Links:\n- Webhook: /webhook/new-signup\n- Sheet: Verified Users\n- Slack: #new-signup\n- API: verifi.email\n\n📊 Targets:\n- Success: >95%\n- Time: <5 sec\n- Delivery: >98%\n\n🧪 Test:\n```\ncurl -X POST [webhook] \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\":\"Test\",\"email\":\"test@gmail.com\"}'\n```\n👥 Owner: [Your Name]\n📧 Support: [Email]"
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "f6a13975-f0ea-4d5f-9df3-77b8adbc172b",
      "connections": {
        "Webhook": {
          "main": [
            [
              {
                "node": "Data Sanitization",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Log Valid Users": {
          "main": [
            [
              {
                "node": "Team Notification",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Email Validation": {
          "main": [
            [
              {
                "node": "Validation Decision",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Data Sanitization": {
          "main": [
            [
              {
                "node": "Email Validation",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Send Welcome Email": {
          "main": [
            [
              {
                "node": "Log Valid Users",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Validation Decision": {
          "main": [
            [
              {
                "node": "Personalize Welcome Email",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Prepare Correction Email",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Prepare Correction Email": {
          "main": [
            [
              {
                "node": "Stop and Error",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Personalize Welcome Email": {
          "main": [
            [
              {
                "node": "Send Welcome Email",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 1,
    "workflowInfo": {
      "nodeCount": 21,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 1
        },
        "n8n-nodes-base.code": {
          "count": 3
        },
        "n8n-nodes-base.gmail": {
          "count": 1
        },
        "n8n-nodes-base.slack": {
          "count": 1
        },
        "n8n-nodes-base.webhook": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 11
        },
        "n8n-nodes-base.googleSheets": {
          "count": 1
        },
        "n8n-nodes-base.stopAndError": {
          "count": 1
        },
        "n8n-nodes-verifiemail.verifiEmail": {
          "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": 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": 40,
        "icon": "file:slack.svg",
        "name": "n8n-nodes-base.slack",
        "codex": {
          "data": {
            "alias": [
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "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/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/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "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/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/slack/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Slack"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Slack",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "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": 528,
        "icon": "fa:exclamation-triangle",
        "name": "n8n-nodes-base.stopAndError",
        "codex": {
          "data": {
            "alias": [
              "Throw error",
              "Error",
              "Exception"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.stopanderror/"
                }
              ]
            },
            "categories": [
              "Core Nodes",
              "Utility"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Stop and Error",
          "color": "#ff0000"
        },
        "iconData": {
          "icon": "exclamation-triangle",
          "type": "icon"
        },
        "displayName": "Stop and Error",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 7,
            "name": "Utility"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "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": 38,
        "name": "Lead Nurturing"
      }
    ],
    "image": []
  }
}