{
  "name": "Google Maps to Airtable lead scraper with GPT contact extraction from impressum",
  "nodes": [
    {
      "id": "493c4059-eae8-4991-b515-621e54fcb7d1",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -448,
        1232
      ]
    },
    {
      "id": "ccbf8771-0911-458a-a4bc-b14526302f7f",
      "name": "search Place",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -672,
        1232
      ]
    },
    {
      "id": "2cb16f2f-2457-4f94-9a35-65c912ebc209",
      "name": "Place Details",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -224,
        1232
      ]
    },
    {
      "id": "50d042a7-4fb4-46b7-a9b9-8eaea097329a",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1424,
        880
      ]
    },
    {
      "id": "92a80d2e-d867-4ac7-98c0-f0e1710ddd05",
      "name": "Edit Fields1",
      "type": "n8n-nodes-base.set",
      "position": [
        1616,
        368
      ]
    },
    {
      "id": "97056b0f-bdea-43b8-9305-5b5d010ae6df",
      "name": "Loop Over Items1",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1120,
        752
      ]
    },
    {
      "id": "6f57f165-aec6-4e49-835e-2c22f7dd5726",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1696,
        864
      ]
    },
    {
      "id": "1d2b0c45-a627-48aa-9c2a-c1a32ef838f9",
      "name": "HTML",
      "type": "n8n-nodes-base.html",
      "position": [
        1152,
        1216
      ]
    },
    {
      "id": "cd11b2d4-04c3-4767-b376-a9dfec33c2ad",
      "name": "Loop Over Items3",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        672,
        1376
      ]
    },
    {
      "id": "1deac6fc-1b84-4018-b500-cdecf5f38d7e",
      "name": "Wait2",
      "type": "n8n-nodes-base.wait",
      "position": [
        1408,
        1376
      ]
    },
    {
      "id": "34ab2c6a-8b45-4288-8f8c-fff2964eea96",
      "name": "When Executed by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -1568,
        1232
      ]
    },
    {
      "id": "5ed54e52-29ea-4646-ade7-491334e529a9",
      "name": "When clicking ‘Execute workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1504,
        1792
      ]
    },
    {
      "id": "3f5572ed-9935-4a5b-a4dd-593597dfd881",
      "name": "Execute Workflow",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        -496,
        1856
      ]
    },
    {
      "id": "456fce84-9f8b-4300-a097-3a1bf507fbdd",
      "name": "Airtable1",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -288,
        1856
      ]
    },
    {
      "id": "f78dbd0d-3cdc-411e-800d-893f59ac5232",
      "name": "Airtable2",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -1168,
        1744
      ]
    },
    {
      "id": "5d906fab-24af-4812-85e4-0c3a2a77b2ad",
      "name": "Loop Over Items2",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -720,
        1744
      ]
    },
    {
      "id": "45d43303-380f-40ad-bd52-f776a6754c67",
      "name": "Filter5",
      "type": "n8n-nodes-base.filter",
      "position": [
        -944,
        1744
      ]
    },
    {
      "id": "f4c8f3d6-8275-4eda-a111-2030e7a80aff",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1632,
        1584
      ],
      "parameters": {
        "width": 1664,
        "height": 544,
        "content": "## Init Scraper for Each City\n\n* In Airtable, there is a list of cities used as search terms for Google Maps. The scraper processes them one by one to collect all businesses in each major city within "
      }
    },
    {
      "id": "63e40c33-b599-4d06-80dd-597e9db324d0",
      "name": "already scraped",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -1344,
        1232
      ]
    },
    {
      "id": "d4a854f8-76e7-4e0a-b44f-01437907bbfc",
      "name": "Array all Companies scraped",
      "type": "n8n-nodes-base.summarize",
      "position": [
        -1120,
        1232
      ]
    },
    {
      "id": "785e14cf-b227-4a1b-bda1-b318dcd2d505",
      "name": "Searchword",
      "type": "n8n-nodes-base.set",
      "position": [
        -896,
        1232
      ]
    },
    {
      "id": "5c6a8971-0c32-445d-ae7b-4866ea402c31",
      "name": "Places already scraped",
      "type": "n8n-nodes-base.if",
      "position": [
        -32,
        1248
      ]
    },
    {
      "id": "0bd81c3b-ec89-4ae7-8819-ed554af15ffc",
      "name": "Get Impressum-URL",
      "type": "n8n-nodes-base.set",
      "position": [
        400,
        1392
      ]
    },
    {
      "id": "8330fdc2-6325-4280-b696-a83c7168c847",
      "name": "Get Impressum HTML",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        896,
        1296
      ]
    },
    {
      "id": "8e8e048c-86d4-44c4-a19e-903613b9ce42",
      "name": "Successfully scraped Impressumpages?",
      "type": "n8n-nodes-base.filter",
      "position": [
        896,
        752
      ]
    },
    {
      "id": "2f413fb2-18bc-41cb-8a60-36fef41706d4",
      "name": "Relevant Infos from Impressum",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        1344,
        656
      ]
    },
    {
      "id": "61e6159d-80cd-4e30-81a0-c705a4fb1134",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        336,
        1136
      ],
      "parameters": {
        "width": 1296,
        "height": 496,
        "content": "Get Impressum-Pages and scrape trough them\n"
      }
    },
    {
      "id": "faffe186-8d22-4510-a833-63afdb044ac6",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        816,
        576
      ],
      "parameters": {
        "width": 1056,
        "height": 496,
        "content": "## Extract Relevant Information from Impressum HTML\n\nDecision Maker, Email, Telephone Number"
      }
    },
    {
      "id": "fe69bf9f-9825-46c3-970a-a79bccca9c08",
      "name": "Email not Empty",
      "type": "n8n-nodes-base.filter",
      "position": [
        1408,
        368
      ]
    },
    {
      "id": "c5ecdfbc-7e5f-499e-8688-304b61828f73",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1392,
        1072
      ],
      "parameters": {
        "width": 1616,
        "height": 400,
        "content": "Check if the company has already been scraped → search for places using the search term → fetch detailed information via morePlaceDetails."
      }
    },
    {
      "id": "1f1ccdb0-24e1-430a-8aec-802acc6c680a",
      "name": "Write in DB",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1840,
        368
      ]
    }
  ],
  "connections": {
    "HTML": {
      "main": [
        [
          {
            "node": "Wait2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait2": {
      "main": [
        [
          {
            "node": "Loop Over Items3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter5": {
      "main": [
        [
          {
            "node": "Loop Over Items2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable1": {
      "main": [
        [
          {
            "node": "Loop Over Items2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Airtable2": {
      "main": [
        [
          {
            "node": "Filter5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Place Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Searchword": {
      "main": [
        [
          {
            "node": "search Place",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Write in DB": {
      "main": [
        []
      ]
    },
    "Edit Fields1": {
      "main": [
        [
          {
            "node": "Write in DB",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "search Place": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Place Details": {
      "main": [
        [
          {
            "node": "Places already scraped",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Email not Empty": {
      "main": [
        [
          {
            "node": "Edit Fields1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "already scraped": {
      "main": [
        [
          {
            "node": "Array all Companies scraped",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execute Workflow": {
      "main": [
        [
          {
            "node": "Airtable1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items1": {
      "main": [
        [
          {
            "node": "Email not Empty",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Relevant Infos from Impressum",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items2": {
      "main": [
        [],
        [
          {
            "node": "Execute Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items3": {
      "main": [
        [
          {
            "node": "Successfully scraped Impressumpages?",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get Impressum HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Impressum-URL": {
      "main": [
        [
          {
            "node": "Loop Over Items3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Relevant Infos from Impressum",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get Impressum HTML": {
      "main": [
        [
          {
            "node": "HTML",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Places already scraped": {
      "main": [
        [
          {
            "node": "Get Impressum-URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Array all Companies scraped": {
      "main": [
        [
          {
            "node": "Searchword",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Relevant Infos from Impressum": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "already scraped",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Successfully scraped Impressumpages?": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "Airtable2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}