AutomationFlowsData & Sheets › Automated Property Market Reports with Bright Data & N8n

Automated Property Market Reports with Bright Data & N8n

ByYaron Been @yaron-nofluff on n8n.io

This workflow automatically generates comprehensive property market reports by scraping real estate listings and market data from multiple sources. It helps real estate professionals save time and provide data-driven insights to clients without manual research.

Cron / scheduled trigger★★★☆☆ complexity9 nodesHTTP RequestGoogle Sheets
Data & Sheets Trigger: Cron / scheduled Nodes: 9 Complexity: ★★★☆☆ Added:

This workflow corresponds to n8n.io template #5220 — we link there as the canonical source.

This workflow follows the Google Sheets → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "TmVkR7VvM0nMMgE8",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Property_Market_Report_via_Bright_data",
  "tags": [],
  "nodes": [
    {
      "id": "8891d7b5-79a7-4270-9bf2-374928f36c2a",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2160,
        260
      ],
      "parameters": {
        "color": 4,
        "width": 1300,
        "height": 320,
        "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n   - YouTube: https://www.youtube.com/@YaronBeen/videos\n   - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
      },
      "typeVersion": 1
    },
    {
      "id": "edafc05e-31ee-4451-b0cf-89f83db0cbca",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2160,
        600
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 2218,
        "content": "# \ud83d\udcca **Commercial Real Estate Weekly Report Automation**\n\nThis automation helps you **scrape commercial property listings** (like office and retail spaces) from top websites using **Bright Data**, and automatically stores that data into a **Google Sheet**, ready for reporting or analysis.\n\n---\n\n## \ud83d\udd39 **SECTION 1: \ud83d\udd01 Automate + Scrape Listings**\n\n### \ud83e\udde9 1. \ud83d\udcc6 Weekly Market Trigger\n\n**Node Name:** `Weekly Market Trigger`\n**What it does:**\nThis node automatically starts the workflow every week (e.g., Monday at 8 AM). You don't have to press a button \u2014 it just runs in the background.\n\n\ud83e\udde0 **Beginner Benefit:**\n\n> Automate your market research without ever missing a week. Set it once and let it run!\n\n---\n\n### \ud83e\udde9 2. \ud83c\udf10 Fetch Listings via Bright Data\n\n**Node Name:** `Fetch Listings via Bright Data`\n**What it does:**\nThis node sends a `POST` request to **Bright Data Web Unlocker API**, which is a tool that bypasses captchas, anti-bot systems, and complex JavaScript-loaded pages to give you clean HTML content.\n\n**It targets a URL like:**\n\n```\nhttps://www.loopnet.com/for-lease/office/san-francisco-ca/\n```\n\n\ud83d\udee1\ufe0f Bright Data ensures the page is accessed as if it's being opened by a real user \u2014 no blocks, no errors.\n\n\ud83e\udde0 **Beginner Benefit:**\n\n> Even if a website has bot protections or hidden content, this node ensures you can access the data consistently and safely.\n\n---\n\n## \ud83d\udd38 **SECTION 2: \ud83e\uddf1 Extract + Save Listings**\n\n### \ud83e\udde9 3. \ud83e\uddf1 Extract Listing Details (HTML)\n\n**Node Name:** `Extract Listing Details (HTML)`\n**What it does:**\nIt scans the HTML content from the Bright Data response and pulls out important fields like:\n\n* \ud83c\udfe2 Property Title\n* \ud83d\udcb5 Price\n* \ud83d\udccd Address\n* \ud83d\udcd0 Size\n* \ud83d\udd17 Link to the listing\n\nUses **CSS selectors** like `.listing-title` or `.price-info` to find this info.\n\n\ud83e\udde0 **Beginner Benefit:**\n\n> This node turns messy website code into clean, structured data you can actually use in a report or analysis.\n\n---\n\n### \ud83e\udde9 4. \ud83d\udcca Save to Google Sheets\n\n**Node Name:** `Save to Google Sheets`\n**What it does:**\nThis final step **appends each extracted listing** into a Google Sheet in real time.\n\nYou\u2019ll get a spreadsheet like this:\n\n| Title | Price | Address | Size | URL |\n| ----- | ----- | ------- | ---- | --- |\n\n\ud83e\udde0 **Beginner Benefit:**\n\n> Your scraped data is saved instantly where you can filter, chart, or share it with clients or your team.\n\n---\n\n## \ud83d\ude80 **What You Can Do With This Workflow**\n\n* \ud83d\udcc8 Track weekly commercial real estate trends\n* \ud83e\udde0 Compare price per square foot by neighborhood\n* \ud83d\udce8 Send reports to clients or investors\n* \ud83d\udd01 Use Google Sheets to trigger visual dashboards\n\n---\n\n## \ud83c\udf81 Want to Make It Better?\n\n* Add a \u2709\ufe0f **Slack or Email notification** node at the end\n* Use a \ud83e\ude84 **Markdown Generator** to create beautiful weekly summaries\n* Append data to **separate tabs by week** for historical tracking\n\n---\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f1c420c9-ad46-48a5-83cf-f43a6377241c",
      "name": "Weekly Market Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -400,
        1660
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtDay": [
                1
              ],
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a8acbc10-66cf-4568-b81d-4fce0ec576e7",
      "name": "Fetch Listings via Bright Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -180,
        1660
      ],
      "parameters": {
        "url": "https://api.brightdata.com/request",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "zone",
              "value": "n8n_unblocker"
            },
            {
              "name": "url",
              "value": "https://www.crexi.com/properties?geo=san-francisco-ca"
            },
            {
              "name": "country",
              "value": "us"
            },
            {
              "name": "format",
              "value": "raw"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "800989c9-af12-4c5f-b7a4-4a2ea290110f",
      "name": "Extract Listing Details (HTML)",
      "type": "n8n-nodes-base.html",
      "position": [
        120,
        1660
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "Price",
              "cssSelector": "<span _ngcontent-ng-c2107907900=\"\" data-cy=\"propertyPrice\" class=\"ng-star-inserted\">$3,995,000</span>",
              "returnArray": true
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "54724fca-c18d-44df-a0e7-f267ddd09d73",
      "name": "Save to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        340,
        1660
      ],
      "parameters": {
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "3d8af14f-3cb5-4f4f-aa71-be521322c113",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -440,
        720
      ],
      "parameters": {
        "color": 6,
        "width": 420,
        "height": 1120,
        "content": "## \ud83d\udd39 **SECTION 1: \ud83d\udd01 Automate + Scrape Listings**\n\n### \ud83e\udde9 1. \ud83d\udcc6 Weekly Market Trigger\n\n**Node Name:** `Weekly Market Trigger`\n**What it does:**\nThis node automatically starts the workflow every week (e.g., Monday at 8 AM). You don't have to press a button \u2014 it just runs in the background.\n\n\ud83e\udde0 **Beginner Benefit:**\n\n> Automate your market research without ever missing a week. Set it once and let it run!\n\n---\n\n### \ud83e\udde9 2. \ud83c\udf10 Fetch Listings via Bright Data\n\n**Node Name:** `Fetch Listings via Bright Data`\n**What it does:**\nThis node sends a `POST` request to **Bright Data Web Unlocker API**, which is a tool that bypasses captchas, anti-bot systems, and complex JavaScript-loaded pages to give you clean HTML content.\n\n**It targets a URL like:**\n\n```\nhttps://www.loopnet.com/for-lease/office/san-francisco-ca/\n```\n\n\ud83d\udee1\ufe0f Bright Data ensures the page is accessed as if it's being opened by a real user \u2014 no blocks, no errors.\n\n\ud83e\udde0 **Beginner Benefit:**\n\n> Even if a website has bot protections or hidden content, this node ensures you can access the data consistently and safely.\n\n---\n"
      },
      "typeVersion": 1
    },
    {
      "id": "2fd2d9bb-ec9c-48c7-a745-bd5b653e76b5",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        60,
        700
      ],
      "parameters": {
        "color": 5,
        "width": 420,
        "height": 1140,
        "content": "## \ud83d\udd38 **SECTION 2: \ud83e\uddf1 Extract + Save Listings**\n\n### \ud83e\udde9 3. \ud83e\uddf1 Extract Listing Details (HTML)\n\n**Node Name:** `Extract Listing Details (HTML)`\n**What it does:**\nIt scans the HTML content from the Bright Data response and pulls out important fields like:\n\n* \ud83c\udfe2 Property Title\n* \ud83d\udcb5 Price\n* \ud83d\udccd Address\n* \ud83d\udcd0 Size\n* \ud83d\udd17 Link to the listing\n\nUses **CSS selectors** like `.listing-title` or `.price-info` to find this info.\n\n\ud83e\udde0 **Beginner Benefit:**\n\n> This node turns messy website code into clean, structured data you can actually use in a report or analysis.\n\n---\n\n### \ud83e\udde9 4. \ud83d\udcca Save to Google Sheets\n\n**Node Name:** `Save to Google Sheets`\n**What it does:**\nThis final step **appends each extracted listing** into a Google Sheet in real time.\n\nYou\u2019ll get a spreadsheet like this:\n\n| Title | Price | Address | Size | URL |\n| ----- | ----- | ------- | ---- | --- |\n\n\ud83e\udde0 **Beginner Benefit:**\n\n> Your scraped data is saved instantly where you can filter, chart, or share it with clients or your team.\n\n---\n"
      },
      "typeVersion": 1
    },
    {
      "id": "82aa81aa-39af-410e-9434-ee6189aabc7b",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        700
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 240,
        "content": "## I\u2019ll receive a tiny commission if you join Bright Data through this link\u2014thanks for fueling more free content!\n\n### https://get.brightdata.com/1tndi4600b25"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "b60c01a8-a0b5-43de-bde0-5fa9fd1bb732",
  "connections": {
    "Weekly Market Trigger": {
      "main": [
        [
          {
            "node": "Fetch Listings via Bright Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Listing Details (HTML)": {
      "main": [
        [
          {
            "node": "Save to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Listings via Bright Data": {
      "main": [
        [
          {
            "node": "Extract Listing Details (HTML)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow automatically generates comprehensive property market reports by scraping real estate listings and market data from multiple sources. It helps real estate professionals save time and provide data-driven insights to clients without manual research.

Source: https://n8n.io/workflows/5220/ — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

This workflow automates tax compliance by aggregating multi-channel revenue data, calculating jurisdiction-specific tax obligations, detecting anomalies, and generating submission-ready reports for ta

Gmail, Google Sheets, Airtable +1
Data & Sheets

Blog Automation Pipeline A — Content Generation. Uses googleSheets, httpRequest. Scheduled trigger; 28 nodes.

Google Sheets, HTTP Request
Data & Sheets

This n8n workflow automatically finds apartments for rent in Germany, filters them by your city, rent budget, and number of rooms, and applies to them via email. Each application includes: A personali

HTTP Request, Google Drive, Email Send +1
Data & Sheets

The automation process consists of four main steps: Get Longform: Retrieve the long-form video data (e.g., from Google Sheets). Analyze Longform: Use Clap to analyze the video and generate short clips

Google Sheets, HTTP Request
Data & Sheets

This n8n workflow automates the end-to-end client onboarding process: capturing client details, validating emails, assigning tiers, generating welcome packs, creating tasks, notifying teams, archiving

Google Sheets, Gmail, Airtable +5