关于 email-report
email-report 是 Cogny 技能,可将已连接邮件服务商的数据整理为周报或月报。它比较不同时间段、解释指标变化,并生成 Slack、CEO 邮件和演示文稿版本;具体指标取决于服务商。
主要功能
- 01比较周度或月度时段
- 02计算互动和列表指标
- 03排列活动表现并识别异常
- 04结合活动背景解释变化
- 05生成 Slack、CEO 邮件和演示文稿报告
- 06保存摘要和重要发现
适用场景
- 01准备定期邮件表现报告
- 02将活动结果与前期比较
- 03解释互动率变化
- 04以多种格式制作利益相关方报告
MCP 相关
通过 Cogny MCP 和已连接的邮件服务商获取活动、自动化流程及订阅者数据,具体取决于服务商支持情况。它还通过 Cogny 保存报告上下文和发现。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ cognyai/ claude-code-marketing-skills --skill email-report安装后在 Claude Code 中输入/email-report确认已加载。
详细介绍
邮件报告
每位邮件营销人员每封邮件都要付出的 3 小时时间成本:提取上一周期的数据、绘制趋势图、解释差异,并用符合受众的语气撰写评论。此技能只需一条命令即可完成,并输出三个版本——Slack 消息、CEO 邮件和董事会演示文稿章节——让你可以直接采用利益相关方需要的版本。
需要: Cogny MCP + 已连接的 ESP。注册
用法
/email-report — 月度报告,包含全部三种格式(默认)
/email-report weekly — 最近 7 天
/email-report monthly ceo — 月度报告,仅包含 CEO 邮件
/email-report weekly slack — 周报,仅包含 Slack 更新
前置条件检查
检测已连接的 ESP。如果没有,则停止并提示用户。
步骤
1. 定义周期
| 模式 | 当前窗口 | 对比 |
|---|---|---|
| weekly | 最近 7 天 | 前 7 天 + 4 周滚动平均值 |
| monthly | 最近 30 天 | 前 30 天 + 12 周滚动平均值 |
首先说明确切的日期范围。
2. 提取数据
**按 ESP 配置的工具适配器。**具体使用哪个工具取决于已连接的 ESP:
| 数据 | Klaviyo | Mailchimp | Rule | Get a Newsletter |
|---|---|---|---|---|
| 活动列表 | list_campaigns | tool_list_campaigns | tool_list_campaigns | tool_list_sent |
| 活动指标 | get_campaign + list_events(按指标筛选) | tool_get_report | tool_get_campaign_statistics | tool_get_report |
| 自动化 / 流程列表 | list_flows | tool_list_automations | tool_list_journeys | 不可用 |
| 流程指标 | get_flow | tool_get_automation | tool_list_journeys(有限) | 不可用 |
| 订阅者列表规模 | list_profiles(计数) | tool_get_audience | tool_list_subscribers(计数) | tool_list_contacts(计数) |
| 每次发送收入 | ✓ 通过 list_events 并设置 metric="Placed Order" 获取 | 不可用 | 不可用 | 不可用 |
对于当前窗口和对比窗口,提取以下数据:
群发活动:
- 每个活动的主题、发送日期、收件人数、打开次数、独立打开次数、点击次数、独立点击次数、退订数和退信数。
- **归因收入——仅适用于 Klaviyo。**对于 Klaviyo,提取限定在发送窗口内的“Placed Order”事件,并按活动进行归因。对于 Mailchimp/Rule/Get a Newsletter,报告中完全省略收入一项,并明确说明原因。
流程 / 自动化——因 ESP 而异:
- Klaviyo:流程名称、触发量、每个流程的收入(通过事件获取)。
- Mailchimp:自动化名称、发送数、打开数、点击数(无收入)。
- Rule:旅程名称 + 有限指标。
- Get a Newsletter:**不存在流程对象。**跳过此部分;如果用户有固定的新闻通讯发送频率,则使用“定期发送”作为替代指标。
列表级指标:
- 周期开始与结束时的列表规模
- 周期内新增订阅者
- 周期内退订人数
- 净变化 + 增长率
3. 计算报告指标
针对每个窗口,计算:
| 指标 | 计算方式 | 重要性 |
|---|---|---|
| 发送数 | 已送达邮件总数 | 检查发送量是否合理 |
| 打开率 | 独立打开次数 / 已送达数 | 主题/预览文本效果(受 MPP 干扰) |
| CTR | 独立点击次数 / 已送达数 | 真实互动情况 |
| CTOR | 独立点击次数 / 独立打开次数 | 内容效果(不易受 MPP 影响) |
| 退订率 | 退订数 / 已送达数 | 列表健康状况信号 |
| 退信率 | 退信数 / 已发送数 | 可送达性信号 |
| 每次发送收入 | 电商收入 / 已送达数(如有) | 高管真正关心的唯一指标 |
| 列表增长率 | (期末规模 - 期初规模)/ 期初规模 | 获客健康状况 |
显示绝对值 + 与上一周期相比的变化百分比 + 与滚动基线相比的变化百分比。
4. 找出表现突出的活动
按打开率、CTR 和收入对当前时间段内的营销活动进行排名。找出:
- 表现最佳 — 收入最高的活动(如果没有收入数据,则按 CTOR 排名)
- 表现最差 — 收入/CTOR 最低的活动
- 异常值 — 指标与用户的典型基线相差 >2σ 的活动(意外表现出色或意外表现不佳)
对于每个活动,根据可见属性(主题风格、发送时间、细分受众、内容类型)写出一句话的原因假设。
5. 解释波动
不要只说“CTR 下降了 8%”。要解释原因。交叉参照:
- 发送量有变化吗?向参与度较低的细分受众发送更多邮件,即使绝对收入正常,也会拉低比率指标。
- 受众细分构成有变化吗?(向整个邮件列表发送,还是仅向活跃用户发送)
- 发送频率有变化吗?(每周发送次数增加 → 用户疲劳)
- 是否有某个活动拉低了平均值?(向大型细分受众发送了一封效果不佳的邮件)
- 邮件列表维护情况有变化吗?(大量退订,或重新互动的截止时间)
- 是否有外部事件?(节假日、产品发布、服务中断)
按结论 → 证据的方式描述发现:
“打开率从 28% 降至 22%。本月的四次发送中,有两次发给了 180 天未活跃的细分受众(12 万名收件人,打开率为 14%),拉低了平均值。如果只看发给活跃细分受众的邮件,打开率实际上从 34% 升至 36%。”
6. 生成三种输出
6.1 Slack 更新(≤500 个字符,3 条要点)
📧 Email – <period label>
• Sends: <N> ( <±>% vs prior) | Open: <X>% ( <±>pp) | CTR: <Y>% ( <±>pp)
• 🏆 Top: "<subject>" — <metric> | ⚠️ Watch: <one-line variance call>
• Revenue: $<X> ( <±>% vs prior) | List: <±>% net growth | Next week: <1-line plan>
6.2 CEO 邮件(≤250 个单词,叙述形式)
Subject: Email performance — <period label>
Hi <CEO first name>,
Quick update on email this <period>:
Headline: <one-sentence summary — is it good, bad, or mixed?>
What happened:
[2-3 sentences explaining volume, rate-metric movement, revenue. Tie to a
business narrative — launches, campaigns, segment focus.]
What's notable:
[1-2 sentences. Top campaign or surprise win or flagged concern.]
What's next:
[1-2 sentences. Concrete plan for next period. Pick ONE action, not five.]
Happy to dig deeper on any of this.
<signoff>
6.3 演示文稿章节(完整内容)
EMAIL PERFORMANCE — <period label>
Summary
<two-sentence narrative>
Key metrics
[table: current / prior / rolling / %Δ]
Sends, Open rate, CTR, CTOR, Unsub rate, Revenue per send, List size
Trend
[describe what a chart should show — up-and-to-the-right, step change, etc.]
Campaign roundup
🏆 Best: "<subject>"
<segment>, <recipients>, <metric wins>
📉 Worst: "<subject>"
<what happened>
Flow performance (if applicable)
[table of top 3 flows by revenue, with recipient count and conv rate]
What moved the needle
[2-3 bullets — claim → evidence]
Plan for next <period>
[2-3 bullets — concrete, owned, measurable]
7. 保存叙述摘要
将该时间段摘要保存到 Cogny 的上下文树中,以便后续运行 /email-report 时保留历史连续性:
{
"path": "insights/email/reports/<period label>",
"body": "<the narrative summary + key numbers>"
}
生成报告前,还要读取此路径下的任何上一份报告,并在“发生了什么”叙述中引用,例如“这与上月的趋势一致”/“这扭转了我们此前指出的下滑”。
8. 针对值得关注的问题创建发现项
对于任何严重问题(退订率飙升、送达率下降、收入骤降),都要创建发现项,使其显示在仪表板中,而不只是出现在报告里。
{
"title": "Unsub rate doubled vs prior month (0.18% → 0.37%)",
"body": "<which campaigns drove it, which segment, recommended fix>",
"action_type": "list_hygiene",
"priority": "high"
}
输出默认设置
- 如果用户未指定格式,输出全部三种格式,并清楚标注。
- Slack 版本放在最前面——用户快速浏览时最容易阅读。
- 最后附上原始指标表,方便用户复制数据。
备注
- 打开率容易受干扰,因为存在 Apple MPP。务必同时报告 CTR 和 CTOR。如果打开率变化 >5 个百分点,但 CTOR 没有变化,这很可能是 MPP 用户群发生变化,而非用户行为改变。
- 首次运行时没有上一时间段可供比较——要明确说明这一点,并且只使用绝对数值。
- 不要编造收入数字。 在 cogny-mcp-proxy 中,Klaviyo 是目前唯一能提供收入数据的 ESP(通过带有
value字段的 “Placed Order” 事件)。对于 Mailchimp、Rule 和 Get a Newsletter,应说明“此 ESP 的 MCP 未提供收入数据”,并且只报告参与度;或者让用户粘贴列表收入数据,以便根据其数据计算 CPM/每次发送收入。