AI 对话式营销引擎

retaintive 的 Campaign Engine 是一个嵌入 AI Chat 的营销能力:老板用自然语言描述想做的活动,AI 从 PhoneBook 匹配目标客户、结合外部竞争情报给出建议、生成定制 SMS,员工审核后批量发送。本文定义产品设计、技术架构和实施路线,供产品和技术团队评估。

前置文档产品本质 / North Star · Contacts 字段设计 · 客户生命周期管理 · Lead Temperature


一、为什么做 Campaign Engine

1.1 核心问题

健身房的客户数据沉睡在系统里,没人用。

retaintive 的 PhoneBook 已经为每个客户建立了 48 字段的画像(健身目标、价格敏感度、拒绝原因、联系偏好、AI 通话分析等),但这些数据只用于被动展示。没有机制让老板主动利用这些数据发起营销

同时,健身房的跟进效率极低。行业数据显示大量 lead 因为响应慢而流失(见附录 A)。Campaign Engine 通过自动化覆盖"人工来不及处理"的场景。

1.2 产品定位

Campaign Engine 不是独立功能,而是 AI Chat 的核心能力之一

老板在 Chat 里聊天时,AI 根据对话上下文自动判断什么时候查内部数据、什么时候搜外部情报、什么时候提出 campaign 建议。不需要老板学会用筛选器或理解字段含义。

传统做法(填表式)                    Campaign Engine(对话式)
───────────────                    ──────────────────────

老板选筛选器:                        老板: "我想看看现在有没有
  temperature = cold                       合适做春季活动的客人"
  rejectionReason = price                  ↓
  ↓                                  AI: 查 PhoneBook → 发现 3 组人
系统返回 23 个人                           → 跟老板讨论哪组先做
  ↓                                        → 多轮确认细节
套用模板发送                               → 生成定制 SMS
                                           → 员工审核 → 发送

1.3 与 AI 运营顾问愿景的关系

Campaign Engine 是 AI 运营顾问五层能力金字塔中 Level 4(智能推荐)+ Level 5(自主执行) 的具体落地,同时补充了原文没有的两个维度:

维度原 AI 运营顾问文档Campaign Engine 补充
交互方式Dashboard 推荐列表Chat 对话式,来回讨论确定方案
数据来源仅内部数据内部数据 + 外部竞争情报(Google Maps / Yelp / Reddit)
Campaign 数据模型标记为"待设计"本文填补这个空白
执行机制概念描述具体设计:SMS 生成 → 审核 → 批量发送

二、核心流程

2.1 六步流程

┌──────────────────────────────────────────────────────────┐
│                    Campaign Engine                        │
│                                                           │
│  ① CHAT          ② MATCH         ③ GENERATE              │
│  对话式规划        AI 受众匹配      AI 消息生成             │
│  ┌──────────┐   ┌──────────┐    ┌──────────┐            │
│  │ 老板与AI │──→│ 扫描      │──→│ 为每个    │            │
│  │ 来回讨论  │   │ PhoneBook │   │ contact   │            │
│  │ 确定方案  │   │ 48 字段   │   │ 定制 SMS  │            │
│  └──────────┘   └──────────┘    └──────────┘            │
│       │                              │                    │
│       ▼              ④ REVIEW        ▼                    │
│  Campaign          ┌──────────┐   Message                 │
│  Record  ─────────→│ 员工逐条  │←── Queue                  │
│                    │ 审核/编辑 │                           │
│                    └─────┬────┘                           │
│                          │                                │
│              ⑤ SEND      ▼        ⑥ TRACK                 │
│            ┌──────────┐        ┌──────────┐              │
│            │ 批量发送  │───────→│ 追踪效果  │              │
│            │ RingCentral│       │ 回复/转化 │              │
│            └──────────┘        └──────────┘              │
└──────────────────────────────────────────────────────────┘
步骤操作者输入输出
① Chat老板 + AI自然语言对话(多轮)确定目标受众 + 消息策略
② MatchAICampaign 意图 + PhoneBook 全量数据候选 contacts 列表 + 匹配原因
③ GenerateAIcontact 画像 + campaign 内容 + SMS 模板每人一条定制 SMS
④ Review员工SMS 列表逐条 ✅ 发送 / ❌ 跳过 / ✏️ 编辑
⑤ Send系统审核通过的 SMS通过 RingCentral 批量发送
⑥ Track系统发送后的回复/通话/到店Campaign 效果报告

2.2 对话式设计:AI 怎么理解老板的意图

老板不需要懂 temperaturerejectionReason 这些字段。AI 作为中间层,把自然语言翻译成数据查询。

