This workflow corresponds to n8n.io template #12273 — we link there as the canonical source.
This workflow follows the Agent → Gmail 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 →
{
"id": "68cjWzOJ5Tm9e2N7",
"name": "Intelligent Submarket Trend & Investment Opportunity Analyzer",
"tags": [],
"nodes": [
{
"id": "94bcb2ba-a1bb-4d43-a0e4-b2e51c231bc5",
"name": "Daily Analysis Schedule",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-896,
320
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 6
}
]
}
},
"typeVersion": 1.3
},
{
"id": "bad78a9f-63ee-4767-a333-d428a263c346",
"name": "Workflow Configuration",
"type": "n8n-nodes-base.set",
"position": [
-672,
320
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "mlsApiUrl",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__MLS API endpoint URL__>"
},
{
"id": "id-2",
"name": "publicRecordsApiUrl",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Public records API endpoint URL__>"
},
{
"id": "id-3",
"name": "demographicApiUrl",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Demographic data API endpoint URL__>"
},
{
"id": "id-4",
"name": "macroeconomicApiUrl",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Macroeconomic data API endpoint URL__>"
},
{
"id": "id-5",
"name": "targetMarkets",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Target markets/regions to analyze (comma-separated)__>"
},
{
"id": "id-6",
"name": "minInvestmentScore",
"type": "number",
"value": 75
},
{
"id": "id-7",
"name": "acquisitionTeamEmail",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Acquisition team email address__>"
},
{
"id": "id-8",
"name": "investorSlackChannel",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Slack channel ID for investor notifications__>"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "16edb473-f884-421b-a6c1-30e5718505fe",
"name": "Fetch MLS Data",
"type": "n8n-nodes-base.httpRequest",
"position": [
-448,
320
],
"parameters": {
"url": "={{ $('Workflow Configuration').first().json.mlsApiUrl }}",
"options": {},
"sendQuery": true,
"authentication": "predefinedCredentialType",
"queryParameters": {
"parameters": [
{
"name": "markets",
"value": "={{ $('Workflow Configuration').first().json.targetMarkets }}"
}
]
}
},
"typeVersion": 4.3
},
{
"id": "247d26a5-82bd-4ed7-8dbb-bfd70791174d",
"name": "Fetch Public Records",
"type": "n8n-nodes-base.httpRequest",
"position": [
-448,
448
],
"parameters": {
"url": "={{ $('Workflow Configuration').first().json.publicRecordsApiUrl }}",
"options": {},
"sendQuery": true,
"authentication": "predefinedCredentialType",
"queryParameters": {
"parameters": [
{
"name": "markets",
"value": "={{ $('Workflow Configuration').first().json.targetMarkets }}"
}
]
}
},
"typeVersion": 4.3
},
{
"id": "ac23814c-44c2-40c9-a0ae-1f1c5f5e5002",
"name": "Fetch Demographic Data",
"type": "n8n-nodes-base.httpRequest",
"position": [
-448,
592
],
"parameters": {
"url": "={{ $('Workflow Configuration').first().json.demographicApiUrl }}",
"options": {},
"sendQuery": true,
"authentication": "predefinedCredentialType",
"queryParameters": {
"parameters": [
{
"name": "markets",
"value": "={{ $('Workflow Configuration').first().json.targetMarkets }}"
}
]
}
},
"typeVersion": 4.3
},
{
"id": "1b595fac-31fb-4aa8-95f9-1a018eed0b91",
"name": "Fetch Macroeconomic Data",
"type": "n8n-nodes-base.httpRequest",
"position": [
-448,
784
],
"parameters": {
"url": "={{ $('Workflow Configuration').first().json.macroeconomicApiUrl }}",
"options": {},
"sendQuery": true,
"authentication": "predefinedCredentialType",
"queryParameters": {
"parameters": [
{
"name": "markets",
"value": "={{ $('Workflow Configuration').first().json.targetMarkets }}"
}
]
}
},
"typeVersion": 4.3
},
{
"id": "42aeb1f3-b455-4e4f-84b2-3bac77ea1cf4",
"name": "Combine All Data Sources",
"type": "n8n-nodes-base.aggregate",
"position": [
-224,
320
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "3dc717f9-ff10-429e-b841-424af4db2d3c",
"name": "Investment Opportunity Analyzer",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
56,
320
],
"parameters": {
"text": "={{ $json.data }}",
"options": {
"systemMessage": "You are an expert real estate investment analyst specializing in submarket trend analysis and opportunity identification.\n\nYour task is to:\n1. Analyze the aggregated MLS, public records, demographic, and macroeconomic data provided\n2. Identify emerging investment opportunities based on:\n - Property value trends and appreciation patterns\n - Population growth and demographic shifts\n - Economic indicators (employment, income levels, business growth)\n - Supply and demand dynamics\n - Infrastructure development and zoning changes\n3. Calculate investment scores (0-100) for each opportunity based on:\n - Expected ROI potential\n - Market momentum and velocity\n - Risk factors and market stability\n - Time to value realization\n4. Predict future property value trends for the next 12-24 months\n5. Provide actionable insights and recommendations\n\nUse the Calculator tool for complex financial calculations and ROI projections.\n\nReturn your analysis in the structured format defined by the output parser."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "0c88d474-4066-4803-b209-eabffc11abfe",
"name": "OpenAI GPT-4",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
48,
544
],
"parameters": {
"model": {
"__rl": true,
"mode": "id",
"value": "gpt-4o"
},
"options": {
"temperature": 0.3
},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "ec18e803-0c37-4bca-87d8-5fcdf59fd904",
"name": "Calculator Tool",
"type": "@n8n/n8n-nodes-langchain.toolCalculator",
"position": [
176,
512
],
"parameters": {},
"typeVersion": 1
},
{
"id": "ed9ad0f5-1cbd-4a38-80e5-ba2aa3d2574f",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
288,
592
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"opportunities\": {\n \"type\": \"array\",\n \"description\": \"List of identified investment opportunities\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"submarket\": {\n \"type\": \"string\",\n \"description\": \"Submarket or neighborhood name\"\n },\n \"investmentScore\": {\n \"type\": \"number\",\n \"description\": \"Investment score from 0-100\"\n },\n \"expectedROI\": {\n \"type\": \"number\",\n \"description\": \"Expected return on investment percentage\"\n },\n \"riskLevel\": {\n \"type\": \"string\",\n \"description\": \"Risk level: Low, Medium, High\"\n },\n \"propertyTypes\": {\n \"type\": \"array\",\n \"description\": \"Recommended property types for investment\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"valueTrend\": {\n \"type\": \"string\",\n \"description\": \"Predicted value trend for next 12-24 months\"\n },\n \"keyDrivers\": {\n \"type\": \"array\",\n \"description\": \"Key factors driving the opportunity\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"recommendations\": {\n \"type\": \"string\",\n \"description\": \"Specific investment recommendations\"\n }\n }\n }\n },\n \"marketSummary\": {\n \"type\": \"string\",\n \"description\": \"Overall market analysis summary\"\n },\n \"topOpportunities\": {\n \"type\": \"array\",\n \"description\": \"Top 3 highest-scoring opportunities\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n}"
},
"typeVersion": 1.3
},
{
"id": "b4346e11-a4fa-46ea-a9e6-78cff764a9ac",
"name": "Filter High-Priority Opportunities",
"type": "n8n-nodes-base.code",
"position": [
464,
320
],
"parameters": {
"jsCode": "// Get the minimum investment score threshold from Workflow Configuration\nconst minInvestmentScore = $('Workflow Configuration').item.json.minInvestmentScore || 70;\n\n// Get the AI agent output\nconst agentOutput = $('Investment Opportunity Analyzer').item.json;\n\n// Extract opportunities array from the agent output\nlet opportunities = [];\nif (agentOutput.opportunities && Array.isArray(agentOutput.opportunities)) {\n opportunities = agentOutput.opportunities;\n} else if (agentOutput.output && agentOutput.output.opportunities && Array.isArray(agentOutput.output.opportunities)) {\n opportunities = agentOutput.output.opportunities;\n} else if (Array.isArray(agentOutput)) {\n opportunities = agentOutput;\n}\n\n// Filter opportunities where investmentScore >= minInvestmentScore\nconst filteredOpportunities = opportunities.filter(opp => {\n const score = opp.investmentScore || opp.investment_score || 0;\n return score >= minInvestmentScore;\n});\n\n// Sort by investmentScore descending\nfilteredOpportunities.sort((a, b) => {\n const scoreA = a.investmentScore || a.investment_score || 0;\n const scoreB = b.investmentScore || b.investment_score || 0;\n return scoreB - scoreA;\n});\n\n// Return filtered and sorted opportunities\nreturn filteredOpportunities.map(opp => ({ json: opp }));"
},
"typeVersion": 2
},
{
"id": "c0c138b8-3456-4798-8665-8446c9b8fa92",
"name": "Email Acquisition Team",
"type": "n8n-nodes-base.gmail",
"position": [
688,
320
],
"parameters": {
"sendTo": "={{ $('Workflow Configuration').first().json.acquisitionTeamEmail }}",
"message": "=<h2>High-Priority Investment Opportunities</h2>\n<p>The following properties have been identified as high-priority investment opportunities based on today's analysis:</p>\n\n{{ $json.opportunities.map((opp, index) => `\n<div style=\"border: 1px solid #ddd; padding: 15px; margin: 10px 0; border-radius: 5px;\">\n <h3>${index + 1}. ${opp.address}</h3>\n <p><strong>Investment Score:</strong> ${opp.investmentScore}/100</p>\n <p><strong>Projected ROI:</strong> ${opp.projectedROI}%</p>\n <p><strong>Market Value:</strong> $${opp.marketValue.toLocaleString()}</p>\n <p><strong>Recommendation:</strong> ${opp.recommendation}</p>\n <p><strong>Key Insights:</strong> ${opp.keyInsights}</p>\n</div>\n`).join('') }}\n\n<p style=\"margin-top: 20px;\"><em>This report was generated automatically by the Autonomous Submarket Trend & Investment Opportunity Analyzer.</em></p>",
"options": {},
"subject": "=High-Priority Investment Opportunities - {{ $now.format('MMMM d, yyyy') }}"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "9373f8c5-6d71-4254-ba90-cc9395ed9b9b",
"name": "Notify Investors on Slack",
"type": "n8n-nodes-base.slack",
"position": [
688,
544
],
"parameters": {
"text": "=\ud83c\udfd8\ufe0f *High-Priority Investment Opportunities Detected*\n\n{{ $json.opportunities.map((opp, i) => `*${i + 1}. ${opp.address}*\n\u2022 Market: ${opp.submarket}\n\u2022 Score: ${opp.investmentScore}/100\n\u2022 Est. ROI: ${opp.estimatedROI}%\n\u2022 Cap Rate: ${opp.capRate}%\n\u2022 Key Insight: ${opp.keyInsight}\n\u2022 Action: ${opp.recommendedAction}\n`).join('\\n') }}\n\n\ud83d\udcca *Analysis Summary*\n\u2022 Total Opportunities: {{ $json.totalOpportunities }}\n\u2022 High Priority: {{ $json.highPriorityCount }}\n\u2022 Avg Investment Score: {{ $json.avgScore }}\n\n\ud83d\udca1 *Next Steps*\nReview detailed analysis and coordinate with acquisition team for property tours.",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Workflow Configuration').first().json.investorSlackChannel }}"
},
"otherOptions": {
"includeLinkToWorkflow": true
},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.4
},
{
"id": "6e90bb4c-3145-4a1d-9598-3f3897f0b875",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
176,
-192
],
"parameters": {
"color": 6,
"width": 544,
"height": 320,
"content": "## Prerequisites\nOpenAI API key, MLS data service access, public records API credentials\n## Use Cases\nReal estate investment firms screening multiple markets simultaneously\n## Customization\nModify AI prompts to adjust investment criteria priorities, add custom financial metrics \n## Benefits\nReduces investment analysis time from hours to minutes, eliminates manual data aggregation errors"
},
"typeVersion": 1
},
{
"id": "9f361ed9-5089-451c-b706-4507651bef99",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-176,
-112
],
"parameters": {
"width": 320,
"height": 224,
"content": "## Setup Steps\n1. Configure HTTP nodes with your MLS API \n2. Connect Gmail account for acquisition team notifications\n3. Integrate Slack workspace and specify investor notification channel\n4. Set schedule trigger frequency in Schedule node "
},
"typeVersion": 1
},
{
"id": "3334589f-12fa-47c2-ae32-58643ef821f3",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-928,
-128
],
"parameters": {
"width": 736,
"height": 240,
"content": "## How It Works\nThis workflow automates end-to-end real estate investment analysis by aggregating data from multiple sources and applying AI-driven evaluation. It is designed for real estate investors, analysts, and portfolio managers seeking data-backed decisions without manual research overhead. The solution addresses the time-consuming challenge of collecting and analyzing fragmented real estate data such as MLS listings, public records, demographic trends, and macroeconomic indicators and transforms it into actionable insights using AI. Data is collected in parallel across four streams: MLS property data, public records, demographic information, and macroeconomic signals. These streams are consolidated into a unified dataset and processed by OpenAI GPT-4, using calculator tools and structured output parsing for quantitative analysis."
},
"typeVersion": 1
},
{
"id": "f15c2c59-22e1-4185-9ded-f061430e4d3d",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-944,
160
],
"parameters": {
"color": 7,
"width": 656,
"height": 752,
"content": "## **Automated Investment Analysis**\n\nDelivers end-to-end real estate evaluation with AI, eliminating manual research for investors"
},
"typeVersion": 1
},
{
"id": "faf6b5c7-2c74-487a-a4d3-f367cc9cb0f9",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-272,
160
],
"parameters": {
"color": 7,
"width": 272,
"height": 752,
"content": "## **Unified Data Collection**\n\nAggregates MLS listings, public records, demographic trends, and macroeconomic indicators "
},
"typeVersion": 1
},
{
"id": "8e578c4c-3d85-44a9-ad7a-165e732750ae",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
16,
160
],
"parameters": {
"color": 7,
"width": 400,
"height": 608,
"content": "## **AI-Driven Insights**\n\nCombines all data into a single dataset and analyzes it with OpenAI GPT-4 "
},
"typeVersion": 1
},
{
"id": "2725d1de-e5bd-4128-9ad4-2fbad5f2a7a5",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
432,
160
],
"parameters": {
"color": 7,
"width": 432,
"height": 592,
"content": "## **Real-Time Alerts**\n\nTriggers email and Slack notifications for high-priority opportunities"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"availableInMCP": false,
"executionOrder": "v1"
},
"versionId": "157b98dd-42b3-4d01-b074-1583a3c41de9",
"connections": {
"OpenAI GPT-4": {
"ai_languageModel": [
[
{
"node": "Investment Opportunity Analyzer",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Fetch MLS Data": {
"main": [
[
{
"node": "Combine All Data Sources",
"type": "main",
"index": 0
}
]
]
},
"Calculator Tool": {
"ai_tool": [
[
{
"node": "Investment Opportunity Analyzer",
"type": "ai_tool",
"index": 0
}
]
]
},
"Fetch Public Records": {
"main": [
[
{
"node": "Combine All Data Sources",
"type": "main",
"index": 0
}
]
]
},
"Fetch Demographic Data": {
"main": [
[
{
"node": "Combine All Data Sources",
"type": "main",
"index": 0
}
]
]
},
"Workflow Configuration": {
"main": [
[
{
"node": "Fetch MLS Data",
"type": "main",
"index": 0
},
{
"node": "Fetch Public Records",
"type": "main",
"index": 0
},
{
"node": "Fetch Demographic Data",
"type": "main",
"index": 0
},
{
"node": "Fetch Macroeconomic Data",
"type": "main",
"index": 0
}
]
]
},
"Daily Analysis Schedule": {
"main": [
[
{
"node": "Workflow Configuration",
"type": "main",
"index": 0
}
]
]
},
"Combine All Data Sources": {
"main": [
[
{
"node": "Investment Opportunity Analyzer",
"type": "main",
"index": 0
}
]
]
},
"Fetch Macroeconomic Data": {
"main": [
[
{
"node": "Combine All Data Sources",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Investment Opportunity Analyzer",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Investment Opportunity Analyzer": {
"main": [
[
{
"node": "Filter High-Priority Opportunities",
"type": "main",
"index": 0
}
]
]
},
"Filter High-Priority Opportunities": {
"main": [
[
{
"node": "Email Acquisition Team",
"type": "main",
"index": 0
},
{
"node": "Notify Investors on Slack",
"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.
gmailOAuth2openAiApislackOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automates end-to-end real estate investment analysis by aggregating data from multiple sources and applying AI-driven evaluation. It is designed for real estate investors, analysts, and portfolio managers seeking data-backed decisions without manual research…
Source: https://n8n.io/workflows/12273/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Created by: Peyton Leveillee Last updated: October 2025
This workflow automates comprehensive real estate investment analysis by orchestrating specialized AI agents to evaluate property data, market trends, and financial metrics. Designed for real estate i
kisisel asistan. Uses toolWorkflow, toolHttpRequest, toolCalculator, toolThink. Scheduled trigger; 43 nodes.
This workflow automates end-to-end sustainability lifecycle management for corporate sustainability teams, ESG governance officers, and circular economy programme leads. It addresses the challenge of
This workflow automates end-to-end ESG (Environmental, Social, and Governance) sustainability reporting for enterprise sustainability teams, compliance officers, and green governance leads. It solves