关于 email-prompt-building
这项设计阶段技能根据营销背景、研究和假设,编写定稿的冷邮件序列。它定义固定文案、占位符和路由规则,后续渲染通过确定性替换完成,而非逐行使用大模型写信。
主要功能
- 01为每封邮件撰写定稿文案
- 02声明输入占位符及缺失回退
- 03定义完整变体和路由规则
- 04设置序列节奏与主题行
- 05检查文案和模板一致性
适用场景
- 01为营销活动构建冷邮件序列
- 02按细分群体或角色调整邮件变体
- 03准备确定性邮件渲染所需模板
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ extruct-ai/ gtm-skills --skill email-prompt-building安装后在 Claude Code 中输入/email-prompt-building确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/email-structures.mdexample-sequence.mdprompt-patterns.md详细介绍
冷启动邮件模板构建器
设计一套冷启动外联序列,并将其提交为一组固定模板:每次触达实际获批的文案,包含 {{input_field}} 占位符和变体路由规则。此技能负责构思——探索切入角度、提出痛点假设、确定序列走向、挑选证明材料——并将结果写入最终文案。
之后由 email-generation 通过简单的确定性替换来渲染模板。运行时不会有大模型逐行编写邮件。
架构原则
此技能用于设计阶段。它会敲定文案,不会把决策留给运行时模型。
此技能的旧版本会生成一段 LLM 指令提示词,再让逐行运行的模型撰写每封邮件。此做法已弃用。如今,逐行差异仅通过两种方式表达:(1)上游填充的 {{input_fields}};(2)由路由键选取的离散变体模板。其余内容在整个批次中完全一致。
DESIGN TIME (this skill)
┌─────────────────────────────────────┐
context file ─────────▶│ explore angles, pick hypotheses, │
research / hypotheses ▶│ decide sequence arc, choose proof │──▶ template set (sequence.md)
enrichment field list ▶│ → commit to FINAL COPY │ • real copy per touch
└─────────────────────────────────────┘ • {{input_field}} placeholders
• variant-routing rules
• Input Fields contract
FILL TIME (normalization + enrichment skills)
contacts ─▶ populate every declared input field
RENDER TIME (email-generation skill)
template + filled CSV ─▶ deterministic render ─▶ emails CSV
此技能读取的内容(输入)
所有输入均位于调用此技能的 GTM 项目中(路径相对于项目;具体布局由项目决定,而非由此技能决定)。
| 输入 | 要提取的内容 |
|---|---|
| 公司背景文件 | 语气、发件人、价值主张、证明材料库、关键数据、禁用词 |
| 活动研究 | 已验证的数据点、统计数据、工具对比 |
| 假设集 | 编号假设及其作用机制和证据 |
| 丰富字段列表 | 可用的 {{input_fields}},以及它们来自哪个丰富或标准化步骤 |
| 活动简报 | 目标垂直领域、角色类型、序列长度 |
此技能生成的内容(输出)
一组模板集——每个活动对应一个序列文件,其中包含:
- 序列概览——触达次数、发送节奏、变量列表
- 每次触达的文案——每封邮件的最终获批文本,逐字呈现,并在文中使用
{{input_field}}占位符。不是撰写规则,而是实际文案。 - 变体路由规则——触达包含变体时,指定路由键及各变体的适用条件(例如:
Touch 3: segment == "enterprise" → variant A, else → variant B) - 输入字段约定(见下文)——列出每个
{{field}}、其来源和缺失时的回退方式 - 主题行——仅首次触达使用;后续跟进使用空主题,以接续邮件线程
- 备注——说明选择各切入角度的原因、采用的语气规则,以及有意排除的内容
参见 references/example-sequence.md,了解完整的输出示例。
输入字段约定
模板中的每个 {{placeholder}} 都必须在表格中声明——这是填充和渲染步骤之间的约定。缺少已声明字段时,渲染会明确报错;存在未声明的占位符则属于错误。描述来源时,应说明其角色(例如标准化步骤、分类丰富列),而非任何特定项目中的文件路径。
| 字段 | 来源(按角色说明) | 缺失时的回退方式 |
|---|---|---|
{{first_name}} | 姓名标准化步骤 | 跳过该联系人 |
{{company_name}} | 名称标准化步骤 | 跳过该联系人 |
{{industry}} | 行业分类丰富列 | 删除使用该字段的从句(提供不含 {{industry}} 的变体) |
{{segment}}(路由键) | 客户细分分类丰富列 | 路由到默认变体 |
如果某个字段需要逐行撰写个性化内容(例如专属的一句话开场白),它仍然属于输入字段——应由上游的 LLM 丰富列生成,而非由此技能或渲染阶段生成。
构建活动模板集
步骤 1:读取上游数据
读取项目的公司背景文件、营销活动调研和假设集。
同时确认丰富字段列表——实际会提供哪些 {{input_fields}},以及它们来自哪个丰富或规范化步骤。只使用能保证会填充的字段。
检查角色分布。 如果联系人列表包含多个角色(高管 + IC + 运营人员),则为每个角色群组分别构建一套模板。试图适用于所有角色的一套模板会显得空泛。
步骤 2:探索切入角度,然后敲定文案
这是核心工作。没有运行时模型来“逐行推敲”——这项技能必须直接敲定文案。
- 针对每个假设,找出最有力地切入痛点的方式。探索多个角度。
- 将切入角度映射到序列:每个有力的角度都作为一次 触达(触达 1 = 角度 A,触达 2 = 角度 B,……)或一次触达的变体。多触达序列让你能从多个角度呈现问题,而不必把所有内容塞在一起。
- 为每次触达撰写最终文案。写出实际句子,而不是“围绕 X 撰写一封 P1 邮件”。
- 按照背景文件中的语气规则撰写(语气、限制、禁用词)。不要自行设定语气。
- 仅在确实需要针对每行替换时才放置
{{input_field}}占位符。其他内容都应为固定文案。
步骤 3:定义变体和路由
当某次触达需要因细分群体或角色而有所不同时,请将每个变体写成独立且完整的文案——绝不要在单个模板中使用“如果是企业客户,就说 X”这样的条件语句。声明路由键和每个变体的条件。变体数量保持精简(2-3 个);每个都应是一封完整邮件。
步骤 4:编写输入字段约定
按照上表声明每个 {{field}}——包括来源和回退值。没有可靠来源的字段不得出现在模板中;应添加能生成该字段的丰富步骤,或删掉相关内容。
步骤 5:组装序列文件
# Sequence — {campaign}
[overview: touches, cadence, variables]
## Touch 1 — {angle}
[FINAL copy with {{placeholders}}]
**Subject options:** [first touch only]
## Touch 2 — {angle}
[FINAL copy] **Subject:** empty (threads as Re:)
## Touch 3 — conditional on {{routing_key}}
### Variant A — {condition}
[FINAL copy]
### Variant B — {condition}
[FINAL copy]
## Input Fields contract
[the declared-fields table]
## Notes
[angle rationale, voice rules, what was excluded]
步骤 6:质量检查
- 每次触达都是最终文案,而非操作说明
- 每个
{{placeholder}}都在输入字段约定中声明,并注明来源 + 回退值 - 没有未声明的占位符;没有来源无法保证的
{{field}} - 变体是独立且完整的文案,而非单个模板中的条件语句
- 后续触达的主题为空(延续邮件线程)
- 语气规则 + 禁用词来自背景文件
- 遵守格式规则:没有签名,使用
--而非–/—,仅使用英文 - 遵守措辞规则:绝不写“我们帮助 {{industry}} 团队”,绝不描述潜在客户的公司,绝不写“我们是 {Company}”
- 以下反模式未出现在任何一次触达中
步骤 7:保存
将模板集保存为营销活动的序列文件,存放在 GTM 项目用于存放营销活动素材的位置(每个营销活动对应一个序列文件)。
反模式——任何触达中都不得出现的内容
- 绝不把潜在客户自己的信息复述给他们。 不要改写他们的标题,也不要重述他们的产品功能。他们很清楚。这样做会让人觉得你只是抓取了信息,却无话可说。
- 绝不向他们解释他们自己的业务。 如果他们每天都在做这件事,就别提。
- 不要使用架构术语。 不要写“三层架构”“实体消歧”或“数据网格”。文案应聚焦成果,而非内部实现。
- 每封邮件只问一个问题。 两个问题会彼此争抢注意力,最后都得不到回答。
- 一遍就能读懂。 不要使用嵌套从句或连续堆叠的限定语。如果一个句子需要读第二遍,就把它改短。
- 开场白必须一眼就能看懂。 不要使用白皮书标题式的名词短语(如“X 差距”)。
- 不要改写用户粘贴的文案。 如果用户提供了一个吸引点,就原样使用。
序列结构(默认)
各次触达从不同角度切入,语气由委婉逐步转为直接:
- 触达 1 — 祝贺/背景切入 + 核心遗留痛点 + 委婉的 CTA
- 触达 2 — 更有力的证据或基准数据切入 + 提供文档的 CTA
- 触达 3 — 针对特定细分群体的切入(根据
{{customer_segment}}路由) - 触达 4 — 简短的“告别”/结束联系邮件
默认节奏:触达 1 后间隔 2 天,之后各次触达间隔 3 天。可按营销活动进行调整。
参考资料
- references/example-sequence.md — 完整示例模板集(输出格式)
- references/prompt-patterns.md — 从过往营销活动中提炼的文案模式
- references/email-structures.md — 按角色/资历划分的结构变体