典型对话流程

老板: "我想看看我们现在有没有合适做春季活动的客人"

AI:   [查 PhoneBook] → 分组汇总
      "看了您的客户数据,有三组人比较适合:
       1. 23 人之前因价格拒绝,折扣可能让他们回来
       2. 15 人是冷 lead 但提交过 2 次以上表单
       3. 8 人是流失会员,其中 5 人通话里提过'价格'
       您想针对哪组先做?"

老板: "先做第一组。对了,隔壁那家最近好像不太好?"

AI:   [检测到竞对话题 → 触发 Yelp/Google Maps 搜索]
      "查了一下,隔壁 Gold's Gym Yelp 3.2 星,最近差评
       集中在 'overcrowded' 和 'equipment broken'。
       建议 SMS 里不只提折扣,还可以强调'小班制教学、
       设备定期维护',正好打到竞对痛点。"

老板: "好主意,但别在短信里提竞对名字"

AI:   "明白。我来拟一版 SMS 模板..."

      [多轮对话继续,直到方案确定]

AI:   "方案确定:23 人,SMS 模板如下。要我生成每个人的
       定制版本吗?生成后会交给员工审核。"

2.3 AI 什么时候触发外部搜索

不是每次对话都搜外部数据。AI 根据对话上下文判断:

老板提到的关键词/意图AI 触发的外部工具获取什么
竞对名字、"隔壁"、"别家"、"竞争"Yelp Fusion API + Google Maps API竞对评分、差评关键词、营业状态
"市场"、"趋势"、"最近行情"Reddit 本地 subreddit + 新闻搜索本地健身讨论、行业动态
"新小区"、"搬来"、"附近"Google Maps Places API周边社区变化、新开发区
不提外部话题不触发仅用 PhoneBook 内部数据

三、内部数据匹配 — PhoneBook 48 字段的价值释放

Campaign Engine 的核心优势:PhoneBook 已经有丰富的客户画像,只需要一个 AI 来"读懂"这些数据并匹配 campaign 意图。

3.1 匹配维度

匹配维度PhoneBook 字段Campaign 场景示例
价格敏感priceSensitivity, budgetRange, rejectionReasons 含 "price"折扣促销、首月特惠
兴趣匹配classInterests, fitnessGoal, exerciseHabits新课程推广(Yoga、HIIT 等)
冻结可唤醒lifecycleState=frozen, rejectionReasons条件变化时重新触达
流失可召回lifecycleStage=churned, customerSummaryWin-back campaign
高意向未转化temperature=warm/cold + submissionCount≥2加大跟进力度
满意可推荐lifecycleStage=member + AI 满意度高Referral / Bring-a-Friend
联系偏好bestTimeToReach, preferredChannel发送时间和渠道优化
决策障碍objections, decisionProcess, decisionTimeline针对性消除障碍

3.2 与现有触发规则的对齐

客户生命周期管理文档 已经定义了决策障碍触发条件

障碍标签触发条件系统动作
价格店铺发起促销活动自动推送到 campaign 候选列表
时间新时段开放 / 淡季通知员工联系
距离新店开业自动推送
需要同伴Bring a Friend 活动自动推送
已有会籍竞品合约到期(预估)提前联系

Campaign Engine 将这些规则从"被动触发"升级为"AI 主动建议"。AI 不需要等老板发起 campaign,可以主动提醒:"您有 23 个价格敏感的客户,最近是不是可以搞个春季优惠?"

3.3 Campaign 类型速查

场景老板怎么说AI 内部查什么AI 外部查什么AI 建议什么
价格促销"春季 50% off"priceSensitivity=high + bad_timing(price)"46 人价格敏感,建议分 hot→warm→cold 三批发"
新课推广"新开了 Yoga 课"classInterests 含 yoga + fitnessGoal"12 人之前表达过瑜伽兴趣"
竞对抢客"隔壁好像不行了"rejectionReason=already has membershipYelp: 竞对差评"竞对差评说 overcrowded,强调小班制"
季节活动"新年搞一波"所有 frozen + terminal(bad_timing)"128 个沉睡联系人可唤醒"
推荐活动"搞个推荐有奖"member + active + 满意度高"25 个活跃会员适合推荐"
社区变化"附近新小区入住了"source=walk-in 地理分布Google Maps: 新社区"新小区在 2 miles 内"

四、外部竞争情报 — 免费 API 的价值

4.1 定位

外部数据的角色是辅助 AI 做建议,不是直接产出 lead。

公开数据几乎不包含个人联系方式

