mcpField
P
positive-reply-scoring

positive-reply-scoring

github.com/growthenginenowoslawski营销与增长79066 次安装3 周前更新
代码仓库

关于 positive-reply-scoring

面向 Claude Code 的冷邮件技能,以积极回复占发送总量的比例评估营销活动。它分类回复、计算比率,并标出需要跟进的回复与风险。

主要功能

  1. 01按结果标签分类回复
  2. 02计算积极回复率
  3. 03分母中排除 OOO 和退信
  4. 04汇总活动指标
  5. 05标出待处理回复与风险

适用场景

  1. 01按积极回复比较冷邮件活动
  2. 02每周检查活动质量
  3. 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 计算比率

评论

支持 Markdown