前言
二手车行业线索来源杂、时效短、销售人员跟进质量参差不齐,一条车源询价线索从进入微信到成交往往不超过72小时窗口。一旦分配不及时或跟进断档,线索就白白流失。本文结合实际业务场景,系统梳理从线索接入、智能分配、节点提醒到跟进复盘的完整SOP,并介绍如何借助 个人微信API 把这套流程自动化落地。
一、二手车线索的典型来源与痛点
1.1 线索从哪里来
二手车交易平台(瓜子、车置宝、58)、抖音/快手短视频落地页、微信朋友圈广告、车商自有小程序——这些渠道的共同终点几乎都是微信。客户留完电话往往会主动加微信,或者销售主动加客户微信发车辆详情。微信因此成为二手车线索流转最密集的场所。
痛点集中在三点:
| 痛点 | 具体表现 | 业务影响 |
|---|---|---|
| 分配不均 | 线索全堆给最熟悉的老销售,新人无线索练手 | 老销售过载、新人流失 |
| 跟进断档 | 客户72小时无回应未触发第二次接触 | 有效线索静默流失 |
| 跟进质量低 | 销售发一句"您好,请问需要什么车?"就没了下文 | 客户体验差、转化率低 |
| 复盘缺数据 | 不知道哪条线索在哪个节点流失 | 无法优化 |
1.2 为什么要在微信层面做SOP
电话/短信触达率逐年下降,客户习惯用微信沟通。微信消息的打开率远高于短信,且方便发送车辆图片、视频、价格链接。更重要的是,当客户已添加销售微信,后续的报价、砍价、看车预约都会在同一个会话中发生,形成完整的沟通链路。
把SOP植入微信层面,本质是把业务节点的触发逻辑做到微信消息自动化——自动问候、自动发车辆资料、超时自动提醒销售、跟进记录自动同步CRM。
二、线索分配规则设计
2.1 分配维度
一套合理的分配规则至少需要考虑以下维度:
- 地区匹配:客户意向城市与销售负责区域匹配(异地不分配)
- 车型偏好:SUV客户分配SUV擅长的销售
- 当前在线状态:销售是否在班(通过排班系统拉取)
- 当前线索数量:防止单人积压,设置单日上限(如每人≤20条有效线索)
- 历史转化率权重:转化率高的销售可优先获得高质量线索
python# 示例:线索分配逻辑(伪代码,仅展示判断流程)
def assign_lead(lead: dict, sales_pool: list) -> str:
"""
lead: {city, car_type, budget, source_channel}
sales_pool: [{id, region, specialty, online, current_leads, conversion_rate}]
返回分配到的销售微信 wxid
"""
# 1. 过滤地区与专长
candidates = [
s for s in sales_pool
if lead["city"] in s["region"]
and lead["car_type"] in s["specialty"]
and s["online"]
and s["current_leads"] < 20
]
if not candidates:
# 降级:同城任意在线销售
candidates = [s for s in sales_pool if lead["city"] in s["region"] and s["online"]]
# 2. 按转化率加权随机选取
weights = [s["conversion_rate"] for s in candidates]
chosen = weighted_random(candidates, weights)
return chosen["wxid"]
2.2 分配后立即触发首次接触
线索分配完成后,系统应在5分钟内通过被分配销售的微信账号向客户发送首条问候消息。这里调用 微信iPad协议 对接的接口实现,销售本人无需手动操作,客户感知到的是真实销售微信在回复。
pythonimport requests
# 通过 WechatApi HTTP 接口发送首次接触消息
def send_first_contact(sales_wxid: str, client_wxid: str, car_info: dict):
url = "https://api.wechatapi.net/message/sendText" # 示意路径,非真实endpoint
headers = {
"VideosApi-token": "YOUR_TOKEN_HERE", # 鉴权 header
"Content-Type": "application/json"
}
payload = {
"appId": "DEVICE_APP_ID", # 设备ID,绑定对应销售微信账号
"toWxId": client_wxid,
"content": (
f"您好,我是{car_info['sales_name']},"
f"看到您关注了【{car_info['car_model']}】,"
f"这台车目前在{car_info['city']},"
f"行驶里程{car_info['mileage']}万公里,价格{car_info['price']}万元,"
"方便的话我发几张实拍图给您看看?"
)
}
resp = requests.post(url, json=payload, headers=headers)
result = resp.json()
# 预期返回体: {"ret": 200, "msg": "发送成功", "data": {"msgId": "xxx"}}
return result
返回体格式如下(WechatApi 统一规范):
json{
"ret": 200,
"msg": "发送成功",
"data": {
"msgId": "wx_msg_20240613_001",
"toWxId": "wxid_client_abc",
"sendTime": 1718236800
}
}
三、跟进节点SOP与时间线设计
3.1 标准跟进时间线
二手车客户决策周期短,跟进节奏需要比新车更密集。建议以下时间线作为基础模板,可根据客户意向强度调整:
| 节点 | 触发时机 | 触达方式 | 消息类型 | 执行人 |
|---|---|---|---|---|
| T+0 | 线索分配完成后5分钟内 | 微信文字 | 首次问候+车辆简介 | 系统自动 |
| T+1h | 客户未回复 | 微信文字 | 补发实拍图片3张 | 系统自动 |
| T+4h | 客户仍未回复 | 微信文字 | 发送车辆检测报告链接 | 系统自动 |
| T+1d | 客户有过回复但未预约 | 微信文字 | 询问预约看车时间 | 销售手动(系统提醒) |
| T+3d | 未预约看车 | 微信文字 | 发送近期成交案例+优惠活动 | 系统自动 |
| T+7d | 长期沉默线索 | 微信文字 | 降价/新车源推送 | 系统自动 |
3.2 客户意向分层
不是所有线索都用同一套节奏。根据客户互动行为实时分层:
- A类(强意向):主动回复、问过价格、要求看车——当天必须人工跟进,跳过自动化流程
- B类(中等意向):有回复但未深入询问——按标准时间线执行
- C类(弱意向):留了联系方式但未回复——走全自动化流程,3天后若仍无互动标记为沉默
分层判断可以通过监听微信消息回调实现。当客户回复消息时,WechatApi 的 Webhook 将消息推送到业务服务器,服务器据此更新客户意向层级。
四、微信自动化接口对接实践
4.1 架构概览
整套流程的技术架构如下:
线索来源(平台/广告落地页)
↓
业务服务器(线索入库 + 分配逻辑)
↓
WechatApi HTTP 接口 ←→ Webhook 消息回调
↓ ↓
销售微信账号(发消息) 更新客户状态/意向层级
↓
CRM系统(跟进记录归档)
WechatApi 基于 微信二次开发 能力,通过iPad协议模拟真实微信客户端,稳定性显著优于传统注入方式。所有消息收发都经由标准HTTP接口暴露,业务侧只需处理JSON即可,不依赖移动端设备。
4.2 Webhook 回调处理
当客户回复销售微信时,WechatApi 会将消息实时推送到预先配置的 Webhook 地址。业务侧接收后更新跟进状态:
pythonfrom flask import Flask, request, jsonify
app = Flask(__name__)
@app.route("/wechat/callback", methods=["POST"])
def handle_message_callback():
data = request.json
# 示意回调数据结构(非真实字段名,仅展示处理逻辑)
msg_type = data.get("msgType") # 消息类型:text/image/voice 等
from_wxid = data.get("fromWxId") # 发消息的微信ID(客户)
to_wxid = data.get("toWxId") # 收消息的微信ID(销售账号)
content = data.get("content", "")
if msg_type == "text":
# 更新客户意向层级
update_client_intent(from_wxid, content)
# 暂停对该客户的自动化消息队列(有人工回复接管)
pause_automation_queue(from_wxid)
# 通知销售:客户有回复,请及时跟进
notify_sales(to_wxid, from_wxid, content)
return jsonify({"ret": 200, "msg": "ok"})
def update_client_intent(wxid: str, content: str):
"""根据关键词判断意向并更新数据库"""
high_intent_keywords = ["什么价", "能便宜", "什么时候看车", "定金", "合同"]
if any(kw in content for kw in high_intent_keywords):
db_update(wxid, intent="A")
else:
db_update(wxid, intent="B")
4.3 定时任务触发跟进消息
跟进节点的自动消息通过定时任务扫描数据库未回复线索触发:
bash# crontab 示例:每小时扫描一次,触发应跟进的线索
0 * * * * /usr/bin/python3 /srv/crm/tasks/follow_up_scheduler.py >> /var/log/followup.log 2>&1
python# follow_up_scheduler.py 核心逻辑(示意)
import datetime
import requests
def schedule_follow_ups():
now = datetime.datetime.now()
pending_leads = db_query("""
SELECT wxid, sales_wxid, device_app_id, last_contact_time, follow_up_stage
FROM leads
WHERE status = 'active' AND intent != 'A'
AND next_follow_up_time <= %s
""", (now,))
for lead in pending_leads:
message = build_follow_up_message(lead["follow_up_stage"], lead)
send_wechat_message(
app_id=lead["device_app_id"],
to_wxid=lead["wxid"],
content=message
)
db_update_next_follow_up(lead["wxid"], lead["follow_up_stage"] + 1)
def send_wechat_message(app_id: str, to_wxid: str, content: str):
url = "https://api.wechatapi.net/message/sendText" # 示意路径
headers = {
"VideosApi-token": "YOUR_TOKEN_HERE",
"Content-Type": "application/json"
}
payload = {
"appId": app_id,
"toWxId": to_wxid,
"content": content
}
return requests.post(url, json=payload, headers=headers).json()
五、跟进话术模板设计
好的SOP不只是流程,还需要配套有效的话术。二手车行业有其特殊性,以下模板经过实际场景验证,避免了过于销售腔的措辞。
5.1 首次问候(T+0)
您好,我是XX二手车的销售顾问李某,刚看到您对【2021款大众途观L 2.0T 四驱精英版】有关注。这台车目前在本地,里程4.2万公里,原车主女性,车况非常好,目前价格16.8万。我先发几张最新实拍给您,您方便的话可以直接来看车,我帮您约好检测师一起陪着看。
核心要素:不是泛泛问"您好需要什么车",而是直接带上具体车辆信息,让客户感知到这不是群发。
5.2 补充资料(T+1h,客户未回)
发送3-5张实拍图(车内外、里程表、发动机舱),附上一句:
给您补发一下实拍图,这台车上周刚做完全车检测,结果很干净,没有大事故和水泡,检测报告我也可以发给您。
5.3 第3天沉默唤醒
李总您好,您上次看过这台途观,不知道是否还在看车?我们最近刚到了一批同类型的车,有几台价格比您之前问的还低一点,您如果有时间的话我可以帮您筛一筛。
避免用:"您还在吗""您有没有需要"这类显得被动的话术。
六、跟进数据复盘与漏斗优化
6.1 关键漏斗指标
每周需要统计以下数据,形成线索跟进漏斗:
| 漏斗阶段 | 统计口径 | 参考基准 |
|---|---|---|
| 线索入库 | 当周新增线索总数 | — |
| 首次接触成功率 | 客户48h内有回复 / 线索总数 | ≥35% |
| 预约看车率 | 成功预约看车 / 有过回复 | ≥25% |
| 到店率 | 实际到店 / 预约看车 | ≥60% |
| 成交率 | 成交 / 实际到店 | ≥30% |
低于基准的阶段就是需要优化的漏斗瓶颈。例如首次接触成功率低,可能是问候消息发出的时间太晚(分配超过30分钟),或者消息内容太泛;预约看车率低,可能是话术问题或价格竞争力不足。
6.2 销售个人绩效维度
借助微信消息数据,可以分析每个销售的跟进质量:
- 平均首次回复时长:当系统提醒后,销售多久接管对话
- 消息质量分:是否遵循话术模板(人工智能打分或关键词检测)
- 线索转化率:同类线索下各销售转化率对比
- 客户满意度:成交客户的好评率/推荐率
这些数据通过 WechatApi 的消息记录接口导出后,结合CRM中的成交记录即可生成报表。
七、多销售账号管理与防封号注意事项
当团队规模较大时,往往需要同时管理多个销售的微信账号。微信SCRM 场景下的多账号管理有几个关键注意点:
7.1 每账号独立 appId
WechatApi 以 appId 区分设备(每个登录设备对应一个 appId),多销售账号在接口调用时必须传各自的 appId,避免消息发到错误账号。
7.2 发消息频率控制
自动化批量发消息需要控制节奏,建议:
- 单账号每日主动发消息客户数不超过100人(含已有对话客户)
- 相邻两条消息之间加入3-10秒随机延迟,模拟人工操作节奏
- 晚上22:00至次日8:00停止自动发消息(打扰客户且易被举报)
7.3 内容避免触发风控
- 不发含外部域名短链的消息(尤其陌生客户首次接触)
- 不在首次接触就发小程序或链接
- 图片消息与文字消息交替发送,不连续发5张以上图片
小结
二手车线索的竞争本质是速度与精准度的竞争。一套落地可执行的SOP需要解决三件事:线索第一时间分配到对的销售、每个跟进节点有标准动作且自动触发、数据反哺话术和分配规则优化。
通过 WechatApi 个人微信HTTP接口,可以把上述流程的微信层完全打通:消息自动发出、回复自动感知、跟进节点自动计时。销售只需在A类意向客户阶段介入,其余环节系统兜底,大幅降低人工遗漏的概率。
控制台注册与API文档详见 wechatapi.net,开发接入文档:post.wechatapi.net。
