{
  "name": "Google Maps business scraper & lead enricher with Bright Data & Google Gemini",
  "nodes": [
    {
      "id": "4b4d84f7-dfc4-4b9e-8e43-ce02ac282e3e",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -320,
        -20
      ]
    },
    {
      "id": "6a4375de-d7f8-4973-9cce-53aee11765ed",
      "name": "Set input fields",
      "type": "n8n-nodes-base.set",
      "position": [
        -60,
        -20
      ]
    },
    {
      "id": "6205bdfc-5b31-44cd-8b9c-37de800e8a63",
      "name": "Perform Bright Data Web Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        180,
        -20
      ]
    },
    {
      "id": "85c38904-c3d8-4ec1-80f3-5d06a12ba53c",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        400,
        160
      ]
    },
    {
      "id": "f53c2c94-5ff7-49e0-a72d-d40b0504b59f",
      "name": "Google Maps Data Extractor",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        400,
        -20
      ]
    },
    {
      "id": "5b849d5c-da41-489b-b2df-2a6e6c9eee40",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        580,
        160
      ]
    },
    {
      "id": "8fa11221-0bae-498d-9f29-c6147740909c",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        60,
        -440
      ],
      "parameters": {
        "width": 440,
        "height": 240,
        "content": "## LLM Usages\n\nGoogle Gemini LLM is being utilized for the structured data extraction handling."
      }
    },
    {
      "id": "11884d28-95bc-48ea-b1c8-847f33425a8b",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        -800
      ],
      "parameters": {
        "width": 400,
        "height": 340,
        "content": "## Logo\n\n\n![logo](https://images.seeklogo.com/logo-png/43/1/brightdata-logo-png_seeklogo-439974.png)\n"
      }
    },
    {
      "id": "c692962a-4910-46e5-991b-2202b90e7572",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        -440
      ],
      "parameters": {
        "width": 400,
        "height": 240,
        "content": "## Note\n\nDeals with the Google Maps data extraction by utilizing the Bright Data and Google Gemini LLM for transforming the profile into a structured JSON response.\n\n**Please make sure to set the inpu"
      }
    },
    {
      "id": "7109a239-d8d0-4399-bd7a-1c1eb0d9a333",
      "name": "Create a binary data for Structured Data Extract",
      "type": "n8n-nodes-base.function",
      "position": [
        1100,
        -120
      ]
    },
    {
      "id": "aa031e65-4c46-4ddb-907d-1d9e54e88f68",
      "name": "Write the structured content to disk",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        1340,
        -120
      ]
    },
    {
      "id": "bc02801c-b1f0-4b80-a43e-a2efe9efcc6a",
      "name": "Initiate a Webhook Notification for Structured Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1100,
        80
      ]
    },
    {
      "id": "dd2601bf-e0a2-4cfb-a1b3-96b3125d810e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        760,
        -240
      ],
      "parameters": {
        "width": 780,
        "height": 740,
        "content": "## Output Data Handling"
      }
    },
    {
      "id": "362c4677-ea35-43c0-9dad-777bbafacad3",
      "name": "Update Google Sheets for Structured Data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1100,
        300
      ]
    },
    {
      "id": "bb25e12c-b61a-40e5-bdd8-80412da4b64b",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        800,
        300
      ]
    },
    {
      "id": "9830a8f1-02f1-4503-842e-c511937ae60d",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1100,
        660
      ]
    },
    {
      "id": "bfa9e131-7896-4377-aca5-f2241ae2e155",
      "name": "Search Data Extractor",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1800,
        680
      ]
    },
    {
      "id": "83af94c4-ef2c-4ccb-b1da-b47062041df7",
      "name": "Google Gemini Chat Model for Google Search",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1800,
        860
      ]
    },
    {
      "id": "885afe32-d794-41a4-b532-510ea291bd55",
      "name": "Structured Output Parser for Google Search",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1980,
        860
      ]
    },
    {
      "id": "1f040a8f-b122-4cae-8ad6-55c953917bc3",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1300,
        680
      ]
    },
    {
      "id": "076b2f50-fcb0-465f-8953-4e9446d9a70a",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        760,
        -400
      ],
      "parameters": {
        "width": 440,
        "height": 120,
        "content": "## Disclaimer\nThis template is only available on n8n self-hosted as it's making use of the community node for MCP Client."
      }
    },
    {
      "id": "3d8eb777-fe62-4473-8a4c-d12c43324e74",
      "name": "MCP Search Client",
      "type": "n8n-nodes-mcp.mcpClient",
      "position": [
        1540,
        680
      ]
    },
    {
      "id": "7546160a-fd9f-48c5-b6c0-f8fbf3171b87",
      "name": "MCP Client for Web Scraping",
      "type": "n8n-nodes-mcp.mcpClient",
      "position": [
        2240,
        680
      ]
    },
    {
      "id": "10f51630-b469-4ae3-ba29-0f1633262e86",
      "name": "Create a binary data for Structured Data Extract for Yelp",
      "type": "n8n-nodes-base.function",
      "position": [
        2500,
        680
      ]
    },
    {
      "id": "142eb53d-be26-4fcc-bab4-3448dbeb96c0",
      "name": "Write the Yelp content to disk",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        2740,
        680
      ]
    },
    {
      "id": "626051c8-037d-4dad-a8d2-3268ede2e803",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        580
      ],
      "parameters": {
        "width": 1880,
        "height": 440,
        "content": "## Data Enrichment with Yelp data extraction\n"
      }
    },
    {
      "id": "16b82333-c8df-4614-b1ef-3e58078f61f7",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1620,
        -240
      ],
      "parameters": {
        "width": 660,
        "height": 260,
        "content": "## Step 1 : Set the Input Fields\n\nurl : https://www.google.com/maps/search/\nwebhook notification url: https://webhook.site/c9118da2-1c54-460f-a83a-e5131b7098db\nsearch : dentists+in+texas/?q=dentists+i"
      }
    },
    {
      "id": "680fec55-f61a-4870-bd01-6308ee0828c0",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2320,
        -240
      ],
      "parameters": {
        "width": 660,
        "height": 260,
        "content": "## Step 2 : Set the Credentials\n\nSet the credentials for \n\n1. Bright Data\n2. Google Gemini "
      }
    },
    {
      "id": "7448179e-4dc2-4665-9986-12aa7d925fb4",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1620,
        80
      ],
      "parameters": {
        "width": 660,
        "height": 240,
        "content": "## Step 3 : Configure or Set the Output Nodes\n\n1. Disk location to persist\n2. Google Sheet"
      }
    }
  ],
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Update Google Sheets for Structured Data",
            "type": "main",
            "index": 0
          },
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "MCP Search Client",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set input fields": {
      "main": [
        [
          {
            "node": "Perform Bright Data Web Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "MCP Search Client": {
      "main": [
        [
          {
            "node": "Search Data Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search Data Extractor": {
      "main": [
        [
          {
            "node": "MCP Client for Web Scraping",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Google Maps Data Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Google Maps Data Extractor",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Google Maps Data Extractor": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create a binary data for Structured Data Extract",
            "type": "main",
            "index": 0
          },
          {
            "node": "Initiate a Webhook Notification for Structured Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "MCP Client for Web Scraping": {
      "main": [
        [
          {
            "node": "Create a binary data for Structured Data Extract for Yelp",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Write the Yelp content to disk": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Perform Bright Data Web Request": {
      "main": [
        [
          {
            "node": "Google Maps Data Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Set input fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model for Google Search": {
      "ai_languageModel": [
        [
          {
            "node": "Search Data Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser for Google Search": {
      "ai_outputParser": [
        [
          {
            "node": "Search Data Extractor",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Create a binary data for Structured Data Extract": {
      "main": [
        [
          {
            "node": "Write the structured content to disk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a binary data for Structured Data Extract for Yelp": {
      "main": [
        [
          {
            "node": "Write the Yelp content to disk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}