財産
中級
これはMarket Research, AI Summarization分野の自動化ワークフローで、8個のノードを含みます。主にCode, Telegram, ScheduleTrigger, ScrapegraphAiなどのノードを使用。 ScrapeGraphAIを使用してZillowの不動産一覧をTelegramに自動送信
前提条件
- •Telegram Bot Token
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "cmnzMjCOzadRrYT9",
"meta": {
"instanceId": "521567c5f495f323b77849c4cfd0c9f4f2396c986e324e0e66c8425b6f124744",
"templateCredsSetupCompleted": true
},
"name": "Real estate",
"tags": [],
"nodes": [
{
"id": "6a1fbe16-eb98-4106-b88a-9a069ac78a15",
"name": "スケジュールトリガー",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
700,
820
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "0c1aa147-5e3f-4a59-9f0f-2a115f03ffb7",
"name": "ScrapegraphAI",
"type": "n8n-nodes-scrapegraphai.scrapegraphAi",
"position": [
1380,
820
],
"parameters": {
"userPrompt": "Extract real estate listings from this site. Use the following schema for response { \"address\": \"123 Main St, Columbus, OH 43215\", \"price\": \"$450,000\", \"beds\": \"3\", \"baths\": \"2\", \"sqft\": \"1,850\", \"lot_size\": \"0.25 acres\", \"year_built\": \"1995\", \"property_type\": \"Single Family\", \"listing_url\": \"https://www.zillow.com/homedetails/123-Main-St...\" }",
"websiteUrl": "https://www.zillow.com/homes/?category=SEMANTIC&searchQueryState=%7B%22filterState%22%3A%7B%22isRecentlySold%22%3A%7B%22value%22%3Afalse%7D%2C%22isPreMarketPreForeclosure%22%3A%7B%22value%22%3Afalse%7D%2C%22isPreMarketForeclosure%22%3A%7B%22value%22%3Afalse%7D%2C%22isForRent%22%3A%7B%22value%22%3Afalse%7D%2C%22isForSaleByAgent%22%3A%7B%22value%22%3Atrue%7D%2C%22isForSaleByOwner%22%3A%7B%22value%22%3Atrue%7D%2C%22isAuction%22%3A%7B%22value%22%3Atrue%7D%2C%22isComingSoon%22%3A%7B%22value%22%3Atrue%7D%2C%22isForSaleForeclosure%22%3A%7B%22value%22%3Atrue%7D%2C%22isNewConstruction%22%3A%7B%22value%22%3Atrue%7D%2C%22sortSelection%22%3A%7B%22value%22%3A%22globalrelevanceex%22%7D%7D%2C%22regionSelection%22%3A%5B%7B%22regionId%22%3A44%7D%5D%2C%22usersSearchTerm%22%3A%22Ohio%22%7D"
},
"credentials": {
"scrapegraphAIApi": {
"id": "",
"name": ""
}
},
"typeVersion": 1
},
{
"id": "b9523259-cabb-41a4-9e55-9a106c4abc28",
"name": "コード",
"type": "n8n-nodes-base.code",
"notes": "Hey this is where \nyou \nformat results ",
"position": [
2140,
820
],
"parameters": {
"jsCode": "// Get the input data\nconst inputData = $input.all()[0].json;\n// Extract listings array from result - FIXED: use real_estate_listings\nconst listings = inputData.result.real_estate_listings || inputData.result.listings || inputData.result.properties || inputData.listings || [];\n\nfunction formatForTelegram(listing) {\n const {\n address,\n price,\n beds,\n baths,\n sqft,\n lot_size,\n year_built,\n year_bult, // Note: there's a typo in your data (year_bult instead of year_built)\n property_type,\n listing_url\n } = listing;\n\n // Handle null/undefined values\n const safeAddress = address || 'Address not available';\n const safePrice = price || 'Price not listed';\n const safeBeds = beds || 'N/A';\n const safeBaths = baths || 'N/A';\n const safeSqft = sqft || 'N/A';\n const safeLotSize = lot_size && lot_size !== '[null]' ? lot_size : null;\n // Handle both year_built and year_bult (typo in data)\n const safeYearBuilt = (year_built || year_bult) && (year_built || year_bult) !== 'N/A' ? (year_built || year_bult) : null;\n const safePropertyType = property_type || 'Property';\n const safeUrl = listing_url || '#';\n\n let message = `🏠 **NEW ${safePropertyType.toUpperCase()} LISTING**\n\n📍 **Address:** ${safeAddress}\n💰 **Price:** ${safePrice}\n🛏️ **Beds:** ${safeBeds} | 🚿 **Baths:** ${safeBaths}\n📐 **Size:** ${safeSqft} sqft`;\n\n // Add optional fields if available\n if (safeLotSize) {\n message += `\\n🌱 **Lot Size:** ${safeLotSize}`;\n }\n \n if (safeYearBuilt) {\n message += `\\n🗓️ **Year Built:** ${safeYearBuilt}`;\n }\n\n message += `\\n\\n🔗 [View Full Details](${safeUrl})\n\n━━━━━━━━━━━━━━━━━━━━━━\n🕐 Listed: ${new Date().toLocaleString()}`;\n\n return message;\n}\n\n// Debug log\nconsole.log(`Found ${listings.length} listings`);\n\n// Return each listing as separate execution with formatted Telegram text\nreturn listings.map(listing => ({\n json: {\n text: formatForTelegram(listing),\n // Keep original data for reference if needed\n address: listing.address,\n price: listing.price,\n beds: listing.beds,\n baths: listing.baths,\n sqft: listing.sqft,\n lot_size: listing.lot_size,\n year_built: listing.year_built || listing.year_bult, // Handle typo\n property_type: listing.property_type,\n listing_url: listing.listing_url\n }\n}));"
},
"notesInFlow": true,
"typeVersion": 2
},
{
"id": "19302435-3112-4136-a8a3-95ff5da1c8ef",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1180,
460
],
"parameters": {
"color": 5,
"width": 574.9363634768473,
"height": 530.4701664623029,
"content": "# Step 2: ScrapeGraphAI Node 🤖\n\nThis is the core node which will scrape the website that you want.\n\n## How to Use\n- Simply mention the website URL\n- Describe what you want to extract in natural language\n\n## Example\n- **Website**: `https://www.example.com`\n- **Instruction**: \"Extract all article titles and URLs from this news site\""
},
"typeVersion": 1
},
{
"id": "0e801cc4-a853-4fb1-a0c6-330943996f63",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1920,
460
],
"parameters": {
"color": 5,
"width": 574.9363634768473,
"height": 530.4701664623029,
"content": "# Step 3: Format the response 🧱\n\nThis node will format the results for sheets.\n\n## What it does\n- Prepares data for Telegram compatibility\n- Each listing is formatted in beautiful message\n- Maintains all important metadata\n- Easy to filter and analyze data"
},
"typeVersion": 1
},
{
"id": "76a1aff0-92cc-4bb0-84ec-525ed7a0cdf2",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
460,
460
],
"parameters": {
"color": 5,
"width": 574.9363634768473,
"height": 530.4701664623029,
"content": "# Step 1: Trigger ⏱️\n\nThis trigger will invoke the workflow on the mentioned time.\n\n## Configuration Options\n- You can mention your custom time for trigger\n- Or even choose a different trigger"
},
"typeVersion": 1
},
{
"id": "151eaaf9-a11f-42dc-8f08-3d4e6c7a5a03",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
2680,
460
],
"parameters": {
"color": 5,
"width": 574.9363634768473,
"height": 530.4701664623029,
"content": "# Step 4:Telegram Node 📧\nThis node will send the listings to your given channel or chat\n\n## What it does\n- Connects to your Telegram account\n- Sends the message using the created bot \n\n\n## Configuration\n- Create a bot using @botfather in Telegram\n- Add the given api key in config\n- Add your chat/channel username in config\n"
},
"typeVersion": 1
},
{
"id": "37d06314-47d4-4705-a52e-501caff0817f",
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"maxTries": 5,
"position": [
2920,
820
],
"parameters": {
"text": "={{ $json.text }}",
"chatId": "@housingprices",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "",
"name": ""
}
},
"executeOnce": false,
"retryOnFail": true,
"typeVersion": 1.2,
"alwaysOutputData": false,
"waitBetweenTries": 5000
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "6a32d4c5-dad4-442c-a6d6-19743b661a8c",
"connections": {
"Code": {
"main": [
[
{
"node": "37d06314-47d4-4705-a52e-501caff0817f",
"type": "main",
"index": 0
}
]
]
},
"37d06314-47d4-4705-a52e-501caff0817f": {
"main": [
[]
]
},
"0c1aa147-5e3f-4a59-9f0f-2a115f03ffb7": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "0c1aa147-5e3f-4a59-9f0f-2a115f03ffb7",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - 市場調査, AI要約
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
不動産市場の感情分析
ScrapeGraphAIとTelegramを使って不動産市場の感情を分析する
Code
Telegram
Schedule Trigger
+
Code
Telegram
Schedule Trigger
15 ノードvinci-king-01
市場調査
私のワークフロー 2
ScrapeGraphAIと戦略の計画を用いたAI駆動のコンテンツギャップ分析
Code
Google Sheets
Schedule Trigger
+
Code
Google Sheets
Schedule Trigger
18 ノードvinci-king-01
市場調査
不動産保守コスト分析
ScrapeGraphAIを使って不動産のメンテナンスコストを分析し、予算計画を立てる
Code
Schedule Trigger
Scrapegraph Ai
+
Code
Schedule Trigger
Scrapegraph Ai
12 ノードvinci-king-01
市場調査
ScrapegraphAIを使ってニュース記事を自動スクラップしてGoogleシートに保存
ScrapegraphAIを使ってニュース記事を自動スクレイピングし、Google Sheetsに保存
Code
Google Sheets
Schedule Trigger
+
Code
Google Sheets
Schedule Trigger
8 ノードvinci-king-01
市場調査
私のワークフロー2
AI競合監視と収益最適化を組み合わせた自動動の管理価格設定
If
Code
Merge
+
If
Code
Merge
25 ノードvinci-king-01
市場調査
私のワークフロー2
ScrapeGraphAIとGoogle Sheetsを使ってSEOのバックリンクを発見・分析する
Code
Filter
Email Send
+
Code
Filter
Email Send
17 ノードvinci-king-01
市場調査