📊 Aggregate commercial property listings with ScrapeGraphAI, Baserow and Teams

⚡ 57 views · 📊 Market Research & Insights

💡 Pro Tip — HTTP Request scraping tends to break when sites update their markup. If you’re scraping a major platform, check if ScraperNode covers it — it has maintained scrapers for LinkedIn, Instagram, TikTok, YouTube, and 20+ other platforms that return structured data.

View All Scrapers

Description

Property Listing Aggregator with Microsoft Teams and Baserow

⚠️ COMMUNITY TEMPLATE DISCLAIMER: This is a community-contributed template that uses ScrapeGraphAI (a community node). Please ensure you have the ScrapeGraphAI community node installed in your n8n instance before using this template.

This workflow automatically aggregates commercial real-estate listings from multiple broker and marketplace websites, stores the fresh data in Baserow, and pushes weekly availability alerts to Microsoft Teams. Ideal for business owners searching for new retail or office space, it runs on a timetable, scrapes property details, de-duplicates existing entries, and notifies your team of only the newest opportunities.

Pre-conditions/Requirements

Prerequisites

Required Credentials

Baserow Table Schema

Column NameTypeNotes
listing_idTextUnique ID or URL slug (primary)
titleTextListing headline
priceNumberMonthly or annual rent
sq_ftNumberSize in square feet
locationTextCity / neighborhood
urlURLOriginal listing link
scrapedDateTimestamp of last scrape

How it works

This workflow automatically aggregates commercial real-estate listings from multiple broker and marketplace websites, stores the fresh data in Baserow, and pushes weekly availability alerts to Microsoft Teams. Ideal for business owners searching for new retail or office space, it runs on a timetable, scrapes property details, de-duplicates existing entries, and notifies your team of only the newest opportunities.

Key Steps:

Set up steps

Setup Time: 15-20 minutes

  1. Install ScrapeGraphAI node:
    In n8n, go to “Settings → Community Nodes”, search for “@n8n-nodes/scrapegraphai” and install.
  2. Create Baserow table:
    Follow the schema above. Copy your Personal API Token from Baserow profile settings.
  3. Generate Teams webhook:
    In Microsoft Teams, open channel → “Connectors” → “Incoming Webhook”, name it, and copy the URL.
  4. Open the workflow in n8n and set the following credentials:
    • ScrapeGraphAI API Key
    • Baserow token (Baserow node)
    • Teams webhook (Microsoft Teams node)
  5. Define target URLs:
    Edit the “Load URL List” Code node and add your marketplace or broker URLs.
  6. Adjust schedule:
    Double-click the “Schedule Trigger” and set the cron expression (default: weekly Monday 08:00).
  7. Test-run the workflow manually to verify scraping and data insertion.
  8. Activate the workflow once results look correct.

Node Descriptions

Core Workflow Nodes:

Data Flow:

  1. Schedule Trigger → Code → Split In Batches → ScrapeGraphAI → Merge → IF → Baserow
  2. IF (new listings) → Set → Microsoft Teams

Customization Examples

Add additional data points (e.g., number of parking spaces)

// In ScrapeGraphAI "Selectors" field
{
  "title": ".listing-title",
  "price": ".price",
  "sq_ft": ".size",
  "parking": ".parking span"   // new selector
}

Change Teams message formatting

// In Set node
return items.map(item => {
  const l = item.json;
  item.json = {
    text: `🏢 *${l.title}* — ${l.price} USD\n📍 ${l.location} | ${l.sq_ft} ft²\n🔗 <${l.url}|View Listing>`
  };
  return item;
});

Data Output Format

The workflow outputs structured JSON data:

{
  "listing_id": "12345-main-street-suite-200",
  "title": "Downtown Office Space – Suite 200",
  "price": 4500,
  "sq_ft": 2300,
  "location": "Austin, TX",
  "url": "https://broker.com/listings/12345",
  "scraped": "2024-05-01T08:00:00.000Z"
}

Troubleshooting

Common Issues

  1. ScrapeGraphAI returns empty fields – Update CSS selectors or switch to XPath; run in headless:true mode.
  2. Duplicate records still appear – Ensure listing_id is truly unique (use URL slug) and that the IF node compares correctly.
  3. Teams message not delivered – Verify webhook URL and that the Teams connector is enabled for the channel.

Performance Tips

Pro Tips:

đź”— Nodes Used

Microsoft Teams, Baserow, Schedule Trigger

📥 Import

Download workflow.json and import into n8n: Workflow menu → Import from File

📖 Importing guide · 🔑 Credential setup