前言
对于房产中介而言,微信既是最主要的客户沟通渠道,也是获客竞争最激烈的战场。一个活跃的房产经纪人,每天要处理数十条咨询消息、跟进多个潜在客户、推送新盘动态,同时还要维护老客户关系——这些工作量如果完全依赖人工,极容易出现漏回消息、跟进不及时、信息发送遗漏等问题。
本文从实际业务场景出发,介绍如何借助微信 HTTP 接口,将房产中介日常的获客流程和客户跟进工作做一定程度的自动化改造,重点覆盖:自动接待新加好友、客户意向分类打标、楼盘信息定时群发、带看提醒与回访任务等环节。文章附带可直接参考的 Python 示例代码,开发者可按需调整接入自身系统。
一、房产中介的微信获客痛点
1.1 人工维护的效率瓶颈
传统模式下,经纪人的微信获客链路大致如下:
- 在小红书、抖音、朋友圈投放内容 → 潜客加微信
- 经纪人手动通过好友申请
- 发送欢迎语、询问购房意向
- 按意向程度决定是否邀入看房群
- 定期推送新盘、跟进进度
每一步都需要人工介入,且响应速度直接影响转化率。研究表明,客户发出咨询后 5 分钟内得到回复,转化概率是 30 分钟后回复的 5 倍以上。经纪人同时维护几十个甚至上百个潜客微信时,人工响应的延迟几乎不可避免,这正是自动化发挥价值的核心场景。
1.2 常见问题归类
| 问题类型 | 具体表现 | 影响 |
|---|---|---|
| 响应迟缓 | 下班后/看房中无法及时回复 | 客户流失 |
| 跟进遗漏 | 手动记录容易忘记 | 意向客丢单 |
| 信息推送低效 | 一条一条手动转发楼盘信息 | 人力消耗大 |
| 客户分层模糊 | 缺乏系统化的意向标签 | 资源浪费 |
自动化可以解决前三类问题,第四类则需要自动化配合 CRM 系统来完善。
1.3 自动化的适用边界
需要明确的是,自动化并非万能。以下场景仍需人工介入:
- 价格谈判与合同条款:涉及大额资金决策,客户需要人情温度和专业判断。
- 带看陪同:实地看房是建立信任的关键环节,任何自动化都无法替代。
- 投诉与纠纷处理:敏感情绪场景需要真人及时安抚。
- 复杂贷款咨询:政策细节多变,AI 回答风险较大。
自动化的定位是把可预期、规则化的动作从人工手中解放出来,让经纪人把有限精力集中在高价值的人际互动上。
二、整体技术架构
自动化系统的核心由三部分组成:
微信端 ──回调──▶ 业务服务器 ──写入──▶ CRM/数据库
│
┌─────┴─────┐
▼ ▼
自动回复逻辑 定时任务调度
│ │
└─────┬─────┘
▼
微信接口层(HTTP POST)
- 微信接口层:通过 REST API 调用微信能力(消息收发、好友管理、群操作等)
- 回调服务:接收微信端推送的消息事件,触发业务逻辑
- 定时任务:驱动楼盘推送、回访提醒等计划性操作
接口统一使用 HTTP POST + JSON,鉴权 token 放请求头,appId 标识当前登录的微信设备,具体字段以实际使用的平台文档为准。
2.1 技术选型建议
业务服务器推荐使用 Python + Flask/FastAPI,轻量易维护,适合快速接入微信回调。定时任务可使用 APScheduler(轻量单机场景)或 Celery+Redis(高并发多账号场景)。CRM 层如果已有现成系统(如纷享销客、销售易等),可直接调用其 API 写入标签和跟进记录;没有现成 CRM 的小团队,用 MySQL 简单建表即可满足基本需求。
三、账号登录与在线维持
3.1 扫码登录流程
pythonimport requests
import time
BASE = "https://你的接口域名" # 注册后在官方文档获取
TOKEN = "你的Token"
HEADERS = {"token": TOKEN} # 鉴权字段名以官方文档为准
def get_login_qrcode():
"""获取登录二维码"""
resp = requests.post(f"{BASE}/login/getLoginQrCode", headers=HEADERS, json={})
data = resp.json()
if data["ret"] == 200:
# 返回 data["data"]["qrCodeUrl"] 或 base64 图片
return data["data"]
raise Exception(f"获取二维码失败: {data['msg']}")
def check_login_status(app_id):
"""轮询登录状态"""
resp = requests.post(
f"{BASE}/login/checkLogin",
headers=HEADERS,
json={"appId": app_id}
)
return resp.json()
# 示例:扫码登录主流程
qr_info = get_login_qrcode()
print("请扫描二维码:", qr_info)
# 轮询等待扫码
app_id = qr_info.get("appId")
for _ in range(60):
status = check_login_status(app_id)
if status["ret"] == 200 and status["data"].get("loginState") == 1:
print("登录成功,appId:", app_id)
break
time.sleep(3)
登录成功后,appId 即为该微信设备的唯一标识,后续所有接口调用都需要携带。
3.2 设置消息回调
系统上线前必须先配置回调地址,否则无法接收新加好友、新消息等事件:
pythondef set_callback(app_id, callback_url):
"""设置消息回调地址(需公网可达)"""
resp = requests.post(
f"{BASE}/login/setCallback",
headers=HEADERS,
json={"appId": app_id, "callbackUrl": callback_url}
)
return resp.json()
# 回调地址必须公网可达,且接收到消息后返回 HTTP 200
result = set_callback(app_id, "https://你的服务器/wechat/callback")
# 代码为示例,具体接口/字段以官方文档为准
3.3 在线状态监控与自动重连
生产环境中,微信账号可能因网络波动、安全策略等原因掉线。建议设置定期心跳检测,发现离线时自动告警或触发重新登录:
pythondef check_online(app_id):
"""检查微信是否在线"""
resp = requests.post(
f"{BASE}/login/checkOnline",
headers=HEADERS,
json={"appId": app_id}
)
data = resp.json()
return data.get("data", {}).get("isOnline", False)
建议每 10 分钟调用一次 checkOnline,离线时通过企业微信机器人或短信通知运维人员,确保账号始终在线。
四、自动接待新加好友
房产中介最常见的获客场景:潜客通过扫码或搜索加了微信好友,系统需要在第一时间发送欢迎语并采集基础意向。
4.1 回调服务接收好友申请
pythonfrom flask import Flask, request, jsonify
import json
app = Flask(__name__)
APPID = "你的appId"
@app.route("/wechat/callback", methods=["POST"])
def wechat_callback():
"""接收微信回调"""
payload = request.get_json(force=True)
msg_type = payload.get("type")
# 新好友申请(type 值以实际文档为准)
if msg_type == "friendRequest":
handle_friend_request(payload)
# 收到好友消息
elif msg_type == "textMessage":
handle_text_message(payload)
return jsonify({"code": 200})
def handle_friend_request(payload):
"""自动通过好友申请并发送欢迎语"""
from_wxid = payload.get("fromWxid")
# 通过好友申请
accept_friend(from_wxid)
# 延迟 2 秒后发送欢迎语(模拟真人操作节奏)
time.sleep(2)
send_welcome_message(from_wxid)
4.2 发送欢迎语与意向采集
pythondef accept_friend(wxid):
"""通过好友申请"""
requests.post(
f"{BASE}/contacts/acceptFriend",
headers=HEADERS,
json={"appId": APPID, "wxid": wxid}
)
def send_welcome_message(wxid):
"""发送欢迎语"""
welcome_text = (
"您好,感谢添加!我是XX房产顾问。\n\n"
"请问您主要关注哪个区域的房源?\n"
"1️⃣ 购房预算大概是多少?\n"
"2️⃣ 是首套还是改善?\n"
"3️⃣ 对户型/楼层有特别要求吗?\n\n"
"我会根据您的需求第一时间为您匹配合适的房源!"
)
requests.post(
f"{BASE}/message/postText",
headers=HEADERS,
json={
"appId": APPID,
"toWxid": wxid,
"content": welcome_text
}
)
# 代码为示例,具体接口/字段以官方文档为准
实际部署时,欢迎语内容可存储在数据库中,支持按不同引流渠道(小红书/抖音/朋友圈广告)展示不同话术。例如,从小红书过来的客户往往更关注学区和环境,话术可着重询问子女就读需求;从抖音短视频来的客户更可能是首次购房,话术可侧重引导预算和贷款咨询。
五、客户意向分层与自动打标
收到客户回复后,系统需要根据关键词或 AI 分类,将客户划入不同意向层级,便于后续差异化跟进。
5.1 关键词意向识别
python# 意向分层规则(可替换为 LLM 分类)
INTENT_KEYWORDS = {
"high": ["急", "近期", "这个月", "下个月", "已经看好", "确定买", "签合同"],
"medium": ["半年内", "在考虑", "了解一下", "比较一下", "什么时候看房"],
"low": ["随便看看", "以后再说", "没想好", "暂时不急"]
}
def classify_intent(message_content: str) -> str:
"""根据关键词判断购房意向"""
for level, keywords in INTENT_KEYWORDS.items():
if any(kw in message_content for kw in keywords):
return level
return "unknown"
def update_customer_tag(wxid: str, intent_level: str):
"""将意向等级写入 CRM(示例用本地字典模拟)"""
# 实际项目中替换为数据库写入或 CRM API 调用
customer_db = load_customer_db()
customer_db[wxid] = {
"intent": intent_level,
"last_contact": time.time()
}
save_customer_db(customer_db)
print(f"客户 {wxid} 意向更新为: {intent_level}")
5.2 按意向层级触发不同动作
| 意向等级 | 自动动作 |
|---|---|
| high(高意向) | 立即推送最新匹配房源 + 邀请加入看房群 |
| medium(中意向) | 加入楼盘资讯群 + 每周推送行情分析 |
| low(低意向) | 仅加入朋友圈观察,不频繁打扰 |
| unknown(未知) | 3天后发送一次跟进问候 |
5.3 意向标签的动态更新
客户意向并非一成不变。建议在每次收到客户消息时重新执行分类,并对历史标签做更新。例如,原本是"低意向"的客户突然询问"这套房还有吗",需要立刻升级为"高意向"并通知经纪人跟进。同时,超过 60 天未联系的客户,意向等级应自动降级,避免资源错配。
六、楼盘信息定时群发
定时推送新盘和行情是维系客户关系的重要手段,适合使用任务调度框架(如 APScheduler 或 Celery)驱动。
WechatApi 提供扫码登录、消息收发、好友与群管理等 REST 接口,HTTP 调用即可,适合将楼盘信息的批量推送直接对接进自动化流程。
6.1 向高意向客户群发文字+图片
pythonimport random
def push_new_listing(target_wxids: list, listing_info: dict):
"""
向指定客户列表推送新楼盘
listing_info 示例:
{
"name": "XX花园",
"price": "3.2万/㎡",
"area": "南山区",
"highlight": "地铁口300米,学区房",
"image_url": "https://内部图片服务器/xxx.jpg"
}
"""
text_content = (
f"🏠 新盘速递 | {listing_info['name']}\n"
f"📍 位置:{listing_info['area']}\n"
f"💰 参考价:{listing_info['price']}\n"
f"✨ 亮点:{listing_info['highlight']}\n\n"
"有兴趣的话可以约个时间实地看看,名额有限~"
)
for wxid in target_wxids:
# 先发文字
requests.post(
f"{BASE}/message/postText",
headers=HEADERS,
json={"appId": APPID, "toWxid": wxid, "content": text_content}
)
# 随机间隔 3-8 秒后发图,避免频率过高
time.sleep(random.uniform(3, 8))
requests.post(
f"{BASE}/message/postImage",
headers=HEADERS,
json={"appId": APPID, "toWxid": wxid, "imgUrl": listing_info["image_url"]}
)
# 每个客户之间间隔 5-15 秒
time.sleep(random.uniform(5, 15))
# 代码为示例,具体接口/字段以官方文档为准
6.2 群组楼盘推送
对于已拉入看房群的客户,可以通过群聊统一推送,减少重复操作:
pythondef push_to_chatroom(chatroom_id: str, content: str):
"""向看房群推送楼盘信息"""
requests.post(
f"{BASE}/message/postText",
headers=HEADERS,
json={
"appId": APPID,
"toWxid": chatroom_id, # 群 wxid
"content": content
}
)
6.3 推送内容的运营建议
群发内容的质量直接影响客户是否拉黑屏蔽。以下几点值得注意:
- 频率控制:同一客户每周收到的营销信息不超过 2 次,高意向客户可适当提高到每 2-3 天一次。
- 个性化优先:根据客户历史意向(预算、区域、户型偏好)筛选匹配房源推送,避免无差别轰炸。
- 内容多样化:除楼盘信息外,可穿插市场行情解读、政策解析、购房流程科普等内容,提升信息价值感。
- 时间选择:工作日早 9 点、午休 12 点、晚 8 点是打开率较高的时段,周末上午也是不错的选择。
七、带看提醒与跟进任务自动化
7.1 带看前自动提醒
带看前一天和当天上午各发一次提醒,可有效降低客户爽约率:
pythonfrom apscheduler.schedulers.background import BackgroundScheduler
from datetime import datetime, timedelta
scheduler = BackgroundScheduler()
def schedule_viewing_reminder(wxid: str, viewing_time: datetime, property_name: str):
"""安排带看提醒任务"""
# 前一天提醒
remind_day_before = viewing_time - timedelta(days=1)
# 当天上午 9 点提醒
remind_morning = viewing_time.replace(hour=9, minute=0, second=0)
for remind_time in [remind_day_before, remind_morning]:
if remind_time > datetime.now():
scheduler.add_job(
func=send_viewing_reminder,
trigger="date",
run_date=remind_time,
args=[wxid, viewing_time, property_name]
)
def send_viewing_reminder(wxid: str, viewing_time: datetime, property_name: str):
"""发送带看提醒"""
time_str = viewing_time.strftime("%m月%d日 %H:%M")
message = (
f"温馨提示:您已预约 {time_str} 看房\n"
f"房源:{property_name}\n\n"
"如需改期或有任何问题,请随时联系我!期待与您见面 😊"
)
requests.post(
f"{BASE}/message/postText",
headers=HEADERS,
json={"appId": APPID, "toWxid": wxid, "content": message}
)
# 代码为示例,具体接口/字段以官方文档为准
7.2 带看后回访跟进
带看结束后 24 小时内发送回访消息,收集反馈并推进成交:
pythondef schedule_followup(wxid: str, property_name: str):
"""带看后 24 小时自动跟进"""
followup_time = datetime.now() + timedelta(hours=24)
scheduler.add_job(
func=send_followup,
trigger="date",
run_date=followup_time,
args=[wxid, property_name]
)
def send_followup(wxid: str, property_name: str):
"""发送跟进消息"""
message = (
f"您好!昨天一起看了 {property_name},不知道整体感觉怎么样?\n\n"
"如果有心仪的地方,我可以帮您进一步了解产权、税费等细节;\n"
"如果还想再看看其他房源,我这边也随时可以安排。\n\n"
"您方便的时候告诉我一声~"
)
requests.post(
f"{BASE}/message/postText",
headers=HEADERS,
json={"appId": APPID, "toWxid": wxid, "content": message}
)
7.3 长周期跟进策略
房产交易决策周期长,部分客户从初次咨询到最终下单可能需要 3-6 个月甚至更长时间。建议设计分阶段的长周期跟进节奏:
- 0-7 天:高频跟进,每 2-3 天一次,重点了解需求细节并推送匹配房源。
- 8-30 天:中频跟进,每周一次,以市场行情或政策信息为切入点保持联系。
- 31-90 天:低频维护,每 2 周一次,节假日发送问候,避免客户遗忘。
- 90 天以上:季度一次问候即可,保留在通讯录中,等待客户重新激活。
每个阶段的消息内容都应避免纯粹的促销感,多以"分享资讯"的口吻出现,让客户感受到价值而非骚扰。
八、防封号注意事项
自动化操作微信需要特别注意频率控制,以下是经验建议:
8.1 好友操作频率
- 每天主动添加好友不超过 15 个,每 2 小时不超过 5 个
- 新账号需在线 3 天以上再开始使用自动化功能
- 被动通过好友申请每天不超过 200 个
- 每次操作之间加入随机延迟(3-15 秒),避免固定节奏被识别
8.2 消息发送频率
- 批量私信时,每条消息之间间隔 5-15 秒
- 同一客户同一天内消息不超过 5 条(营销类)
- 群发新盘信息建议在工作时间段(早 9 点到晚 9 点)执行
- 避免在深夜或凌晨批量发消息
8.3 内容合规
- 推送内容避免包含过多联系方式和外部链接
- 图片内容不要出现夸张的广告促销字样
- 朋友圈发布频率新号每天不超过 3 条
8.4 常见问题排查
| 现象 | 可能原因 | 排查方向 |
|---|---|---|
| 收不到客户消息 | 回调地址不通 | 检查服务器公网可达性,确认返回 HTTP 200 |
| 发消息接口失败 | 微信离线或 token 过期 | 调用 checkOnline 接口验证登录状态 |
| 好友申请发送失败 | 操作频率过高 | 降低频率,增加随机延迟 |
| 消息发出但对方没收到 | 对方设置了陌生人消息屏蔽 | 换群内 @ 的方式触达 |
8.5 账号安全加固建议
除频率控制外,还有几点容易被忽视的账号安全事项:
- 使用实名注册的老号:使用时间超过 6 个月、有真实社交记录的微信号抗风险能力更强,避免使用批量注册的新号直接跑自动化。
- 设备稳定性:固定一台设备运行,避免频繁更换设备登录同一账号。
- 备份联系人:定期导出好友列表到本地,防止账号异常时客户数据丢失。
- 遵守平台规则:以官方文档为准,不同时期的接口能力和风控规则可能存在变化,需持续关注更新。
总结
将微信获客与客户跟进流程做自动化改造,核心思路是把可预期、可规则化的动作(迎新、分层、定时推送、提醒)交给系统处理,让经纪人把精力集中在需要人情温度的环节——比如带看陪同、价格谈判和合同解读。
从技术角度看,方案并不复杂,回调接收消息 + 业务逻辑判断 + 定时任务调度,三个模块组合就能覆盖大部分场景。实际落地时,需要重点关注以下几点:频率控制是系统稳定运行的基础;话术设计直接影响客户体验和转化效率;意向标签体系需要随业务积累不断迭代优化;长周期跟进的节奏把握是最终转化的关键。
建议先在小规模场景(单个账号、固定客群)验证流程可行性,再逐步扩展到多账号、多渠道的复杂场景,避免因配置不当导致大规模封号风险。