Facebook、Google、Yelp 等平台的公开数据不包含用户手机号或邮箱。外部数据的价值在于竞争情报和市场洞察,不在于获取新的联系人。

4.2 可用的免费 API

API能拿到什么免费额度在 Campaign 中的作用
Google Maps Places API竞对健身房位置、评分、评论数量、营业时间、照片每月 $200 免费额度竞对健康度监控、周边社区分析
Yelp Fusion API竞对评论内容、评分趋势、分类标签500 calls/day 免费竞对差评关键词提取、用户痛点挖掘
Reddit API本地 subreddit 健身相关帖子免费(有 rate limit)本地健身趋势、消费者情绪
Google Trends搜索热度趋势免费"gym near me" 搜索量季节性分析
新闻搜索竞对关店/涨价/品牌新闻视 API 而定竞争机会捕捉

4.3 AI 综合使用示例

场景:老板提到隔壁竞对

AI 内部查询: PhoneBook 中 rejectionReason 含 "already has membership" → 8 人
AI 外部查询: Yelp "Gold's Gym" → 3.2★,近期差评高频词: "overcrowded", "dirty"
AI 综合建议:
  "竞对差评集中在'拥挤'和'卫生'。您有 8 个客户之前因为'已有会籍'拒绝。
   建议发一条强调'小班制、每日消毒、设备维护'的 SMS,配合春季首月优惠。
   这样既打价格牌又打体验牌。"

场景:老板想了解市场趋势

AI 外部查询: Reddit r/[city] 搜索 "gym" "fitness" → 最近 3 帖问 kickboxing
AI 外部查询: Google Trends "kickboxing [city]" → 近 3 个月搜索量上升 40%
AI 建议:
  "本地 kickboxing 兴趣在上升,Reddit 上最近也有人在问。
   您是否考虑开 kickboxing 课?如果开的话,PhoneBook 里有 15 个
   fitnessGoal 含'减压'或'自卫'的客户可以先通知。"

五、SMS 生成与审核

5.1 生成方式:员工模板 + AI 个性化

员工写一个 SMS 模板控制基调和信息,AI 根据每个 contact 的画像填充个性化内容。

模板示例

Hi {name},我们 {gym_name} 正在搞春季特惠,{offer_details}。
{personalized_hook}
有兴趣的话回复 YES 或直接给我打电话!

AI 针对不同 contact 的生成结果

Contact画像关键信息AI 生成的 personalized_hook
Sarahbad_timing, price, interested in Tread 50"记得您之前对 Tread 50 课程感兴趣,现在正好可以来体验!"
Mikechurned, used to come 3x/week"我们很怀念您之前每周三次的训练节奏,欢迎随时回来!"
Jennycold lead, submissionCount=3, 从未接通"注意到您提交了几次体验申请但我们一直没能联系上您,这次特惠别错过!"

5.2 审核流程

操作说明
✅ 发送保持 AI 生成的内容,加入发送队列
❌ 跳过这个 contact 不发送(如 AI 匹配不准)
✏️ 编辑员工修改 SMS 内容后发送
审核是人工把关的关键环节

AI 可能匹配不准或生成不当内容。审核确保每条 SMS 都经过人工确认,符合 Level 5 铁律:"AI 建议,人类执行。"

5.3 发送策略

策略说明
分批发送按 temperature 分批:hot → warm → cold,间隔 1-2 天
时间优化优先使用 contact 的 bestTimeToReach,无数据则用门店黄金时段
DNC 过滤自动排除 doNotContact=true 的 contacts
安静时段遵守 TCPA 规定,晚 9 点到早 8 点不发送
频率限制同一 contact 7 天内最多收到 1 条 campaign SMS

六、Campaign 效果追踪

6.1 追踪指标

指标定义数据源
发送率实际发送 ÷ 审核通过SMS 发送日志
送达率送达 ÷ 发送RingCentral 送达回执
回复率回复 ÷ 送达MessageStore 中的 inbound SMS
通话转化发送后 7 天内产生通话 ÷ 送达call-analysis phone 匹配
预约率发送后 14 天内 booking ÷ 送达LeadTracking-v2 leadStatus=booked
成交率发送后 30 天内转化 ÷ 送达LeadTracking-v2 leadStatus=converted
ROI(成交收入 - campaign 成本) ÷ campaign 成本手动输入收入

6.2 效果归因

SMS 发送后,系统自动追踪该 contact 在 7/14/30 天窗口内的行为变化:

