{
  "name": "Discover local business leads and run AI-powered cold email sequences with Google Maps and Gmail",
  "nodes": [
    {
      "id": "610f4b5e-b883-49e1-a89f-3038c710a118",
      "name": "Stop and Error1",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        3408,
        2688
      ]
    },
    {
      "id": "7a36b46c-dd48-431d-8b09-161da8d69b28",
      "name": "Update Status to Success",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2608,
        3120
      ]
    },
    {
      "id": "488670dd-498f-486c-9a57-23403095188c",
      "name": "Stop and Error",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        3408,
        3120
      ]
    },
    {
      "id": "45a95e8c-f478-4ace-816c-f6d3f05f6847",
      "name": "Stop and Error2",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        3408,
        2896
      ]
    },
    {
      "id": "4fe4e969-57ac-4f43-9b77-8ec757db5438",
      "name": "Get Status",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2608,
        2896
      ]
    },
    {
      "id": "839f3d83-1354-477e-b149-034069c9143e",
      "name": "Get row(s) in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -464,
        3600
      ]
    },
    {
      "id": "7b43b639-4cce-4289-b718-cc0f7789741f",
      "name": "Update row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        656,
        3600
      ]
    },
    {
      "id": "52ce659b-e0aa-46cf-b654-023b85ea807a",
      "name": "Get row(s) in sheet1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1568,
        3552
      ]
    },
    {
      "id": "7cc03b90-133d-4ca2-937f-12295eef351d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -944,
        3504
      ],
      "parameters": {
        "width": 1920,
        "height": 320,
        "content": "## Email Writer (Intro + Follow Up 1 + Follow Up 2)"
      }
    },
    {
      "id": "913f34f4-1f97-4720-afac-c1a41a0ac9a1",
      "name": "Get row(s) in sheet4",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3520,
        3584
      ]
    },
    {
      "id": "2e1717d7-4e10-4db5-8a36-70d416e556f8",
      "name": "Get row(s) in sheet5",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1520,
        4112
      ]
    },
    {
      "id": "3b83eafc-ebaf-49cd-aaa3-d965d124b45c",
      "name": "Update row in sheet3",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2736,
        4112
      ]
    },
    {
      "id": "f07823fd-fd84-425f-98b9-17a0f889dd28",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1072,
        3472
      ],
      "parameters": {
        "width": 1904,
        "height": 352,
        "content": "## Intro Mail Send"
      }
    },
    {
      "id": "23dbb356-8889-489b-a3aa-70a0c96c3ffd",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3056,
        3488
      ],
      "parameters": {
        "width": 1904,
        "height": 336,
        "content": "## Follow Up 1 Mail Send"
      }
    },
    {
      "id": "05bb4778-419b-4c41-8ae5-f6f9950e8d32",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1072,
        4000
      ],
      "parameters": {
        "width": 1904,
        "height": 336,
        "content": "## Follow Up 2 Mail Send"
      }
    },
    {
      "id": "c8443840-3fbe-4823-8d54-a3987ad6e5ea",
      "name": "Settings",
      "type": "n8n-nodes-base.set",
      "position": [
        864,
        2384
      ]
    },
    {
      "id": "30947e7d-836e-4ebf-820e-4b181ebc814f",
      "name": "Get Zip Codes",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1056,
        2384
      ]
    },
    {
      "id": "fdb0dce3-2873-4221-8d7a-12bdb9023cc9",
      "name": "Zips",
      "type": "n8n-nodes-base.set",
      "position": [
        1264,
        2384
      ]
    },
    {
      "id": "4a5a8a75-1e28-419f-aa57-9877dcbcfac9",
      "name": "Filter Zips",
      "type": "n8n-nodes-base.filter",
      "position": [
        1456,
        2384
      ]
    },
    {
      "id": "7ecc5210-4ff7-453c-ae17-93f976ddd9ba",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1648,
        2384
      ]
    },
    {
      "id": "902d0aca-bd6c-49c1-8578-134d90236116",
      "name": "Get Category",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2128,
        2496
      ]
    },
    {
      "id": "30ae9253-1a34-49bf-8c20-94f49e4766d9",
      "name": "Set Zip",
      "type": "n8n-nodes-base.set",
      "position": [
        2736,
        2416
      ]
    },
    {
      "id": "2e336d7b-5001-459b-8dd8-d425e448c616",
      "name": "Loop Subcats",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        704,
        2944
      ]
    },
    {
      "id": "595ac616-6b61-4410-af61-7c29e26050ea",
      "name": "Set Zip1",
      "type": "n8n-nodes-base.set",
      "position": [
        880,
        2944
      ]
    },
    {
      "id": "97767fb6-1a01-492d-aade-e4e9b626b64b",
      "name": "GMaps API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1088,
        2944
      ]
    },
    {
      "id": "fdfe9ea7-1c9a-49c6-b43a-5c2d3f684ca0",
      "name": "Scrape URL",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1680,
        2944
      ]
    },
    {
      "id": "1784f246-0b31-4270-a4f4-c9a2855163a4",
      "name": "Add rows in Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2608,
        2688
      ]
    },
    {
      "id": "6311bb94-4b95-420b-9a58-ab51bb2c9cf7",
      "name": "Email Writer",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        336,
        3600
      ]
    },
    {
      "id": "56cdb48b-1ed4-4f8d-97a5-9d96832740f0",
      "name": "Send Intro Mail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2320,
        3552
      ]
    },
    {
      "id": "f2d5bc92-f7ec-4b8e-b1b3-4bad71ac2399",
      "name": "Update Row with all Follow Up Mail Dates",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2720,
        3552
      ]
    },
    {
      "id": "e40cca03-2199-442b-8cc1-fb3e7d08364c",
      "name": "Update row with follow up status 1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        4720,
        3584
      ]
    },
    {
      "id": "f9c82f3d-873a-4899-bc1e-0e7168aabcef",
      "name": "Follow Up Mail 2",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2480,
        4112
      ]
    },
    {
      "id": "7984984d-fa9a-4c58-8527-617055801a6f",
      "name": "Follow Up Mail 1",
      "type": "n8n-nodes-base.gmail",
      "position": [
        4464,
        3584
      ]
    },
    {
      "id": "4bd71216-51ca-4564-9bad-aea0381078f3",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -416,
        2544
      ],
      "parameters": {
        "width": 704,
        "height": 560,
        "content": "## How it works\n\nThis workflow automatically finds local business leads from Google Maps, extracts contact emails from their websites, generates personalized cold emails using AI, and sends a complete"
      }
    },
    {
      "id": "5c00ca6c-f081-47f4-98db-e12265ff6894",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        2224
      ],
      "parameters": {
        "width": 3120,
        "height": 1120,
        "content": "## Lead Generation through GMaps API"
      }
    },
    {
      "id": "43a2097b-4cd2-4059-8fef-f0016d758556",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3728,
        2336
      ],
      "parameters": {
        "width": 704,
        "height": 880,
        "content": "## How to run\n\n1. Go to Google Sheets and open the sheet named **Zips**.  \n   Add the locations you want to scrape, for example:  \n   - 600001  \n   - Anna Nagar, Chennai, Tamil Nadu  \n   You can add m"
      }
    },
    {
      "id": "588f761d-0f99-46bc-a9b4-87107100b8be",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        848,
        2816
      ],
      "parameters": {
        "width": 400,
        "height": 320,
        "content": "## Lead discovery\n\nReads ZIP codes and business categories from Google Sheets, then queries Google Maps to find matching local businesses.\n"
      }
    },
    {
      "id": "95bd805c-fe4d-4a2e-811c-2f60a0ada235",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1616,
        2800
      ],
      "parameters": {
        "width": 400,
        "height": 304,
        "content": "## Website scraping\n\nVisits each business website and extracts public email addresses from the page content.\n"
      }
    },
    {
      "id": "26b0a005-b827-4112-a9d5-a1d0f9a72965",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2544,
        2592
      ],
      "parameters": {
        "width": 416,
        "height": 736,
        "content": "## Lead storage\nSaves cleaned lead data (name, email, phone, rating, website) into the Results sheet.\n"
      }
    },
    {
      "id": "5941c7e4-b6b2-420f-a553-f4c3cd60e4cc",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        320,
        3504
      ],
      "parameters": {
        "width": 544,
        "height": 272,
        "content": "## AI email generation\nGenerates personalized intro and follow-up emails using business data and categories.\n"
      }
    },
    {
      "id": "e5320358-5f56-4c47-ab50-33f7764783b4",
      "name": "Trigger: Generate AI Emails",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -752,
        3600
      ]
    },
    {
      "id": "a533433c-05db-4444-aac5-8134856f26d8",
      "name": "Trigger: Send Intro Emails",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        1280,
        3552
      ]
    },
    {
      "id": "da1371dd-8c12-4579-a047-012fdc2c361b",
      "name": "Trigger: Send Follow Up 1",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        3232,
        3584
      ]
    },
    {
      "id": "6462fbc9-34ac-4f75-99d0-a97929667d9a",
      "name": "Trigger: Send Follow Up 2",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        1248,
        4112
      ]
    },
    {
      "id": "0afa0e56-6e7a-40fe-9944-14a24a59c502",
      "name": "Trigger: Lead Scraping (GMaps)",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        656,
        2384
      ]
    },
    {
      "id": "14117d9c-8a3a-4785-bd56-22d47afe4f12",
      "name": "Check: Intro Mail Empty",
      "type": "n8n-nodes-base.if",
      "position": [
        -208,
        3600
      ]
    },
    {
      "id": "99a547b1-7a37-4afc-9e64-6f0c578f49c3",
      "name": "Check: Intro Ready & Not Sent",
      "type": "n8n-nodes-base.if",
      "position": [
        1776,
        3552
      ]
    },
    {
      "id": "77cbd659-1045-4b6a-858b-ab16c9c24605",
      "name": "Check: Follow Up 1 Due",
      "type": "n8n-nodes-base.if",
      "position": [
        3728,
        3584
      ]
    },
    {
      "id": "5d1e1dfd-8f4f-480d-8b38-96d9efb3e513",
      "name": "Check: Follow Up 2 Due",
      "type": "n8n-nodes-base.if",
      "position": [
        1744,
        4112
      ]
    },
    {
      "id": "def66968-912d-4625-9f31-4d0f7f41cab7",
      "name": "Check: GMaps Result Empty",
      "type": "n8n-nodes-base.if",
      "position": [
        1280,
        2944
      ]
    },
    {
      "id": "dbb1f66e-69e3-411a-881c-5906c8acbaeb",
      "name": "Check: Email Found",
      "type": "n8n-nodes-base.if",
      "position": [
        2080,
        2944
      ]
    },
    {
      "id": "65151b50-2695-4295-bb4d-7963cfff411f",
      "name": "Check: Retry Limit (Sheet Update)",
      "type": "n8n-nodes-base.if",
      "position": [
        3216,
        3120
      ]
    },
    {
      "id": "7ce53892-7626-427c-91b8-354c9c44bf51",
      "name": "Check: Retry Limit (Add Rows)",
      "type": "n8n-nodes-base.if",
      "position": [
        3216,
        2688
      ]
    },
    {
      "id": "b6d7bde5-1f6d-4d4f-b057-5df21d869231",
      "name": "Check: Retry Limit (Get Status)",
      "type": "n8n-nodes-base.if",
      "position": [
        3216,
        2896
      ]
    },
    {
      "id": "bf72fe4b-e03b-4501-b08c-0808673f7d4a",
      "name": "Wait: Backoff Before Retry (Add Rows)",
      "type": "n8n-nodes-base.wait",
      "position": [
        3008,
        2688
      ]
    },
    {
      "id": "0d5159da-3649-4e39-b09a-28acc9673f69",
      "name": "Wait: Backoff Before Retry (Get Status)",
      "type": "n8n-nodes-base.wait",
      "position": [
        3008,
        2896
      ]
    },
    {
      "id": "b99180a3-7e34-4873-b3ac-53fc447adf9f",
      "name": "Wait: Backoff Before Retry (Update Status)",
      "type": "n8n-nodes-base.wait",
      "position": [
        3008,
        3120
      ]
    },
    {
      "id": "ba0641c4-a354-43ba-b6bb-7b35849c1187",
      "name": "Build Zip × Category Matrix",
      "type": "n8n-nodes-base.code",
      "position": [
        2544,
        2416
      ]
    },
    {
      "id": "e331a1fb-581c-4fcb-bb48-d4da4c5974db",
      "name": "Calc Retry Delay (Add Rows)",
      "type": "n8n-nodes-base.code",
      "position": [
        2816,
        2688
      ]
    },
    {
      "id": "b6dc2f5d-71c4-4ed8-bca2-7afc36cd4571",
      "name": "Calc Retry Delay (Update Status)",
      "type": "n8n-nodes-base.code",
      "position": [
        2816,
        3120
      ]
    },
    {
      "id": "68a96da3-8de8-4b4c-aafb-0f77b1ffd387",
      "name": "Calc Retry Delay (Get Status)",
      "type": "n8n-nodes-base.code",
      "position": [
        2816,
        2896
      ]
    },
    {
      "id": "cbc869d8-c92b-42d0-8d84-963164a67f4a",
      "name": "Split Places Array",
      "type": "n8n-nodes-base.code",
      "position": [
        1488,
        2944
      ]
    },
    {
      "id": "e11bad16-2550-4fe2-9432-27d20b0a8698",
      "name": "Extract Emails From Website",
      "type": "n8n-nodes-base.code",
      "position": [
        1872,
        2944
      ]
    },
    {
      "id": "97c61d2c-23de-43dc-b90e-50a1f020525e",
      "name": "Check Follow Up 1 Date",
      "type": "n8n-nodes-base.code",
      "position": [
        4240,
        3584
      ]
    },
    {
      "id": "20b156c9-e10b-458e-a082-582dbcac93ab",
      "name": "Check Follow Up 2 Date",
      "type": "n8n-nodes-base.code",
      "position": [
        2256,
        4112
      ]
    },
    {
      "id": "59dc95f3-9a31-45fd-a86d-0e71e3f09470",
      "name": "Generate Follow Up Dates",
      "type": "n8n-nodes-base.code",
      "position": [
        2528,
        3552
      ]
    },
    {
      "id": "9abdef30-5701-43a4-9fcb-8c8b366027b8",
      "name": "Limit: Zips Per Run",
      "type": "n8n-nodes-base.limit",
      "position": [
        1840,
        2384
      ]
    },
    {
      "id": "0a983063-3545-4b44-b3f1-92e5abe7eec9",
      "name": "Map Zip Field",
      "type": "n8n-nodes-base.set",
      "position": [
        2128,
        2352
      ]
    },
    {
      "id": "e9aa4fda-6d88-4aa0-b673-ecc296dad94c",
      "name": "Merge Zips & Categories",
      "type": "n8n-nodes-base.merge",
      "position": [
        2336,
        2416
      ]
    },
    {
      "id": "a57bed18-2de2-443e-b2c4-0a6a003e5501",
      "name": "Loop: Generate AI Emails",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        64,
        3584
      ]
    },
    {
      "id": "9d8e3003-9db2-40f0-ac19-7ae176937dc1",
      "name": "Loop: Send Follow Up 1",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        4000,
        3568
      ]
    },
    {
      "id": "c765c94b-ef11-484f-93eb-77e730b6c060",
      "name": "Loop: Send Follow Up 2",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1968,
        4096
      ]
    },
    {
      "id": "7cb0b910-6588-46e2-bc65-3063ad01474c",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        832,
        2288
      ],
      "parameters": {
        "width": 1664,
        "height": 384,
        "content": "## Lead discovery\n\nReads ZIP codes and business categories from Google Sheets, then queries Google Maps to find matching local businesses.\n"
      }
    },
    {
      "id": "018d0d08-5a8a-493e-8db3-90cc3077ca67",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2240,
        3472
      ],
      "parameters": {
        "width": 672,
        "height": 272,
        "content": "## Intro send\nSends first outreach email and stores message ID.\n"
      }
    },
    {
      "id": "7f24779c-8609-4e0a-8101-da3c0be67499",
      "name": "Loop: Send Intro Emails",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        2048,
        3536
      ]
    },
    {
      "id": "9fe45cba-8440-471b-9364-55d7167adbee",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4192,
        3504
      ],
      "parameters": {
        "width": 672,
        "height": 272,
        "content": "## Follow up 1\nReplies to intro email after 7 days.\n"
      }
    },
    {
      "id": "4375ab38-7cd9-4f7e-b02a-630ec3967637",
      "name": "Sticky Note14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2208,
        4032
      ],
      "parameters": {
        "width": 672,
        "height": 272,
        "content": "## Follow up 2\nFinal reply after 11 days.\n"
      }
    },
    {
      "id": "65d56998-b334-4aae-9b3f-44627bf09a6b",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2960,
        2592
      ],
      "parameters": {
        "width": 592,
        "height": 736,
        "content": "## Rate limit handling\nPrevents Google Sheets API limits using\nexponential backoff and retries.\n"
      }
    }
  ],
  "connections": {
    "Zips": {
      "main": [
        [
          {
            "node": "Filter Zips",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Zip": {
      "main": [
        [
          {
            "node": "Loop Subcats",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Zip1": {
      "main": [
        [
          {
            "node": "GMaps API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Settings": {
      "main": [
        [
          {
            "node": "Get Zip Codes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GMaps API": {
      "main": [
        [
          {
            "node": "Check: GMaps Result Empty",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Limit: Zips Per Run",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Status": {
      "main": [
        [
          {
            "node": "Update Status to Success",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Calc Retry Delay (Get Status)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape URL": {
      "main": [
        [
          {
            "node": "Extract Emails From Website",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Zips": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Email Writer": {
      "main": [
        [
          {
            "node": "Update row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Category": {
      "main": [
        [
          {
            "node": "Merge Zips & Categories",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Loop Subcats": {
      "main": [
        [],
        [
          {
            "node": "Set Zip1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Zip Codes": {
      "main": [
        [
          {
            "node": "Zips",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map Zip Field": {
      "main": [
        [
          {
            "node": "Merge Zips & Categories",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Intro Mail": {
      "main": [
        [
          {
            "node": "Generate Follow Up Dates",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Follow Up Mail 1": {
      "main": [
        [
          {
            "node": "Update row with follow up status 1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Follow Up Mail 2": {
      "main": [
        [
          {
            "node": "Update row in sheet3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check: Email Found": {
      "main": [
        [
          {
            "node": "Add rows in Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Places Array": {
      "main": [
        [
          {
            "node": "Scrape URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet": {
      "main": [
        [
          {
            "node": "Check: Intro Mail Empty",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit: Zips Per Run": {
      "main": [
        [
          {
            "node": "Map Zip Field",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get Category",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update row in sheet": {
      "main": [
        [
          {
            "node": "Loop: Generate AI Emails",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet1": {
      "main": [
        [
          {
            "node": "Check: Intro Ready & Not Sent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet4": {
      "main": [
        [
          {
            "node": "Check: Follow Up 1 Due",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet5": {
      "main": [
        [
          {
            "node": "Check: Follow Up 2 Due",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update row in sheet3": {
      "main": [
        [
          {
            "node": "Loop: Send Follow Up 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Follow Up 1 Date": {
      "main": [
        [
          {
            "node": "Follow Up Mail 1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Follow Up 2 Date": {
      "main": [
        [
          {
            "node": "Follow Up Mail 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check: Follow Up 1 Due": {
      "main": [
        [
          {
            "node": "Loop: Send Follow Up 1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check: Follow Up 2 Due": {
      "main": [
        [
          {
            "node": "Loop: Send Follow Up 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop: Send Follow Up 1": {
      "main": [
        [],
        [
          {
            "node": "Check Follow Up 1 Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop: Send Follow Up 2": {
      "main": [
        [],
        [
          {
            "node": "Check Follow Up 2 Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check: Intro Mail Empty": {
      "main": [
        [
          {
            "node": "Loop: Generate AI Emails",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop: Send Intro Emails": {
      "main": [
        [],
        [
          {
            "node": "Send Intro Mail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Zips & Categories": {
      "main": [
        [
          {
            "node": "Build Zip × Category Matrix",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Follow Up Dates": {
      "main": [
        [
          {
            "node": "Update Row with all Follow Up Mail Dates",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop: Generate AI Emails": {
      "main": [
        [],
        [
          {
            "node": "Email Writer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Status to Success": {
      "main": [
        [
          {
            "node": "Loop Subcats",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Calc Retry Delay (Update Status)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add rows in Google Sheets": {
      "main": [
        [
          {
            "node": "Get Status",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Calc Retry Delay (Add Rows)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check: GMaps Result Empty": {
      "main": [
        [
          {
            "node": "Loop Subcats",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Split Places Array",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger: Send Follow Up 1": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger: Send Follow Up 2": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger: Send Intro Emails": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calc Retry Delay (Add Rows)": {
      "main": [
        [
          {
            "node": "Wait: Backoff Before Retry (Add Rows)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Emails From Website": {
      "main": [
        [
          {
            "node": "Check: Email Found",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger: Generate AI Emails": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build Zip × Category Matrix": {
      "main": [
        [
          {
            "node": "Set Zip",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calc Retry Delay (Get Status)": {
      "main": [
        [
          {
            "node": "Wait: Backoff Before Retry (Get Status)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check: Intro Ready & Not Sent": {
      "main": [
        [
          {
            "node": "Loop: Send Intro Emails",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check: Retry Limit (Add Rows)": {
      "main": [
        [
          {
            "node": "Stop and Error1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Add rows in Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger: Lead Scraping (GMaps)": {
      "main": [
        [
          {
            "node": "Settings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check: Retry Limit (Get Status)": {
      "main": [
        [
          {
            "node": "Stop and Error2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calc Retry Delay (Update Status)": {
      "main": [
        [
          {
            "node": "Wait: Backoff Before Retry (Update Status)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check: Retry Limit (Sheet Update)": {
      "main": [
        [
          {
            "node": "Stop and Error",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Update Status to Success",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update row with follow up status 1": {
      "main": [
        [
          {
            "node": "Loop: Send Follow Up 1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait: Backoff Before Retry (Add Rows)": {
      "main": [
        [
          {
            "node": "Check: Retry Limit (Add Rows)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait: Backoff Before Retry (Get Status)": {
      "main": [
        [
          {
            "node": "Check: Retry Limit (Get Status)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Row with all Follow Up Mail Dates": {
      "main": [
        [
          {
            "node": "Loop: Send Intro Emails",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait: Backoff Before Retry (Update Status)": {
      "main": [
        [
          {
            "node": "Check: Retry Limit (Sheet Update)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}