个人微信机器人开发:房产客户跟进系统搭建教程/文档
房产中介的私域和其他行业不一样:客户从咨询到成交少则三个月、多则半年。这带来两个行业特有的浪费——一是经纪人流动性大,人一走,他微信里几百个客户就等于丢了;二是沉睡客户没人管,三个月前咨询过的客户最近有购房资格了,没人知道,等他自己找上门,可能已经跟别家签了。
本教程用个人微信机器人开发 API 搭一套房产客户跟进系统:新客需求自动采集 → 房源卡片精准推送 → 带看预约承接 → 沉睡客户定时唤醒。基于标准 HTTP + Webhook 接口实现(本文以 WTAPI 为例,Python 代码),所有接口路径与参数均已对照官方开发文档核实,可直接作为搭建文档使用。
一、链路设计:围绕"长周期"建四层
新客咨询(MsgType=1)
→ ① 需求采集:预算/区域/户型 → 标签落库
→ ② 房源匹配:forwardUrl 推送房源链接卡片
→ ③ 带看信号("想看看/什么时候方便看")→ 推经纪人承接
→ ④ 沉睡唤醒:30 天未互动客户 → 定向内容触达
核心思路:机器保证每个客户在 6 个月里都被"有理由地"联系着,经纪人只出现在客户主动升温的时刻。
二、承接层:回调骨架
官方开发文档回调规范:3 秒内响应、去重键 Appid + Data.NewMsgId、文本消息 MsgType=1。标准三段式(去重 → 入队 → 立即返回):
import json, queue
import requests
from flask import Flask, request
API_BASE = "https://wx.chuapi.com"
APP_ID = "YOUR_APPID"
HEADERS = {
"X-finder-TOKEN": "YOUR_TOKEN",
"Authorization": "Bearer YOUR_JWT", # 部分环境需要
"Content-Type": "application/json",
}
task_queue = queue.Queue()
_seen = set()
app = Flask(__name__)
@app.route("/wtapi/callback", methods=["POST"])
def callback():
msg = request.get_json(silent=True) or {}
if msg.get("TypeName") == "AddMsg":
d = msg.get("Data", {})
# 过滤本号发出的消息,避免机器人回复自己
if d.get("FromUserName", {}).get("string") == msg.get("Wxid"):
return "", 200
key = f"{msg.get('Appid')}:{d.get('NewMsgId')}"
if key not in _seen and d.get("MsgType") == 1:
_seen.add(key)
task_queue.put(msg)
return "", 200
三、需求采集:三句话问出客户画像
新客首次咨询,机器人不急着推房源,先采需求——房产推荐错了方向,客户直接流失:
def on_new_client(wx_id):
post_text(wx_id,
"您好,为给您匹配合适的房源,先了解三点:\n"
"1️⃣ 大概预算区间?(如 300-400 万)\n"
"2️⃣ 考虑哪个区域?\n"
"3️⃣ 几室户型?自住还是投资?")
def post_text(to_wxid, content):
"""官方发消息接口 postText,参数仅 appId/toWxid/content"""
requests.post(
f"{API_BASE}/finder/v2/api/message/postText",
headers=HEADERS,
data=json.dumps({"appId": APP_ID, "toWxid": to_wxid, "content": content}),
timeout=10,
)
客户回答后,LLM 抽取结构化字段(预算/区域/户型)存入本地 CRM,同时写微信侧标签:预算-300-400万、区域-XX区、阶段-已采需求。标签接口用官方 POST /finder/v2/api/label/modifyMemberList,注意文档强调的全量修改语义:已有标签 1、2 要新增 3,labelIds 必须传 "1,2,3",只传新标签会把旧的冲掉(先用 POST /finder/v2/api/label/list 拿 labelName/labelId 映射,本地维护客户标签集合,合并后全量提交)。
四、房源推送与带看承接
匹配到房源后,别甩裸链接。用官方链接卡片接口 POST /finder/v2/api/message/forwardUrl(参数 appId/toWxid/xml,xml 为链接卡片结构,以官方文档 message 模块为准)推送房源详情页——有封面图、有标题的卡片,打开率是裸链的几倍:
def push_house(wx_id, house):
post_text(wx_id, f"按您 {house['budget']} 预算、{house['area']} 的需求,"
f"新上一套 {house['rooms']},单价 {house['price']},"
"比同小区挂牌低 5%,详情👇")
send_card(wx_id, title=house["title"], url=house["url"]) # forwardUrl
客户回复"想看看"“什么时候能看”,立即转经纪人:发一句"已为您安排专属顾问约看,马上联系您",同时把客户画像、需求标签、聊天记录摘要推到门店群。带看是房产唯一的成交前置动作,机器到此为止。
五、沉睡唤醒:本篇的核心竞争力
30 天未互动的客户进入唤醒池。唤醒不是群发广告,是带着客户标签的定向内容——他关心 XX 区,就发 XX 区的新房源或成交行情:
def wakeup_task():
# 每日定时任务:捞 30 天未互动客户,按标签定向触达
for client in db.get_sleeping_clients(days=30):
content = build_wakeup_content(client.tags) # 按标签生成定向话术
post_text(client.wx_id, content)
time.sleep(INTERVAL) # 串行发送,控制频率
两个工程要点:
- 频率红线:同一客户每月自动触达不超过 2 次,发送串行执行。唤醒的本质是"让他记得你",不是"让他烦你";
- 客户池定期盘点:经纪人离职时,用官方接口
POST /finder/v2/api/contacts/fetchContactsList(body 仅{"appId"})拉取该实例好友列表,与 CRM 比对,确保客户资产在公司系统里而不是个人微信里——这一条直接解决开头说的"人走客户丢"。
六、调试与上线
调试环境:WTAPI 开发文档站 weiti.apifox.cn 提供 7 天接口调用权限,后台附带 Demo 示例可供本地调试,本文所有接口路径与字段以文档实时内容为准。建议先在控制台「微信实例」扫码拿 appId,用 toWxid=filehelper(文件传输助手)自测推送链路,再接真实客户。
上线前三个提醒:
- 房源话术过合规:“绝版”“稳涨”"学区房 guarantee 入学"这类词进黑名单,房源描述以实际挂牌信息为准;
- 唤醒内容必须有信息增量(新房源/真实成交行情/政策变动),空问候式唤醒等于骚扰;
- 新实例先养后接:官方文档提示新设备部分功能有 1-3 天限制期,刚登录先低频跑几天。
合规声明:本文自动化能力仅用于客户主动咨询后的服务响应与存量客户维护,请遵守微信平台运营规范与房产中介行业监管要求,不使用任何非官方破解协议,不进行骚扰式批量营销。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)