{
  "name": "Extract business contact leads from Google Maps with RapidAPI and Google Sheets",
  "nodes": [
    {
      "id": "a4df4dee-6fda-4051-99d0-63824e197820",
      "name": "Start Lead Generation",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -360,
        -320
      ]
    },
    {
      "id": "51c45a00-0d87-4ff0-836c-5354e332f802",
      "name": "Configure Search Parameters",
      "type": "n8n-nodes-base.set",
      "position": [
        1100,
        -300
      ]
    },
    {
      "id": "e6385c2d-4f61-495a-93ab-766541fa4579",
      "name": "Google Maps API Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1460,
        -300
      ]
    },
    {
      "id": "5ddb7eca-5989-4572-9ef6-d7f74f566b33",
      "name": "Parse Business Data",
      "type": "n8n-nodes-base.code",
      "position": [
        1800,
        -300
      ]
    },
    {
      "id": "e88dbb0c-d2d6-4a3b-a4c1-0862a2755f4a",
      "name": "Load Search Criteria",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        80,
        -540
      ]
    },
    {
      "id": "c7deb7f2-0df6-4929-9996-7e17bc6c493a",
      "name": "Process Each Location",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        740,
        -320
      ]
    },
    {
      "id": "932ee9e5-1924-4fa1-b7ed-b76817d8d1a0",
      "name": "Save New Leads",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2100,
        -300
      ]
    },
    {
      "id": "8a36189b-b07f-4af1-bc55-f0c835251927",
      "name": "Rate Limit Delay",
      "type": "n8n-nodes-base.wait",
      "position": [
        2100,
        -20
      ]
    },
    {
      "id": "53044569-b459-4825-8ce5-a82c2d80fb45",
      "name": "Load Existing Leads",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        60,
        -40
      ]
    },
    {
      "id": "511e0baf-8741-431f-9c88-b2e2237b9ebb",
      "name": "Filter New Searches",
      "type": "n8n-nodes-base.merge",
      "position": [
        440,
        -320
      ]
    },
    {
      "id": "73efc100-3000-4936-a67b-30bdde13ba7d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -840,
        -520
      ],
      "parameters": {
        "width": 400,
        "height": 620,
        "content": "# Google Maps Lead Generation Workflow\n\n## 🎯 **Overview**\nThis workflow extracts business leads from Google Maps with contact information and stores them in Google Sheets with intelligent duplicate pr"
      }
    },
    {
      "id": "45ee9c11-3bf7-44dc-8359-cedf43e7c100",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -280,
        -940
      ],
      "parameters": {
        "width": 350,
        "height": 400,
        "content": "## 📊 **INPUT DATA STRUCTURE**\n\n**keyword_searches** sheet columns:\n```\n| select | query | lat | lon | country_iso_code |\n|--------|-------|-----|-----|------------------|\n| X | Restaurants Madrid | 40"
      }
    },
    {
      "id": "96e90ea0-93e3-4f95-a51a-1d37c17c4476",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        340,
        -740
      ],
      "parameters": {
        "width": 320,
        "height": 740,
        "content": "## 🔄 **DUPLICATE PREVENTION**\n\nThis workflow has **2-level duplicate prevention:**\n\n**Level 1: Search Level**\n- Compares new queries with existing data\n- Skips queries already processed\n- Saves API co"
      }
    },
    {
      "id": "a31ffc0b-2bdd-419c-97b9-583af5b91e3a",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        -520
      ],
      "parameters": {
        "width": 320,
        "height": 200,
        "content": "## ⚙️ **API CONFIGURATION**\n\n**Search Parameters:**\n- **Limit**: 100 results max per query\n- **Zoom**: 13 (city-wide) to 18 (local)\n- **Language**: EN, ES, FR, etc.\n- **Extract Contacts**: Always enab"
      }
    },
    {
      "id": "20ddcaad-738a-4bed-93ff-c7a044c3fc21",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1420,
        -720
      ],
      "parameters": {
        "width": 540,
        "height": 400,
        "content": "## 📱 **EXTRACTED DATA**\n\n**Business Information:**\n- Name, address, phone, website\n- Rating, reviews, verification status\n- Business type, price level\n\n**Contact Details:**\n- Email addresses\n- LinkedI"
      }
    },
    {
      "id": "20ccaa92-bf61-4f75-a81b-d6b1e0f550b5",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2160,
        -660
      ],
      "parameters": {
        "width": 350,
        "height": 340,
        "content": "## 📈 **EXECUTION FLOW**\n\n**1.** Load search criteria (marked with X)\n**2.** Load existing leads for comparison\n**3.** Filter out already processed searches\n**4.** Loop through each new search\n**5.** C"
      }
    }
  ],
  "connections": {
    "Save New Leads": {
      "main": [
        [
          {
            "node": "Rate Limit Delay",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rate Limit Delay": {
      "main": [
        [
          {
            "node": "Process Each Location",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter New Searches": {
      "main": [
        [
          {
            "node": "Process Each Location",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Load Existing Leads": {
      "main": [
        [
          {
            "node": "Filter New Searches",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Parse Business Data": {
      "main": [
        [
          {
            "node": "Save New Leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Load Search Criteria": {
      "main": [
        [
          {
            "node": "Filter New Searches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Each Location": {
      "main": [
        [],
        [
          {
            "node": "Configure Search Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Start Lead Generation": {
      "main": [
        [
          {
            "node": "Load Search Criteria",
            "type": "main",
            "index": 0
          },
          {
            "node": "Load Existing Leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Maps API Request": {
      "main": [
        [
          {
            "node": "Parse Business Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Configure Search Parameters": {
      "main": [
        [
          {
            "node": "Google Maps API Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}