Campaign SMS 发送给 Sarah (Day 0)

    ├── Day 1: Sarah 回复 "YES" → 记录 SMS 回复
    ├── Day 2: 员工打电话给 Sarah → 记录通话(关联 campaign)
    ├── Day 3: Sarah 预约试课 → leadStatus: booked
    ├── Day 6: Sarah 到店试课 → leadStatus: showed
    └── Day 12: Sarah 购买会员 → leadStatus: converted
                                → 归因: 春季促销 Campaign

6.3 retaintive 的独有能力:Campaign + Conversation Intelligence

其他平台(GymSales、GymLeads、Keepme)也能发 campaign SMS 并追踪回复率。但 retaintive 独有的是:

把 campaign 效果和通话质量关联起来。

示例报告:

春季促销 Campaign 效果报告
━━━━━━━━━━━━━━━━━━━━━━━━━━
发送: 46 人  |  回复: 18 (39%)  |  通话: 12  |  成交: 4

通话质量分析(AI 提供):
  • 12 通 campaign 后通话,平均质量评分 7.2/10
  • 3 通评分低于 5 → 员工 Tom 的电话
    → Tom 没有提到促销优惠(AI 检测到),直接用了标准话术
    → 建议: 给 Tom 补充 campaign 专用话术

  • 8 人回复了 SMS 但没有接电话
    → 其中 6 人的 preferredChannel = sms
    → 建议: 对这 6 人改用 SMS 继续跟进,不要打电话

对比行业基准:
  • 39% 回复率 vs 行业均值 15-25% → 高于行业
  • 33% 通话转化率 vs 门店历史均值 28% → 略高
  • 建议: 下次 campaign 可以扩大到 warm leads

没有竞品能回答:"Campaign SMS 发了,电话也打了,但为什么 Tom 的转化率低?因为他没提促销。"这就是 CI + Campaign 的结合价值。


七、竞品对比

能力GymSales (ABC)GymLeadsKeepme Antaresretaintive Campaign Engine
Campaign 创建手动规则手动规则AI 推荐AI 对话式
受众匹配基础筛选基础筛选AI 匹配AI 匹配 + 48 字段画像
外部竞争情报Yelp / Google Maps / Reddit
通话录音 + AI 分析核心能力
SMS 个性化模板变量模板变量AI 生成模板 + AI 个性化
Campaign + 通话质量关联独有差异化
员工绩效归因基础基础核心能力

八、Campaign 数据模型

填补 AI 运营顾问文档中的空白

历史 AI 运营顾问设计将 Campaign 数据模型标记为"待设计"。以下是初步设计。

8.1 Campaign 实体

字段类型说明
campaignIdString (PK)唯一标识
orgIdString所属组织
siteIdString所属门店
nameStringCampaign 名称(如"春季 50% off")
descriptionStringAI 对话中确定的 campaign 描述
typeStringpricing / new_class / conquest / winback / referral / seasonal / custom
sourceStringcorporate(总部下发)/ custom(门店自主)
statusStringdraft / reviewing / sending / completed
targetAudienceMapAI 匹配条件的结构化表示
smsTemplateStringSMS 模板文本
totalTargetedNumber目标 contacts 总数
totalApprovedNumber审核通过数
totalSentNumber实际发送数
createdAtString (ISO)创建时间
completedAtString (ISO)完成时间

8.2 CampaignMessage 实体

字段类型说明
campaignIdString (PK)关联 campaign
phoneString (SK)目标 contact
statusStringpending_review / approved / rejected / sent / delivered / replied
smsContentStringAI 生成的定制 SMS(审核后可能被编辑)
matchReasonStringAI 匹配原因(如"bad_timing + price sensitive")
sentAtString (ISO)发送时间
deliveredAtString (ISO)送达时间
repliedAtString (ISO)回复时间
outcomeStatusStringno_response / replied / called / booked / converted
outcomeAtString (ISO)结果确认时间

8.3 存储方案

选项方案优势劣势
ADynamoDB Campaign + CampaignMessage 表一致的技术栈报表查询不方便
BDynamoDB 写入 → Neon PostgreSQL 读取写入快 + 报表灵活增加同步复杂度
C(推荐)直接写入 Neon PostgreSQL报表查询原生支持 + Campaign 是读多写少场景与现有 DynamoDB 写入模式不同

Campaign 是典型的读多写少场景(创建少,查询/报表多),且效果追踪需要 JOIN 多张表(campaign + call-analysis + LeadTracking-v2),PostgreSQL 更适合。


九、实施路线

