{
  "name": "Enrich Google Maps business leads using Apify, OpenAI, Jina AI, Telegram and Sheets",
  "nodes": [
    {
      "id": "ce6973bd-86ea-487a-8fed-741afe33750a",
      "name": "Fetch Dataset Items",
      "type": "@apify/n8n-nodes-apify.apify",
      "position": [
        -1472,
        4304
      ]
    },
    {
      "id": "6401cae6-82d2-4f0d-8e12-af3ee4e8a960",
      "name": "Deduplicate Places",
      "type": "n8n-nodes-base.removeDuplicates",
      "position": [
        -1248,
        4304
      ]
    },
    {
      "id": "0e24c5fc-5a1d-4536-8769-c305559be0a2",
      "name": "Run Maps Scraper",
      "type": "@apify/n8n-nodes-apify.apify",
      "position": [
        -1696,
        4304
      ]
    },
    {
      "id": "f681e51a-2785-4a6d-896e-b05f861ae849",
      "name": "Process Each Place",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -1024,
        4304
      ]
    },
    {
      "id": "89a9bd41-d463-41ca-8171-dcca67b1d387",
      "name": "Upsert Places to Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -448,
        4128
      ]
    },
    {
      "id": "1b7ee0e9-6557-43a1-b53b-27c84f9842e4",
      "name": "Wait Rate Limit",
      "type": "n8n-nodes-base.wait",
      "position": [
        336,
        4416
      ]
    },
    {
      "id": "bc356503-7be0-4f24-9712-bf4a8334d2ac",
      "name": "Receive Telegram Input",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -2144,
        4304
      ]
    },
    {
      "id": "35458641-119b-4696-a817-d07631823496",
      "name": "Parse Input Parameters",
      "type": "n8n-nodes-base.code",
      "position": [
        -1920,
        4304
      ]
    },
    {
      "id": "8af998d9-1b9c-4ed9-912e-a84a9bb95385",
      "name": "Send Done Notification",
      "type": "n8n-nodes-base.telegram",
      "position": [
        80,
        4416
      ]
    },
    {
      "id": "5cf8301b-57ec-4e9f-a5b5-ed25b73fc1cc",
      "name": "Select Website URL",
      "type": "n8n-nodes-base.set",
      "position": [
        -224,
        4128
      ]
    },
    {
      "id": "6cd5c525-c1ad-47fb-baba-c511b05ae138",
      "name": "Extract Website Email",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        448,
        4048
      ]
    },
    {
      "id": "e3d10c54-cecd-40f0-a414-d9fce4d259f8",
      "name": "Update Email in Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        800,
        4048
      ]
    },
    {
      "id": "4f2a6687-f1ff-4706-a24d-594f86d3dd4a",
      "name": "Generate Company Summary",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -800,
        4128
      ]
    },
    {
      "id": "5888cda2-33a0-4b45-a338-ee109ae7c05e",
      "name": "Website URL Exists?",
      "type": "n8n-nodes-base.if",
      "position": [
        0,
        4128
      ]
    },
    {
      "id": "30580685-8f56-428f-a991-cea75d33f7ba",
      "name": "Fetch Website Content",
      "type": "n8n-nodes-base.jinaAi",
      "position": [
        224,
        4048
      ]
    },
    {
      "id": "48b3cd88-e71f-4cf2-9cda-ad958d892db9",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2224,
        3488
      ],
      "parameters": {
        "width": 500,
        "height": 622,
        "content": "## Google Maps Leads Enrichment via Telegram\n\n### How it works\n1. Receive a Telegram message with three values (sector; limit; mapsUrl) to trigger a run.\n2. Run a Google Maps scraper (Apify) using the"
      }
    },
    {
      "id": "830cb935-b95c-4e3a-b32c-506ca8181100",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2224,
        4144
      ],
      "parameters": {
        "width": 1136,
        "height": 352,
        "content": "## Input & Scrape  \n  Receive Telegram input (sector; limit; mapsUrl), parse parameters, run Apify Maps Scraper, fetch dataset items, and deduplicate places."
      }
    },
    {
      "id": "2a1287e8-28a6-4bff-8446-e6268cccaf73",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1056,
        3952
      ],
      "parameters": {
        "width": 784,
        "height": 496,
        "content": "## Enrich & Save  \n  Process each place, generate a company summary with GPT, then upsert core place data into Google Sheets."
      }
    },
    {
      "id": "d26c5bcf-d1bb-4364-9a43-f1335f034563",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -256,
        3952
      ],
      "parameters": {
        "width": 1248,
        "height": 336,
        "content": "## Website Email Enrichment  \n  Select website URL, check if it exists, fetch page content via Jina, extract email with GPT, then update Email in Google Sheets."
      }
    },
    {
      "id": "224c1f5b-073e-41c2-95c8-98f34bd3f30a",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -256,
        4304
      ],
      "parameters": {
        "width": 816,
        "height": 336,
        "content": "## Loop Control & Notify  \n  Apply rate-limit wait between items and send final DONE notification when processing completes."
      }
    }
  ],
  "connections": {
    "Wait Rate Limit": {
      "main": [
        [
          {
            "node": "Process Each Place",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run Maps Scraper": {
      "main": [
        [
          {
            "node": "Fetch Dataset Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Deduplicate Places": {
      "main": [
        [
          {
            "node": "Process Each Place",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Each Place": {
      "main": [
        [
          {
            "node": "Send Done Notification",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Generate Company Summary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Select Website URL": {
      "main": [
        [
          {
            "node": "Website URL Exists?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Dataset Items": {
      "main": [
        [
          {
            "node": "Deduplicate Places",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Website URL Exists?": {
      "main": [
        [
          {
            "node": "Fetch Website Content",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait Rate Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Website Email": {
      "main": [
        [
          {
            "node": "Update Email in Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Website Content": {
      "main": [
        [
          {
            "node": "Extract Website Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Email in Sheet": {
      "main": [
        [
          {
            "node": "Wait Rate Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Input Parameters": {
      "main": [
        [
          {
            "node": "Run Maps Scraper",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Receive Telegram Input": {
      "main": [
        [
          {
            "node": "Parse Input Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upsert Places to Sheet": {
      "main": [
        [
          {
            "node": "Select Website URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Company Summary": {
      "main": [
        [
          {
            "node": "Upsert Places to Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}