π Automate commercial real estate monitoring with ScrapeGraphAI, Notion and Mailchimp
β‘ 88 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.
Description
Property Listing Aggregator with Mailchimp and Notion
β οΈ 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 scrapes multiple commercial-real-estate websites, consolidates new property listings into Notion, and emails weekly availability updates or immediate space alerts to a Mailchimp audience. It automates the end-to-end process so business owners can stay on top of the latest spaces without manual searching.
Pre-conditions/Requirements
Prerequisites
- n8n instance (self-hosted or n8n.cloud)
- ScrapeGraphAI community node installed
- Active Notion workspace with permission to create/read databases
- Mailchimp account with at least one Audience list
- Basic understanding of JSON; ability to add API credentials in n8n
Required Credentials
- ScrapeGraphAI API Key β Enables web scraping functionality
- Notion OAuth2 / Integration Token β Writes data into Notion database
- Mailchimp API Key β Sends campaigns and individual emails
- (Optional) Proxy credentials β If target real-estate sites block your IP
Specific Setup Requirements
| Resource | Requirement | Example |
|---|---|---|
| Notion | Database with property fields (Address, Price, SqFt, URL, Availability) | Database ID: abcd1234efgh |
| Mailchimp | Audience list where alerts are sent | Audience ID: f3a2b6c7d8 |
| ScrapeGraphAI | YAML/JSON config per site | Stored inside the ScrapeGraphAI node |
How it works
This workflow scrapes multiple commercial-real-estate websites, consolidates new property listings into Notion, and emails weekly availability updates or immediate space alerts to a Mailchimp audience. It automates the end-to-end process so business owners can stay on top of the latest spaces without manual searching.
Key Steps:
- Manual Trigger / CRON: Starts the workflow weekly or on-demand.
- Code (Site List Builder): Generates an array of target URLs for ScrapeGraphAI.
- Split In Batches: Processes URLs in manageable groups to avoid rate limits.
- ScrapeGraphAI: Extracts property details from each site.
- IF (New vs Existing): Checks whether the listing already exists in Notion.
- Notion: Inserts new listings or updates existing records.
- Set: Formats email content (HTML & plaintext).
- Mailchimp: Sends a campaign or automated alert to subscribers.
- Sticky Notes: Provide documentation and future-enhancement pointers.
Set up steps
Setup Time: 15-25 minutes
- Install Community Node
Navigate to Settings β Community Nodes and install βScrapeGraphAIβ. - Create Notion Integration
- Go to Notion Settings β Integrations β Develop your own integration.
- Copy the integration token and share your target database with the integration.
- Add Mailchimp API Key
- In Mailchimp: Account β Extras β API keys.
- Copy an existing key or create a new one, then add it to n8n credentials.
- Build Scrape Config
In the ScrapeGraphAI node, paste a YAML/JSON selector config for each website (address, price, sqft, url, availability). - Configure the URL List
Open the first Code node. Replace the placeholder array with your target listing URLs. - Map Notion Fields
Open the Notion node and map scraped fields to your database properties. Save. - Design Email Template
In the Set node, tweak the HTML and plaintext blocks to match your brand. - Test the Workflow
Trigger manually, check that Notion rows are created and Mailchimp sends the message. - Schedule
Add a CRON node (weekly) or leave the Manual Trigger for ad-hoc runs.
Node Descriptions
Core Workflow Nodes:
- Manual Trigger / CRON β Kicks off the workflow either on demand or on a schedule.
- Code (Site List Builder) β Holds an array of commercial real-estate URLs and outputs one item per URL.
- Split In Batches β Prevents hitting anti-bot limits by processing URLs in groups (default: 5).
- ScrapeGraphAI β Crawls each URL, parses DOM with CSS/XPath selectors, returns structured JSON.
- IF (New Listing?) β Compares scraped listing IDs against existing Notion database rows.
- Notion β Creates or updates pages representing property listings.
- Set (Email Composer) β Builds dynamic email subject, body, and merge tags for Mailchimp.
- Mailchimp β Uses the Send Campaign endpoint to email your audience.
- Sticky Note β Contains inline documentation and customization reminders.
Data Flow:
- Manual Trigger/CRON β Code (URLs) β Split In Batches β ScrapeGraphAI β IF (New?)
- True path β Notion (Create) β Set (Email) β Mailchimp
- False path β (skip)
Customization Examples
Filter Listings by Maximum Budget
// Inside the IF node (custom expression)
{{$json["price"] <= 3500}}
Change Email Frequency to Daily Digests
{
"nodes": [
{
"name": "Daily CRON",
"type": "n8n-nodes-base.cron",
"parameters": {
"triggerTimes": [
{
"hour": 8,
"minute": 0
}
]
}
}
]
}
Data Output Format
The workflow outputs structured JSON data:
{
"address": "123 Market St, Suite 400",
"price": 3200,
"sqft": 950,
"url": "https://examplebroker.com/listing/123",
"availability": "Immediate",
"new": true
}
Troubleshooting
Common Issues
- Scraper returns empty objects β Verify selectors in ScrapeGraphAI config; inspect the siteβs HTML for changes.
- Duplicate entries in Notion β Ensure the βIFβ node checks a unique ID (e.g., listing URL) before creating a page.
Performance Tips
- Reduce batch size or add delays in ScrapeGraphAI to avoid site blocking.
- Cache previously scraped URLs in an external file or database for faster runs.
Pro Tips:
- Rotate proxies in ScrapeGraphAI for heavily protected sites.
- Use Notion rollups to calculate total available square footage automatically.
- Leverage Mailchimp merge tags (
*|FNAME|*) in the Set node for personalized alerts.
π Nodes Used
Mailchimp, Notion
π₯ Import
Download workflow.json and import into n8n:
Workflow menu β Import from File