8
n8n 中文网amn8n.com

从 CRM 获取物业潜在客户联系人信息

高级

这是一个Sales, AI领域的自动化工作流,包含 16 个节点。主要使用 Set, Code, Hubspot, EmailSend, HttpRequest 等节点,结合人工智能技术实现智能自动化。 BatchData跳转追踪和CRM集成的房地产线索生成

前置要求
  • HubSpot API Key
  • 可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "RGVS0tHJV7Wh6aX4",
  "meta": {
    "instanceId": "bb9853d4d7d87207561a30bc6fe4ece20b295264f7d27d4a62215de2f3846a56"
  },
  "name": "从 CRM 获取物业潜在客户联系人信息",
  "tags": [],
  "nodes": [
    {
      "id": "518b14de-23b9-4821-930c-8fa55eb4cfb4",
      "name": "当点击\"执行工作流\"时",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -340,
        280
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "939df2a3-f6dd-40c9-a01a-460923a332a6",
      "name": "每日计划",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -340,
        100
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "3228372f-ac40-4898-8bf5-09a4f37fde85",
      "name": "搜索物业 API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        320,
        260
      ],
      "parameters": {
        "url": "https://api.batchdata.com/api/v1/properties/search",
        "method": "POST",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.1
    },
    {
      "id": "0aa1fb95-66c8-4b61-81f5-04b37e5c1185",
      "name": "配置搜索参数",
      "type": "n8n-nodes-base.set",
      "position": [
        40,
        240
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "search_parameters",
              "value": "={ \"location\": { \"city\": \"Austin\", \"state\": \"TX\" }, \"propertyType\": \"single_family\", \"value\": { \"min\": 200000, \"max\": 500000 }, \"status\": \"distressed\", \"equity\": { \"min\": 30 }, \"limit\": 50 }"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 2
    },
    {
      "id": "052b357b-a374-4e0c-ab98-67e79ed8cf2b",
      "name": "筛选物业结果",
      "type": "n8n-nodes-base.code",
      "position": [
        540,
        260
      ],
      "parameters": {
        "jsCode": "// Process batch property results and filter according to criteria\nconst results = $input.all()[0].json.results || [];\n\n// Filter to find matching properties\nconst filteredProperties = results.filter(property => {\n  // Example filtering criteria - customize as needed\n  // Only include properties where:\n  // 1. Owner doesn't live at the property (absentee)\n  // 2. Property has been owned for 5+ years\n  // 3. No sales in the last 3 years\n  \n  const isAbsentee = property.owner_occupied === false;\n  \n  // Calculate years of ownership if purchase date exists\n  let yearsOwned = 0;\n  if (property.last_sale_date) {\n    const purchaseDate = new Date(property.last_sale_date);\n    const currentDate = new Date();\n    yearsOwned = currentDate.getFullYear() - purchaseDate.getFullYear();\n  }\n  \n  // Check if no recent sales (last 3 years)\n  let noRecentSales = true;\n  if (property.last_sale_date) {\n    const lastSale = new Date(property.last_sale_date);\n    const threeYearsAgo = new Date();\n    threeYearsAgo.setFullYear(threeYearsAgo.getFullYear() - 3);\n    noRecentSales = lastSale < threeYearsAgo;\n  }\n  \n  return isAbsentee && yearsOwned >= 5 && noRecentSales;\n});\n\n// Add relevant score to each property\nconst scoredProperties = filteredProperties.map(property => {\n  // Create a simple scoring system from 0-100\n  // This helps prioritize the best leads\n  let score = 50; // Base score\n  \n  // Increase score for properties with more equity\n  if (property.equity_percentage) {\n    score += Math.min(property.equity_percentage / 2, 25);\n  }\n  \n  // Increase score for longer ownership\n  if (property.last_sale_date) {\n    const purchaseDate = new Date(property.last_sale_date);\n    const currentDate = new Date();\n    const yearsOwned = currentDate.getFullYear() - purchaseDate.getFullYear();\n    score += Math.min(yearsOwned, 15);\n  }\n  \n  // Increase score for tax delinquency\n  if (property.tax_delinquent) {\n    score += 10;\n  }\n  \n  return { ...property, lead_score: Math.round(score) };\n});\n\n// Sort by score descending\nscoredProperties.sort((a, b) => b.lead_score - a.lead_score);\n\n// Return the filtered and scored properties\nreturn scoredProperties.map(property => {\n  return {\n    json: property\n  };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "2c183cc1-06a1-4528-82c3-df2585df58eb",
      "name": "获取业主联系信息",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        760,
        260
      ],
      "parameters": {
        "url": "https://api.batchdata.com/api/v1/property/skip-trace",
        "method": "POST",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.1
    },
    {
      "id": "2fe0aef9-30d2-4c30-9029-571f3b4c8ca9",
      "name": "格式化潜在客户数据",
      "type": "n8n-nodes-base.code",
      "position": [
        960,
        260
      ],
      "parameters": {
        "jsCode": "// Process and format the property data with owner contact info\nreturn $input.all().map(item => {\n  const property = item.json;\n  const skipTraceData = property.skip_trace_data || {};\n  const ownerInfo = property.owner_info || {};\n  \n  return {\n    json: {\n      // Property Information\n      property_id: property.property_id,\n      address: property.address,\n      city: property.city,\n      state: property.state,\n      zip: property.zip,\n      property_type: property.property_type,\n      beds: property.beds,\n      baths: property.baths,\n      sqft: property.building_sqft,\n      lot_size: property.lot_size,\n      year_built: property.year_built,\n      last_sale_date: property.last_sale_date,\n      last_sale_price: property.last_sale_price,\n      estimated_value: property.estimated_value,\n      estimated_equity: property.estimated_equity,\n      equity_percentage: property.equity_percentage,\n      lead_score: property.lead_score,\n      \n      // Owner Information\n      owner_name: ownerInfo.full_name || `${ownerInfo.first_name || ''} ${ownerInfo.last_name || ''}`.trim(),\n      owner_mailing_address: ownerInfo.mailing_address,\n      owner_mailing_city: ownerInfo.mailing_city,\n      owner_mailing_state: ownerInfo.mailing_state,\n      owner_mailing_zip: ownerInfo.mailing_zip,\n      \n      // Contact Info from Skip Trace\n      email: skipTraceData.email,\n      phone: skipTraceData.phone_number,\n      mobile: skipTraceData.mobile_number,\n      alternate_phone: skipTraceData.alternate_phone,\n      \n      // Additional Details\n      absentee_owner: property.owner_occupied === false ? 'Yes' : 'No',\n      tax_delinquent: property.tax_delinquent ? 'Yes' : 'No',\n      years_owned: property.years_owned,\n      lead_source: 'BatchData Property Search',\n      date_added: new Date().toISOString().split('T')[0]\n    }\n  };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "013469c2-1e83-44e0-b078-c0b3d052a2c5",
      "name": "创建 Excel 电子表格",
      "type": "n8n-nodes-base.spreadsheetFile",
      "position": [
        1280,
        160
      ],
      "parameters": {
        "options": {
          "fileName": "Property_Leads_{{ $now.format('YYYY-MM-DD') }}.xlsx",
          "headerRow": true
        },
        "operation": "toFile",
        "fileFormat": "xlsx"
      },
      "typeVersion": 2
    },
    {
      "id": "954c492a-7da2-4902-99ab-318d4ea6e333",
      "name": "推送到 CRM",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        1280,
        540
      ],
      "parameters": {
        "options": {},
        "additionalFields": {}
      },
      "typeVersion": 2
    },
    {
      "id": "61bfd72b-8971-4298-8d2a-09baea403956",
      "name": "邮件通知",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1520,
        300
      ],
      "webhookId": "e9459278-1cd9-47bb-bffd-88380d297217",
      "parameters": {
        "options": {},
        "subject": "Property Lead Report - {{ $now.format('YYYY-MM-DD') }}",
        "toEmail": "your-email@yourdomain.com",
        "fromEmail": "no-reply@yourdomain.com"
      },
      "typeVersion": 2.1
    },
    {
      "id": "a79a0618-ac63-4aaf-8337-b9ccc5940eef",
      "name": "汇总结果",
      "type": "n8n-nodes-base.code",
      "position": [
        1280,
        360
      ],
      "parameters": {
        "jsCode": "// Summarize the results of the property lead search\nconst leads = $input.all();\nconst totalLeads = leads.length;\n\n// Calculate the highest lead score\nlet highestScore = 0;\nif (totalLeads > 0) {\n  highestScore = Math.max(...leads.map(item => item.json.lead_score || 0));\n}\n\n// Return a summary object\nreturn {\n  json: {\n    total_leads: totalLeads,\n    highest_score: highestScore,\n    execution_date: new Date().toISOString(),\n    success: true\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "cf6bbc2b-4892-4612-aee9-7f255f627a67",
      "name": "便签 - 工作流概览",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -420,
        -520
      ],
      "parameters": {
        "width": 800,
        "height": 280,
        "content": "# 物业潜在客户自动化工作流"
      },
      "typeVersion": 1
    },
    {
      "id": "ff155460-3f4e-44e8-aac7-4b84dff2dceb",
      "name": "便签 - 触发器",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -420,
        -160
      ],
      "parameters": {
        "color": 2,
        "width": 320,
        "height": 620,
        "content": "## 工作流触发器"
      },
      "typeVersion": 1
    },
    {
      "id": "8c127497-0dc4-428d-a946-14c10b9572cb",
      "name": "便签 - 物业搜索",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -180
      ],
      "parameters": {
        "color": 4,
        "width": 320,
        "height": 650,
        "content": "## 搜索配置"
      },
      "typeVersion": 1
    },
    {
      "id": "20ad7c5e-5d73-4b43-b5b0-6c9eaae18400",
      "name": "便签 - 数据处理",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        260,
        -180
      ],
      "parameters": {
        "color": 5,
        "width": 880,
        "height": 660,
        "content": "## 物业数据处理"
      },
      "typeVersion": 1
    },
    {
      "id": "a0254233-a0af-43b2-8258-0820d8fdd49d",
      "name": "便签 - 输出",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1180,
        -180
      ],
      "parameters": {
        "color": 6,
        "width": 560,
        "height": 920,
        "content": "## 潜在客户输出选项"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "ff401fba-f56d-4d22-b259-d23a4e141a98",
  "connections": {
    "Daily Schedule": {
      "main": [
        [
          {
            "node": "Configure Search Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Lead Data": {
      "main": [
        [
          {
            "node": "Create Excel Spreadsheet",
            "type": "main",
            "index": 0
          },
          {
            "node": "Push to CRM",
            "type": "main",
            "index": 0
          },
          {
            "node": "Summarize Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summarize Results": {
      "main": [
        [
          {
            "node": "Email Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search Properties API": {
      "main": [
        [
          {
            "node": "Filter Property Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Owner Contact Info": {
      "main": [
        [
          {
            "node": "Format Lead Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Property Results": {
      "main": [
        [
          {
            "node": "Get Owner Contact Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Excel Spreadsheet": {
      "main": [
        [
          {
            "node": "Email Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Configure Search Parameters": {
      "main": [
        [
          {
            "node": "Search Properties API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \"Execute Workflow\"": {
      "main": [
        [
          {
            "node": "Configure Search Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 销售, 人工智能

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量16
分类2
节点类型9
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Preston Zeller

Preston Zeller

@zellerhaus

Growth strategist and technologist, seeing companies from $25MM to $300MM ARR. Building innovative solutions with AI, workflows, desktop and mobile applications.

外部链接
在 n8n.io 查看

分享此工作流