{
  "name": "Generate roofing contractor leads from Google Maps with ScrapeOps, Sheets and Slack",
  "nodes": [
    {
      "id": "d10f00e5-5e3d-4f76-9ef4-cb7ac83ce059",
      "name": "Set Google Maps Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        976,
        320
      ]
    },
    {
      "id": "9e2ad7d4-3230-480e-9f7f-a42cb5eb84e0",
      "name": "Parse Full Business Info",
      "type": "n8n-nodes-base.code",
      "position": [
        1872,
        320
      ]
    },
    {
      "id": "cef1a10f-75d5-4ad9-a96e-d73abbdb7289",
      "name": "Read Previous Entries from Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2096,
        320
      ]
    },
    {
      "id": "0ee445ff-72a2-4ee8-be55-d8cdaded9ea3",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        16,
        -32
      ],
      "parameters": {
        "width": 672,
        "height": 864,
        "content": "# 🏠 Roofing Contractor Finder → Google Sheets + Alerts\n\nThis workflow automates finding roofing contractors in any city by scraping Google Maps. It performs a deep scrape to extract business name, pho"
      }
    },
    {
      "id": "598821b3-8df7-4336-ab70-663771cac7de",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        144
      ],
      "parameters": {
        "width": 400,
        "height": 336,
        "content": "## 1. Input & Configuration\nCapture the target city via form and set the Google Maps search keyword and parameters."
      }
    },
    {
      "id": "61d38d8c-e0ae-4654-8aa0-c50c1e1648a8",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2720,
        144
      ],
      "parameters": {
        "width": 640,
        "height": 336,
        "content": "## 4. Save & Alert\nAppend new roofing contractor leads to Google Sheets and send notifications via Gmail and Slack."
      }
    },
    {
      "id": "c8b660d6-5bc8-4ae2-9690-847e29b08e85",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1152,
        144
      ],
      "parameters": {
        "width": 880,
        "height": 336,
        "content": "## 2. Deep Scrape Google Maps\nSearch Maps for roofing contractors via [ScrapeOps Proxy](https://scrapeops.io/docs/n8n/proxy-api/), then deep-scrape each listing for phone, website, reviews, and addres"
      }
    },
    {
      "id": "8ddc7ea6-2101-4a6e-abbc-100536c7ccee",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2048,
        144
      ],
      "parameters": {
        "width": 656,
        "height": 336,
        "content": "## 3. Deduplicate Leads\nLoad existing sheet entries, compare against new results, and keep only leads not previously saved."
      }
    },
    {
      "id": "c715d05f-7000-42a5-9e8f-261e6830a2d3",
      "name": " Send Slack Alert",
      "type": "n8n-nodes-base.slack",
      "position": [
        3216,
        320
      ]
    },
    {
      "id": "bc9699c1-f40f-4e74-a14c-88041a668cc9",
      "name": "Send Gmail Alert",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2992,
        320
      ]
    },
    {
      "id": "44241ac6-5351-47f9-939c-7e42a14090b1",
      "name": "Save New Leads to Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2768,
        320
      ]
    },
    {
      "id": "ee667420-0bae-4faf-bb0c-9203007e33da",
      "name": "Filter New Leads Only",
      "type": "n8n-nodes-base.if",
      "position": [
        2544,
        320
      ]
    },
    {
      "id": "f0568726-7977-4655-b1ea-6d2b21b51886",
      "name": "Form: Enter City to Search",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        752,
        320
      ]
    },
    {
      "id": "40a29649-9feb-42b1-ae79-0ece3d41b200",
      "name": "ScrapeOps: Search Google Maps",
      "type": "@scrapeops/n8n-nodes-scrapeops.ScrapeOps",
      "position": [
        1200,
        320
      ]
    },
    {
      "id": "da6fa74e-1350-4d74-8988-9fb96eb19248",
      "name": " Parse Business Listings",
      "type": "n8n-nodes-base.code",
      "position": [
        1424,
        320
      ]
    },
    {
      "id": "3a507d51-97eb-45eb-bb07-a41c64bb11f4",
      "name": " ScrapeOps: Fetch Business Details",
      "type": "@scrapeops/n8n-nodes-scrapeops.ScrapeOps",
      "position": [
        1648,
        320
      ]
    },
    {
      "id": "f91eeb42-0d7e-41fb-ad9d-0fcd1d9c66dc",
      "name": "Compare & Deduplicate Leads",
      "type": "n8n-nodes-base.code",
      "position": [
        2320,
        320
      ]
    }
  ],
  "connections": {
    "Send Gmail Alert": {
      "main": [
        [
          {
            "node": " Send Slack Alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter New Leads Only": {
      "main": [
        [
          {
            "node": "Save New Leads to Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save New Leads to Sheet": {
      "main": [
        [
          {
            "node": "Send Gmail Alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    " Parse Business Listings": {
      "main": [
        [
          {
            "node": " ScrapeOps: Fetch Business Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Full Business Info": {
      "main": [
        [
          {
            "node": "Read Previous Entries from Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Form: Enter City to Search": {
      "main": [
        [
          {
            "node": "Set Google Maps Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Compare & Deduplicate Leads": {
      "main": [
        [
          {
            "node": "Filter New Leads Only",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ScrapeOps: Search Google Maps": {
      "main": [
        [
          {
            "node": " Parse Business Listings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Google Maps Configuration": {
      "main": [
        [
          {
            "node": "ScrapeOps: Search Google Maps",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Previous Entries from Sheet": {
      "main": [
        [
          {
            "node": "Compare & Deduplicate Leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    " ScrapeOps: Fetch Business Details": {
      "main": [
        [
          {
            "node": "Parse Full Business Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}