关于 positive-reply-scoring
面向 Claude Code 的冷邮件技能,以积极回复占发送总量的比例评估营销活动。它分类回复、计算比率,并标出需要跟进的回复与风险。
主要功能
- 01按结果标签分类回复
- 02计算积极回复率
- 03分母中排除 OOO 和退信
- 04汇总活动指标
- 05标出待处理回复与风险
适用场景
- 01按积极回复比较冷邮件活动
- 02每周检查活动质量
- 03决定暂停还是扩大活动
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ growthenginenowoslawski/ coldoutboundskills --skill positive-reply-scoring安装后在 Claude Code 中输入/positive-reply-scoring确认已加载。
附带文件scripts/aggregate-scores.tsscripts/fetch-campaign-replies.ts
详细介绍
正向回复评分
回复率可以告诉你人们是否在关注。正向回复率则能告诉你他们是否想要你提供的东西。 此技能用于计算后者。
为什么需要这项技能
某个营销活动的回复率可能达到 5%,结果仍然一塌糊涂。如果其中 90% 的回复是“退订”和“不适合”,那你的域名就白白被消耗了。
真正重要的指标是:
positive_reply_rate = positive_replies / total_sent
并排比较:
- 营销活动 A:回复率 1%,正向回复率 70% → 正向回复率 0.7%
- 营销活动 B:回复率 5%,正向回复率 10% → 正向回复率 0.5%
- 营销活动 A 胜出。
分类方案
每条回复都恰好归入以下一个类别:
| 标签 | 含义 | 是否计为“正向”? |
|---|---|---|
positive_interested | “好的,告诉我更多”或已预约会议 | ✅ |
positive_soft | “发送更多信息”/“第三季度再联系”/索要信息 | ✅ |
positive_referral | “不是我,但可以联系 X” | ✅(转介绍价值很高) |
neutral_question | 澄清问题,尚未做出承诺 | ❌(可选——有些评分方式按一半计) |
negative_notnow | “目前不需要,以后再说” | ❌ |
negative_notfit | “不适合”/“我们不需要这个” | ❌ |
negative_hostile | 愤怒的回复、投诉、举报 | ❌(并单独作为风险信号追踪) |
unsubscribe | 明确要求退订 | ❌ |
ooo | 办公室自动回复 | ❌(从分母中排除) |
bounce | 技术性退信 | ❌(从分母中排除) |
other | 无法判断 | ❌ |
正向回复率 = (positive_interested + positive_soft + positive_referral) / 已发送总数
输入
- Smartlead API 密钥(环境变量:
SMARTLEAD_API_KEY) - 要评分的营销活动 ID
- 可选:client_id(如果使用子客户端设置)
- 可选:日期范围(默认覆盖整个营销活动)
步骤
1. 获取营销活动中的所有潜在客户和回复
运行获取脚本:
npx tsx scripts/fetch-campaign-replies.ts --campaign-id=12345 --out=/tmp/replies.json
此脚本会对 /campaigns/{id}/leads 进行分页遍历,找出有回复的潜在客户(has_reply = true),然后针对每位潜在客户获取 /campaigns/{id}/leads/{lead_id}/message-history,并将回复写入 JSON 文件,每条回复对应一个对象。
每条回复的输出结构:
{
"lead_id": "...",
"email": "...",
"lead_first_name": "...",
"company": "...",
"reply_time": "ISO timestamp",
"reply_subject": "...",
"reply_body": "... full text ...",
"sequence_step": 1
}
2. 在 Claude Code 对话中对回复进行分类
写入 JSON 后,Claude(运行此技能的 Claude)会读取文件并对每条回复进行分类。为提高速度,可通过 Task 工具按每批 20-30 条并行处理(有关并行处理机制,请参阅 personalization-subagent-pattern 技能)。
每批使用的分类提示词:
Classify each reply as one of:
- positive_interested, positive_soft, positive_referral
- neutral_question
- negative_notnow, negative_notfit, negative_hostile
- unsubscribe, ooo, bounce, other
For each reply, output: { lead_id, label, confidence: 0.0-1.0, one_line_reason }
Rules:
- OOO auto-replies ("I'm out of office") → ooo
- Bounces (delivery failure messages) → bounce
- "Take me off your list", "unsubscribe", "STOP" → unsubscribe
- "Not interested", "not a fit" → negative_notfit
- "Not right now, circle back in Q3" → negative_notnow
- "Try [other person]" → positive_referral
- "Send more info" or "Tell me more" → positive_soft
- "Yes, let's book a call", "what times work" → positive_interested
- Insults, reports, legal threats → negative_hostile
If confidence < 0.7, label as `other`.
3. 汇总并计算比率
运行汇总程序:
npx tsx scripts/aggregate-scores.ts --replies=/tmp/classified-replies.json --campaign-id=12345
输出(到标准输出,以及可选的 --out):
Campaign 12345 — Positive Reply Scoring
Total sent: 5,284
Total replies: 212 (4.01%)
ooo/bounce (excluded): 34
Net replies: 178
Breakdown:
positive_interested: 22
positive_soft: 31
positive_referral: 8
neutral_question: 14
negative_notnow: 28
negative_notfit: 52
negative_hostile: 3
unsubscribe: 20
other: 0
Positive reply rate: 1.15% (61 / 5,284)
Positive % of replies: 34.3% (61 / 178)
Negative hostile risk: 0.06% (3 / 5,284)
Unsub rate: 0.38% (20 / 5,284)
Benchmarks (B2B cold email):
Good positive reply rate: ≥1%
Great: ≥2%
Hostile >0.3% or unsub >2% → deliverability risk, pause campaign
4. 保存到磁盘
将汇总结果写入:
~/cold-email-ai-skills/profiles/<business-slug>/scores/<campaign-id>-<YYYY-MM-DD>.json
这样可以构建历史记录,追踪各营销活动的正向回复率变化趋势。
5. 标记待办事项
最后,列出以下内容:
- 需要人工回复的正向回复——列出排名前 10 的
positive_interested潜在客户及其回复正文。用户应在看到此报告后的 30 秒内回复这些客户。 - 需要跟进的转介绍——
positive_referral标签。将被推荐的联系人添加到新的外联名单。 - 敌意标记——所有
negative_hostile回复。手动阅读;如果对方确实很生气,可考虑暂停该收件箱。 - 退订——确认他们已被全局屏蔽(Smartlead 会自动处理,但请再次检查)。
何时使用此技能
- 营销活动运行至少 14 天后(否则样本太小)
- 在实验中比较两个营销活动时(两者使用相同的截止日期)
- 每周检查正在运行的营销活动质量
- 决定停止还是扩大营销活动之前
常见易错点
- 不要只看回复率。 垃圾邮件陷阱回复和退订带来的 5% 回复率,不如真实买家带来的 2% 回复率。
- 计算分母时排除 OOO 和退信。 它们不是真正的回复。脚本会自动处理。
- Smartlead 内置的 AI 分类功能确实存在,但可控性较差。此技能直接使用 Claude,以便透明地分类并调整提示词。
- 小样本会误导人。 发送量低于约 500 封时,正向回复率的噪声太大。积累更多数据后再判定胜负。
- 只对每条潜在客户的第一条回复进行分类。 如果潜在客户回复后你又回复,对方随后再次回复——只有第一条回复才是信号。后续消息属于对话内容,不计入评分。
接下来怎么做
看到 positive_interested 回复后,在 30 秒内回复每一条。 然后运行 /experiment-design,根据有效做法规划下一轮迭代。
**如果发送 200 封以上后,正向回复率仍低于 1%:**说明 1% 规则未达标。运行 /email-deliverability-audit(你是否成功进入收件箱?),并检查 CTA 是否含糊、首句是否泛泛,以及是否使用了 em dash。
**或者等待:**此技能是 /cold-email-weekly-rhythm 中的周三任务。之后每周运行一次。
相关技能
/experiment-design— 将正向回复率用作成功指标/email-deliverability-audit— 如果负面回复和退订率偏高,接下来运行此技能/cold-email-starter-kit→10-reply-handling.md:了解如何处理标记出的正向回复
脚本
scripts/fetch-campaign-replies.ts— 通过 Smartlead API 拉取回复scripts/aggregate-scores.ts— 根据分类后的 JSON 计算比率