{
  "name": "Email list validation and cleanup with Google Sheets and VerifiEmail",
  "nodes": [
    {
      "id": "5d8be98a-8a42-41a7-8ec6-7c27c6e0d4ed",
      "name": "Webhook - Receive Email Batch",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -1024,
        112
      ]
    },
    {
      "id": "a765ac5c-eea4-40cb-95c6-301136ca2451",
      "name": "Verifi Email",
      "type": "n8n-nodes-verifiemail.verifiEmail",
      "position": [
        -192,
        112
      ]
    },
    {
      "id": "dfc27fb8-83f9-4c33-93f9-72873c78a975",
      "name": "Extract Inputs",
      "type": "n8n-nodes-base.function",
      "position": [
        -848,
        112
      ]
    },
    {
      "id": "e566695e-c02f-4021-961d-fe09a05b2460",
      "name": "Fetch Subscribers",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -672,
        112
      ]
    },
    {
      "id": "f15ef094-746d-4e52-bf60-bb20939de377",
      "name": "Normalize Subscriber",
      "type": "n8n-nodes-base.code",
      "position": [
        -432,
        112
      ]
    },
    {
      "id": "d1428247-0b5c-491f-83f5-4b16b853a4e0",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        -48,
        304
      ]
    },
    {
      "id": "63644ab4-5ea9-46b8-bbb5-b7678b87070a",
      "name": "Classify Email",
      "type": "n8n-nodes-base.code",
      "position": [
        96,
        112
      ]
    },
    {
      "id": "e679f3b6-514c-4532-8c48-a3b254029ad8",
      "name": "Should Remove?",
      "type": "n8n-nodes-base.if",
      "position": [
        352,
        112
      ]
    },
    {
      "id": "7c930aac-e59c-4366-a5f9-c1e9fa638a18",
      "name": "Delete rows or columns from sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        576,
        16
      ]
    },
    {
      "id": "77f3f872-250f-4d9c-a737-b4e84d50c6b0",
      "name": "Append Clean Emails",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        576,
        192
      ]
    },
    {
      "id": "331398e6-fab0-4da8-bf51-6b2af319123c",
      "name": "Success response",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        896,
        128
      ]
    },
    {
      "id": "8367421e-030a-4b51-bc33-8e371923e034",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1408,
        -304
      ],
      "parameters": {
        "width": 288,
        "height": 256,
        "content": "## **How It Works**\n\n**EMAIL CLEANER – AUTOMATED**\n• Reads subscribers from Google Sheets\n• Normalizes + validates email\n• Flags disposable/invalid domains\n• Removes bad entries, keeps good ones\n• Wri"
      }
    },
    {
      "id": "0022bafe-53f4-4ac5-8f03-a8a04f6c231a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1376,
        0
      ],
      "parameters": {
        "width": null,
        "height": 256,
        "content": "## **Setup**\n\n**REQUIRED CREDENTIALS**\n• Google Sheets (read/delete/append)\n• VerifiEmail API at verifi.email\n**Before running:**\n• Confirm sheet name\n• Confirm column structure\n• Update tag rules if "
      }
    },
    {
      "id": "53c61121-bda7-48d5-9603-c95870f221a6",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -480,
        -64
      ],
      "parameters": {
        "width": 432,
        "height": 320,
        "content": "# **Validation**\n\n**PRE-CHECKS**\n• Normalize subscriber data\n• Validate email health (MX + disposable)\n• Mark each email with action → keep/remove\n"
      }
    },
    {
      "id": "c4742c6e-20f5-4a10-a7d8-4a19241bd72e",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        -48
      ],
      "parameters": {
        "width": 304,
        "height": 288,
        "content": "# **Classification**\n\n**LOGIC**\n• remove → disposable / invalid / role\n• keep → valid + active\n• tag → special rule (optional)"
      }
    },
    {
      "id": "03d4b8e5-590a-4b46-a741-08e692a3a701",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        496,
        -176
      ],
      "parameters": {
        "width": 320,
        "height": 512,
        "content": "# **Cleanup**\n\n**ACTIONS**\n• remove → delete row\n• keep → append to CleanSubscribers\n• Preserves row_number + metadata"
      }
    },
    {
      "id": "0ec235c1-9150-45b5-a22b-b8b2df96a768",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        848,
        -32
      ],
      "parameters": {
        "width": 272,
        "height": 288,
        "content": "# **Response**\n\n**WEBHOOK OUTPUT**\n• Returns: email, action, status\n• Clean JSON summary for Postman\n\n"
      }
    },
    {
      "id": "1f869416-2c93-45d7-a17d-256561289c20",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1072,
        -80
      ],
      "parameters": {
        "width": 528,
        "height": 336,
        "content": "# **Intake & Extraction**\n\n• Receives cleanup request via Webhook\n• Extracts listId, priority, run notes & options\n• Loads subscriber rows from Google Sheets\n• Provides row_number, email, name, tags, "
      }
    }
  ],
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Classify Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Verifi Email": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Classify Email": {
      "main": [
        [
          {
            "node": "Should Remove?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Inputs": {
      "main": [
        [
          {
            "node": "Fetch Subscribers",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Should Remove?": {
      "main": [
        [
          {
            "node": "Delete rows or columns from sheet",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Append Clean Emails",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Subscribers": {
      "main": [
        [
          {
            "node": "Normalize Subscriber",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append Clean Emails": {
      "main": [
        [
          {
            "node": "Success response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Normalize Subscriber": {
      "main": [
        [
          {
            "node": "Verifi Email",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Webhook - Receive Email Batch": {
      "main": [
        [
          {
            "node": "Extract Inputs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delete rows or columns from sheet": {
      "main": [
        [
          {
            "node": "Success response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}