前言
婚庆策划公司的客资高度依赖微信——咨询、跟进、签约、档期确认全部发生在个人微信上。但人工管理几十上百对准新人、手动提醒档期,极易出现漏跟进、撞档期、提醒延误等问题。本文介绍如何通过接入 WechatApi 个人微信API 构建一套轻量级客资管理与档期提醒系统,让婚庆团队从"人盯微信"升级为"系统自动跑"。
婚庆行业的客资管理痛点
婚庆策划不同于电商或 SaaS,其客资有鲜明特点:
- 周期长、频次低:从首次咨询到成交平均 2-8 周,期间沟通断断续续,容易被竞品截胡。
- 档期强绑定:婚礼日期固定,档期一冲突即失单,多场婚礼并行时人工核档极易出错。
- 微信是唯一入口:准新人几乎不用邮件、电话回复率低,所有有效沟通集中在个人微信。
- 私域流失率高:业务员离职带走好友、微信封号等问题随时发生,客资沉淀困难。
传统解法是在 Excel 里记台账 + 手机日历设提醒,本质上仍是"人盯微信",规模一大就失控。真正的解法是把微信消息流纳入系统,让自动化流程接管重复性工作。
系统架构概览
整个方案由三层构成:
| 层级 | 角色 | 技术实现 |
|---|---|---|
| 接入层 | 微信消息收发 | WechatApi(iPad 协议,个人微信账号) |
| 业务层 | 客资库 + 档期库 | MySQL / PostgreSQL 或轻量 SQLite |
| 调度层 | 定时提醒任务 | Python APScheduler / Celery Beat |
WechatApi 基于 微信 iPad 协议,在云端模拟 iPad 端登录,无需手机常驻在线,通过标准 HTTP API 收发消息、管理好友与群聊,是婚庆私域场景最稳定的接入方式之一。
客资录入:从首条微信消息自动建档
1. 消息 Webhook 接收
在 WechatApi 控制台(https://newmanager.wechatapi.net/dashboard/)配置消息回调地址,所有进入业务微信号的消息将以 POST JSON 推送到你的服务器。
python# Flask 示例:接收微信消息 Webhook
from flask import Flask, request, jsonify
import db # 自定义数据库模块
app = Flask(__name__)
@app.route("/wechat/webhook", methods=["POST"])
def wechat_webhook():
payload = request.get_json()
msg_type = payload.get("data", {}).get("type") # text / image / voice ...
sender = payload.get("data", {}).get("fromUser")
content = payload.get("data", {}).get("content", "")
if msg_type == "text":
# 检查发送者是否已在客资库,否则自动建档
if not db.customer_exists(sender):
db.create_customer(wxid=sender, source="微信主动咨询", stage="初步接触")
db.log_message(sender, content)
return jsonify({"status": "ok"})
关键点:fromUser 字段即对方微信 ID,可作为客资库主键;content 字段存入消息日志,后续可用关键词分析判断意向度("档期""价格""现场布置"等词出现频率越高,意向越强)。
2. 客资库核心字段设计
sqlCREATE TABLE customers (
id INTEGER PRIMARY KEY AUTOINCREMENT,
wxid TEXT UNIQUE NOT NULL, -- 微信 ID(fromUser)
nickname TEXT, -- 微信昵称(从好友信息接口获取)
phone TEXT,
wedding_date DATE, -- 计划婚礼日期(核心!)
venue TEXT, -- 场地
budget INTEGER, -- 预算(元)
stage TEXT DEFAULT '初步接触', -- 初步接触/已报价/已签约/已服务
owner TEXT, -- 负责策划师
last_contact DATETIME,
notes TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
wedding_date 字段是整个档期提醒系统的核心触发源,所有后续自动化逻辑都以此字段驱动。
主动发消息:跟进与提醒的 API 调用范式
WechatApi 的所有写操作均通过 HTTP POST + JSON 完成,鉴权使用请求头 VideosApi-token,业务参数中必须携带 appId(即设备 ID,在控制台创建设备后获取)。
发送文本消息示例
pythonimport requests
API_BASE = "https://api.wechatapi.net" # 示意地址,以控制台实际域名为准
TOKEN = "your-videos-api-token"
APP_ID = "your-device-app-id"
def send_text(to_wxid: str, content: str) -> dict:
"""向指定微信 ID 发送文本消息"""
resp = requests.post(
f"{API_BASE}/message/send-text",
headers={"VideosApi-token": TOKEN, "Content-Type": "application/json"},
json={
"appId": APP_ID,
"toUser": to_wxid,
"content": content
},
timeout=10
)
return resp.json()
# 调用
result = send_text("wxid_abc123", "您好!您预约的10月婚礼还有30天,我们来确认一下场地和流程安排 🌸")
# 预期返回
# {"ret": 200, "msg": "发送成功", "data": {"msgId": "xxxxxxxx"}}
返回体约定:ret=200 为成功;ret 为其他值时查看 msg 字段获取错误原因。发送失败需记录到重试队列,避免漏发。
档期管理:冲突检测与可视化台账
档期冲突检测逻辑
同一天同一场地只能承接有限场婚礼(通常 1-2 场),新客资录入时必须自动检测冲突:
pythondef check_schedule_conflict(wedding_date: str, venue: str, max_events: int = 2) -> bool:
"""
检测指定日期+场地是否已满档
返回 True 表示冲突(已满),False 表示可接
"""
count = db.query_one(
"SELECT COUNT(*) FROM customers WHERE wedding_date=? AND venue=? AND stage!='已取消'",
(wedding_date, venue)
)
return count >= max_events
建议在微信回话中收到客户报出的婚礼日期关键词时("我们想定 10 月 5 号"),自动调用此函数,并立即回复档期状态:
- 有档 → 回复"10月5日我们还有档期,为您预留24小时,请尽快确认"
- 满档 → 回复"很遗憾10月5日档期已满,临近日期还有X日、X日可选"
这一环节用 微信客服机器人 方案替代人工值班,可 7×24 小时响应,大幅减少因回复不及时导致的客资流失。
档期台账表(Markdown 示例)
实际系统中此台账由程序动态生成,可推送到内部群供策划团队查阅:
| 日期 | 场地 | 客户 | 负责人 | 阶段 | 备注 |
|---|---|---|---|---|---|
| 2026-10-01 | 玫瑰厅 | 张先生&李女士 | 王策划 | 已签约 | 中式婚礼 |
| 2026-10-01 | 星河厅 | 陈先生&刘女士 | 李策划 | 已报价 | 西式草坪 |
| 2026-10-05 | 玫瑰厅 | ——(空档)—— | — | — | 可接单 |
自动提醒:定时任务驱动的节点触发
婚庆跟进有固定节奏,适合用节点触发(T-N 天)模型,而不是依赖人工记忆。以下是推荐的提醒节点体系:
| 触发时机 | 提醒内容 | 发送对象 |
|---|---|---|
| 婚期前 90 天 | 确认场地定金、菜单初稿 | 客户 + 策划师 |
| 婚期前 60 天 | 婚纱照确认、伴郎伴娘名单 | 客户 |
| 婚期前 30 天 | 流程彩排时间确认 | 客户 + 策划师 |
| 婚期前 14 天 | 最终付款提醒 | 客户 |
| 婚期前 7 天 | 天气预报、备用方案确认 | 策划师 |
| 婚期前 3 天 | 物资清单最终核对 | 策划师 |
| 婚期后 3 天 | 满意度回访 + 转介绍引导 | 客户 |
pythonfrom apscheduler.schedulers.blocking import BlockingScheduler
from datetime import date, timedelta
scheduler = BlockingScheduler(timezone="Asia/Shanghai")
def daily_reminder_job():
today = date.today()
# 查询所有婚期在未来 3/7/14/30/60/90 天的已签约客户
for days_ahead in [3, 7, 14, 30, 60, 90]:
target_date = today + timedelta(days=days_ahead)
customers = db.query(
"SELECT * FROM customers WHERE wedding_date=? AND stage='已签约'",
(str(target_date),)
)
for c in customers:
msg = build_reminder_message(c, days_ahead)
result = send_text(c["wxid"], msg)
db.log_reminder(c["id"], days_ahead, result.get("ret"))
if days_ahead in [7, 3]:
# 同步提醒策划师(内部群)
send_text(INTERNAL_GROUP_WXID, f"⚠️ {c['nickname']} 的婚礼还有 {days_ahead} 天,请 {c['owner']} 确认物料清单")
def build_reminder_message(customer: dict, days_ahead: int) -> str:
templates = {
90: "您好!距离您的婚礼还有90天,现在是确认场地定金和菜单的好时机,方便本周与策划师通话吗?",
30: f"距离 {customer['wedding_date']} 您的婚礼仅剩30天!彩排时间我们建议安排在婚期前2周,请回复方便的时间段 💐",
14: f"您好,尾款确认提醒:距婚期还有14天,请于本周内完成余款支付,如有疑问请联系 {customer['owner']} 策划师。",
7: "婚期倒计时7天!明天天气预报已推送到您的备注,如有场外备用方案需求请及时告知我们 🌤️",
3: "婚期倒计时3天 🎊 所有物料已备齐,策划师将于明日与您最终确认流程,祝您新婚愉快!",
}
return templates.get(days_ahead, f"距您的婚礼还有 {days_ahead} 天,如有任何需求请随时联系我们。")
# 每天早上 9:00 执行
scheduler.add_job(daily_reminder_job, "cron", hour=9, minute=0)
scheduler.start()
上述调度任务部署在服务器后台常驻运行,无需人工干预,所有提醒发送记录写入数据库,方便事后审计和复盘。
群聊运营:内部档期协作与客户婚礼群
婚庆公司通常有两类群聊需求:
内部协作群:每日自动推送次日婚礼清单、物料确认状态,让所有策划师、摄影师、礼仪主持人信息同步。WechatApi 微信群管理机器人 支持向群聊发送文本、图片、文件,可将每日档期报表自动推入内部群,替代每天早会手动汇报。
客户婚礼群:为每对新人建专属跟进群(新人+双方父母+策划师),在群内推送婚礼当天流程单、到场提醒、地图导航等信息。通过 API 统一发消息,策划师无需手动逐条发送,避免遗漏。
bash# 示意:向指定群聊发送今日档期总览(bash curl 调用)
curl -X POST https://api.wechatapi.net/group/send-text \
-H "VideosApi-token: your-videos-api-token" \
-H "Content-Type: application/json" \
-d '{
"appId": "your-device-app-id",
"groupId": "xxxxxxxx@chatroom",
"content": "【今日档期汇总】\n10:00 玫瑰厅 - 张&李 婚礼(王策划)\n15:00 星河厅 - 陈&刘 婚礼(李策划)\n请各组提前30分钟就位,有问题请在群内@策划助理"
}'
返回示例:
json{
"ret": 200,
"msg": "发送成功",
"data": {
"msgId": "msg_20261013_001",
"groupId": "xxxxxxxx@chatroom"
}
}
数据沉淀与防流失策略
婚庆客资最大的风险是业务员离职带走微信好友,通过 WechatApi 的 微信二次开发 能力可以做到:
- 好友列表定期备份:每周调用好友列表接口,将 wxid、昵称、备注、头像存入客资库,即便微信号被封或业务员离职,客资不会丢失。
- 消息日志全量存储:所有收到的消息通过 Webhook 实时入库,形成完整沟通历史,新接手的策划师可快速了解客户诉求。
- 设备多开管理:公司可在控制台为每个业务账号注册独立设备(各自的 appId),统一通过后台管理,任何一个号的消息都汇入同一套系统。
这套客资沉淀机制与 微信 SCRM 的核心理念一致——将私域客户关系从个人手机迁移到公司系统,让客资真正成为企业资产而非个人资产。
注意事项
- 消息频率控制:自动提醒应限制每日同一客户发送不超过 1 条,过度发消息会被客户屏蔽甚至举报。建议所有自动消息在早 9 点至晚 9 点之间发送。
- 内容个性化:模板消息中务必嵌入客户昵称、婚礼日期、负责策划师姓名等个人化字段,纯模板群发极易被识别为骚扰。
- 账号健康管理:长期运行 API 的微信账号应保持正常的人工互动记录,避免纯机器人行为;WechatApi 基于 iPad 协议,比网页协议更接近真实客户端行为,风险相对可控。
- 客户隐私合规:建议在与客户的首次对话中告知自动化服务的存在,并在提醒消息末尾注明"如不需要此提醒请回复'退订'",符合隐私保护基本要求。
- 异常处理:发送失败(ret≠200)时不要立即重试,建议 30 分钟后重试一次,超过 3 次失败则标记为"需人工处理"并通知策划师。
小结
婚庆策划的客资管理与档期提醒本质上是一个"事件驱动 + 时间驱动"的自动化问题。以婚礼日期为核心锚点,用 WechatApi 打通个人微信的消息收发能力,配合本地客资库和定时调度任务,可以用极低的技术门槛构建出一套高可靠的私域运营系统。无论是小型个人婚庆工作室还是中型连锁品牌,都可以按需裁剪本文方案,从单账号单任务起步,逐步扩展到多账号、多场地、多策划师的协同管理。