Phase 1: Campaign 基础(与 V1 路线图对齐)

  • AI Chat 中支持查询 PhoneBook("我有哪些价格敏感的客户?")
  • 基于查询结果生成 SMS 列表
  • 员工审核 → 通过 RingCentral 批量发送
  • 创建 Campaign + CampaignMessage 表

Phase 2: 外部情报 + 效果追踪

  • 接入 Yelp Fusion API 和 Google Maps Places API
  • AI 对话中根据上下文自动触发外部搜索
  • Campaign 效果追踪(回复率、通话转化、成交归因)
  • Campaign + CI 关联报告(通话质量分析)

Phase 3: AI 主动建议 + 自动化

  • AI 主动分析 PhoneBook 并建议 campaign 时机("您有 23 个价格敏感客户,要搞春季促销吗?")
  • 决策障碍自动匹配:门店发起促销 → 自动筛选匹配 rejectionReason 的 contacts
  • 分批发送自动化(hot→warm→cold,间隔 1-2 天)
  • A/B 测试支持(两版 SMS 模板对比效果)

Phase 4: 跨 Campaign 学习

  • Campaign 效果历史分析("过去 6 个月哪种 campaign ROI 最高?")
  • 客群 × Campaign 矩阵("Hot leads 对哪种 campaign 响应率最高?")
  • AI Campaign 效果预测("基于历史数据,预计这次 campaign 回复率 34%")

十、开放问题

问题状态备注
Franchise 合规待确认Corporate 下发的 campaign 我们是追踪还是也能自主发起?
TCPA 合规待确认批量 SMS 需要 opt-in consent,现有 contacts 是否已获取?
SMS 费用模型待调研RingCentral 批量 SMS 的定价,是否需要转 Twilio 降本?
Neon 直写 vs DDB 同步待决策Campaign 数据是否跳过 DynamoDB 直接写 PostgreSQL?
AI Chat 架构待设计Chat 后端是用 Bedrock Agent 还是自研 tool-calling pipeline?
外部 API 成本待评估Google Maps / Yelp 免费额度是否够用?超出部分成本?

附录 A: Speed-to-Lead 行业数据

Campaign Engine 解决的核心问题之一是跟进速度。以下是行业基准数据,说明为什么自动化 SMS 触达很重要。

响应速度与转化率

指标行业现实最佳实践
5 分钟内响应转化率比 5 分钟后高 8-9x应在 2 分钟内响应
1 小时内响应率20% 的北美健身房做到应是最低标准
最差响应时间平均 5,000 分钟(3+ 天)
电话接通率25% 的健身房在营业时间接电话应 95%+

典型失败流程

 8:47 PM  用户在 Facebook 填表提交

    ▼  (Lead 进了健身房营销邮箱)
 9:15 AM  次日前台看到邮件,打印出来放经理桌上


11:30 AM  经理终于打电话 → 用户在上班没接 → 忘了 retry


 ☠️  用户早在 8:52 PM 就被竞对联系上了

转化率与获客成本

阶段行业基准Top Performer
Lead → Tour12-15%20-38%(快速响应)
Tour → Member50-70%70%+
整体 Lead → Member6-10%15-25%
渠道平均 Lead 成本
TikTok Lead Gen$3–5
Facebook Lead Ads$15–40
独占 Lead 服务商$35–75
Google Ads 搜索~$61.56

算一笔账:按 $60/lead、10% 转化率,获客成本 = $600/人。仅靠提升响应速度翻倍到 20%,获客成本降到 $300/人。Campaign Engine 的 Auto-SMS 直接覆盖"人工来不及响应"的窗口。


附录 B: 第三方 Lead 数据提供商参考

以下信息供长期参考。如果未来考虑接入外部 lead source(而非自有数据挖掘),这些是市场上的主要服务商。

Pay-per-Lead 模式

提供商模式单价特点
Peak Marketing Service按 lead 付费,无合约$35–75/lead独占 lead,实时交付
Data Axle USA批量名单按量定价315M 消费者数据库

New Mover 数据(高价值,付费)

数据商数据量更新频率独特能力
Acxiom~800 万搬家记录,每周新增 ~40 万周更含 Pre-Movers(150 万待售房屋)
Porch Group Media搬家人群 + 购买意图持续数十亿购买意图信号
El Toro数字化搬家人群每天 2 次数小时内投放广告

健身行业管理平台 API

平台API 能力适用场景
MindbodyWebhooks API(新客户/预约事件)对接会员管理数据
GymSalesZapier + REST APILead 管道对接
GymdeskZapier + ActiveCampaign营销自动化

参考资料

行业数据与策略

平台 API

竞品

Facebook/TikTok Lead Ads 集成