AI咨询顾问变现:从零搭建自动预约与收款系统
想把AI咨询按小时卖出去,却卡在反复沟通时间、手动发付款链接、确认到账这些琐事上?
这篇教程帮你用开源工具搭一套自动预约加收款的通知流程,让客户自己选时间、在线付款,你只负责按时出现。
这套方案适合个人或小团队顾问,前提是你已有可对外展示的咨询页面或社交账号,并且能接受使用第三方支付接口(如 Stripe、PayPal 或国内聚合支付)。
下面以 Cal.com 自托管为例,服务器建议 2 核 2G 以上,系统用 Ubuntu 22.04,已安装 Docker 和 Docker Compose。
先理清自动化链路,再动手装软件
整个流程分四段:客户在你的预约页选时间并填写需求 → 系统根据所选服务生成订单 → 跳转支付页完成付款 → 支付回调触发确认邮件和日历邀请。
任何一段断了,客户都会流失,所以部署前先画一遍你期望的链路,标出哪一步需要人工介入。
准备清单:
- 一台可公网访问的服务器,开放 80/443 端口
- 一个域名,解析到服务器 IP(例如
consult.yourdomain.com) - 支付平台账号,并拿到 API Key 和 Webhook 签名密钥
- 一个用于发确认邮件的 SMTP 账号(如企业邮箱)
部署预约系统并配置服务项
用 Docker Compose 启动 Cal.com。
先建目录:
mkdir -p /opt/calcom && cd /opt/calcom
创建 .env 文件,关键变量如下(值替换成你自己的):
NEXT_PUBLIC_WEBAPP_URL=https://consult.yourdomain.com
DATABASE_URL=postgresql://calcom:yourpassword@db:5432/calcom
NEXTAUTH_SECRET=用 openssl rand -base64 32 生成
CALCOM_TELEMETRY_DISABLED=1
再写 docker-compose.yml,至少包含 calcom 应用和 postgres 数据库两个服务,数据库卷挂载到本地目录避免重启丢数据。
启动后访问域名,用管理员邮箱注册,进入后台创建事件类型(Event Type)。
事件类型名称写清楚服务内容,例如“AI落地咨询 45分钟”,时长设为 45,并开启“需要付款”选项。
这一步的预期结果是:打开预约页能看到可预约时段,选完时间后出现付款提示。
如果页面报数据库连接错误,先用 docker compose logs db 看数据库是否正常启动。
对接支付与自动确认
在支付平台后台创建收款链接或订阅产品,把链接填到 Cal.com 事件类型的付款设置里。
然后配置 Webhook:支付成功时,支付平台向你的服务器发送 POST 请求,你需要一个接收端来验证签名并触发确认。
最省事的做法是用 Cal.com 自带的 Webhook 功能,把“预约创建”事件推送到你的自动化工具(如 n8n 或 Make),由它调用支付平台 API 生成订单并发送邮件。
如果不想引入额外工具,也可以写一个简单的接收脚本,核心逻辑是:校验签名 → 查询订单状态 → 调用 Cal.com API 确认预约。
避坑提醒:Webhook 必须校验签名,否则任何人都能伪造付款成功通知。
支付平台的签名密钥只放在服务器环境变量里,不要写进前端代码。
另外,测试时用支付平台的沙箱环境,不要用真实银行卡反复试。
常见故障与检查顺序
客户付了钱但没收到确认邮件,按这个顺序查:
- 看支付平台后台该笔订单状态是否为“成功”
- 看服务器上 Webhook 接收日志有没有收到请求,状态码是不是 200
- 检查 SMTP 配置,用
swaks或curl发一封测试邮件 - 确认 Cal.com 后台的预约状态是否已变成“已确认”
预约页打不开或时段不显示,先 curl -I https://你的域名 看 HTTP 状态码,再查 Nginx 反向代理配置和容器日志。
时段不显示通常是时区设置不一致,在 Cal.com 后台把时区改成 Asia/Shanghai 并检查事件类型的可用时间。
验证变现链路是否跑通
完整走一遍:用另一个邮箱打开预约页 → 选时间 → 用沙箱支付 → 检查是否收到确认邮件和日历邀请 → 在后台确认预约状态。
再故意用错误签名调用一次 Webhook,确认系统会拒绝。
两步都通过,才算可以对外使用。
如果流量开始上来,建议把确认邮件改成带会议链接的模板,并在预约成功后自动发送一份需求问卷,减少首次沟通成本。
遇到异常时优先回看 Webhook 日志和支付平台回调记录,大部分问题都出在这两处。