mcpField
C
cold-email-outreach

cold-email-outreach

github.com/gooseworks-ai营销与增长1.3k58 次安装5 天前更新
代码仓库

关于 cold-email-outreach

cold-email-outreach 是一项营销技能,可将线索名单整理为经审核的邮件序列和外联活动。它根据所选平台调整流程:通过 Smartlead MCP 工具自动配置,或为其他工具生成可导入的 CSV。

主要功能

  1. 01导入并验证线索数据
  2. 02按邮箱去重线索
  3. 03撰写多轮邮件序列
  4. 04生成平台专用 CSV
  5. 05配置并启动 Smartlead 活动

适用场景

  1. 01根据线索名单创建外联活动
  2. 02准备个性化跟进邮件序列
  3. 03将线索导入邮件外联平台

MCP 相关

使用 Smartlead 的 MCP 工具创建活动、添加序列和线索、分配邮箱、配置发送设置,并在获得明确批准后启动。其他平台通过 CSV 导出。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gooseworks-ai/goose-skills --skill cold-email-outreach

安装后在 Claude Code 中输入/cold-email-outreach确认已加载。

附带文件skill.meta.json

详细介绍

冷邮件外联

外呼流程的最后一环。从用户存放潜在客户的任意位置获取线索,构建邮件序列,将营销活动载入用户选择的外联工具并启动。

不绑定工具: 先询问用户使用哪个外联平台。如果用户已配置 Smartlead MCP 工具,则默认使用 Smartlead。对于其他工具或手动工作流,则导出为 CSV。

适用场景

在以下情况下使用此技能:

  • 用户说“启动营销活动”“发送外联邮件”“给这些潜在客户发邮件”或“设置冷邮件”
  • 用户有一份潜在客户名单,并想开展外呼邮件营销活动
  • 用户想在 Smartlead 或其他外联工具中创建并配置营销活动

支持的外联工具

此技能不会假设用户使用特定工具,而是先询问,再据此调整。

工具集成方式工作方式
Smartlead(默认)MCP 工具(mcp__smartlead__*)全自动:创建营销活动、添加序列、导入潜在客户、分配邮箱、配置日程并启动
InstantlyCSV 导入生成符合 Instantly 导入格式的 CSV,由用户手动上传
LemlistCSV 导入生成包含 Lemlist 兼容列的 CSV
ApolloCSV 导入生成符合 Apollo 序列导入格式的 CSV
手动 / 其他CSV + 说明将潜在客户和邮件导出为通用 CSV,并提供设置说明

工具选择逻辑:

  1. 在阶段 0 询问用户:“你使用哪个外联工具?”
  2. 如果是 Smartlead → 使用 MCP 工具实现全自动化
  3. 如果是 Instantly / Lemlist / Apollo → 生成对应工具专用的导入 CSV
  4. 如果是 其他或未知工具 → 生成通用 CSV(每次触达包含 email、first_name、last_name、company、title、subject、body),并询问用户该工具的导入要求

前置条件

环境变量

Smartlead(全自动化)需要:

SMARTLEAD_API_KEY=your_api_key_here

所有 Smartlead API 调用均发送至 https://server.smartlead.ai/api/v1,并附加 ?api_key=$SMARTLEAD_API_KEY。速率限制:每 2 秒最多 10 个请求。

基于 CSV 的工具: 无需环境变量。

阶段 0:信息收集

一次性提出所有问题,并按类别整理。跳过用户已回答的问题。

营销活动目标
  1. 目标是什么?(预约会议、促成演示请求、获取回复、培育潜在客户)
  2. 外联角度或切入点是什么?(招聘信号、竞品替换、事件相关、痛点相关、冷名单)
  3. 这次营销活动应命名为什么?
外联工具
  1. 你使用哪个外联工具?(Smartlead / Instantly / Lemlist / Apollo / 其他 / 只要给我 CSV)
潜在客户来源
  1. 潜在客户在哪里?接受以下任意来源:
    • CSV 文件 — 读取文件,并将列映射到必填字段
    • 粘贴的名单 — 直接粘贴姓名、邮箱和公司
    • CRM 导出文件 — Salesforce、HubSpot 或其他 CRM 数据
    • 数据库查询 — 如果用户有数据库,帮助他们查询
    • 上游输出 — 本次对话中先前任务的数据
  2. 有哪些排除项?(特定公司、近期联系过的潜在客户、特定职称)
  3. 营销活动规模上限是多少?(默认:200)

每位潜在客户的最低要求: 邮箱地址。建议提供:first_name、last_name、company、title。

序列设计
  1. 触达几次?(默认:3 次)
  2. 每次触达间隔多久?(默认:第 1 天 / 第 5 天 / 第 12 天)
  3. 个性化级别?(级别 1:仅合并字段 / 级别 2:针对细分人群 / 级别 3:为每位潜在客户单独定制)
发送配置(导出 CSV 时跳过)
  1. 使用哪些邮箱账号发送?(列出账号,或回答“使用所有可用账号”)
  2. 发送时间安排?(默认:按收件人时区,周一至周五上午 8 点至下午 5 点)
  3. 每个账号的每日发送上限?(默认:每天 30 封)
  4. 是否跟踪打开和点击?(默认:跟踪打开,不跟踪点击)

阶段 1:潜在客户导入

解析潜在客户

接受用户提供的任意来源的潜在客户:

  • **CSV 文件:**读取文件并灵活匹配列:
    • email(必填)——也可匹配 Email、email_address
    • first_name——也可匹配 firstname、first、First Name
    • last_name——也可匹配 lastname、last、Last Name
    • company_name——也可匹配 company、organization、Company
    • 其他列均作为自定义字段
  • **粘贴的数据:**解析用户提供的任意格式,提取电子邮件、姓名和公司。
  • **CRM/数据库:**协助用户查询或导出数据,然后解析结果。
验证并去重
  • 移除没有有效电子邮件地址的行
  • 按电子邮件地址去重(保留首次出现的记录)
  • 报告:总行数、有效记录数、无效记录数、移除的重复记录数
展示并确认

展示一张示例表格(10-15 条潜在客户记录),包含:

  • 姓名、职位、公司、电子邮件

告知用户:符合条件的潜在客户总数,以及无效或已移除的记录数。

询问用户是否确认或需要调整,然后再继续。

第 2 阶段:序列设计

编写文案前,先以表格形式展示序列计划:

触达天数电子邮件类型框架CTA
11冷启动介绍Signal-Proof-Ask15 分钟通话
25新角度/内容素材PAS提供资源
312社会认同BAB有兴趣聊聊吗?

在第 3 阶段生成文案之前,先征求用户对结构的批准。

第 3 阶段:生成电子邮件

按照以下指南直接撰写电子邮件文案。

电子邮件结构公式

每封冷启动邮件都遵循以下框架:

Hook (1 sentence) → Evidence (1-2 sentences) → Offer (1 sentence)

字数目标:

  • 冷启动介绍(触达 1):50-90 个词
  • 后续跟进(触达 2-3):30-50 个词
  • 结束邮件(最后一次触达):20-40 个词
按个性化级别划分

**第 1 级(通用):**每次触达生成一个模板,并使用合并字段({first_name}、{company}、{title})。所有潜在客户使用相同模板。

**第 2 级(细分):**每个细分群体的每次触达生成一个模板。根据角色、行业或信号类型定义细分群体。在不同细分群体间替换痛点和证明材料。

**第 3 级(深度个性化):**为每位潜在客户的每次触达生成独一无二的电子邮件。最多处理 50 位潜在客户——超过此数量时,建议使用第 2 级。

硬性规则
  1. **不要使用填充式开场白。**绝不要说“I hope this finds you well”
  2. **后续邮件不要说“just checking in”。**每次触达都要提供一个新的回复理由
  3. **每封邮件不超过 150 个词。**大多数邮件应为 80-120 个词。
  4. **每封邮件只有一个 CTA。**始终选择低门槛的行动号召。
  5. **第一句话不要推销。**先谈对方,而不是自己。
  6. **主题行少于 50 个字符。**不要使用大写、感叹号或表情符号。
  7. **结尾只署名。**不要写“Best regards.”
审阅流程
  1. 先为 3-5 位潜在客户生成示例邮件
  2. 提交用户审阅
  3. 持续迭代,直至获得批准(最多 3 轮)
  4. 获批后生成其余邮件

第 4 阶段:活动设置

如果使用 Smartlead(MCP 自动化)

通过 MCP 工具实现全自动化。按以下顺序执行:

步骤 1:查找并分配邮箱

mcp__smartlead__get_email_accounts

返回所有电子邮件账户及其 id、from_email、from_name、daily_sent_count、is_smtp_success、is_imap_success。

查找空闲邮箱(尚未分配给活跃营销活动):

  1. 获取所有营销活动:mcp__smartlead__get_campaigns
  2. 对于状态为 ACTIVE 或 STARTED 的每个营销活动,获取其电子邮件账户:mcp__smartlead__get_campaign_email_accounts
  3. 汇总当前分配给活跃营销活动的所有 email_account_id 值
  4. 如果邮箱的 id 不在活跃集合中,且 is_smtp_success = true、is_imap_success = true,则该邮箱为“空闲”
  5. 按 daily_sent_count 升序排列空闲邮箱(优先选择使用最少的邮箱)
  6. 选择所需数量的空闲邮箱

如果空闲邮箱数量少于所需数量,请告知用户并询问如何继续。

向用户展示可用/已选账户以供确认。

步骤 2:创建营销活动

mcp__smartlead__create_campaign
  name: {campaign_name}

保存返回的 campaign_id。

步骤 3:添加序列步骤

mcp__smartlead__save_campaign_sequences
  campaign_id: {campaign_id}
  sequences: [
    { seq_number: 1, subject: "...", email_body: "...", seq_delay_details: { delay_in_days: 0 } },
    { seq_number: 2, subject: "...", email_body: "...", seq_delay_details: { delay_in_days: 4 } },
    { seq_number: 3, subject: "...", email_body: "...", seq_delay_details: { delay_in_days: 7 } }
  ]

合并变量映射: 将 {first_name} 转换为 {{first_name}},将 {company} 转换为 {{company}}(Smartlead 使用双大括号语法)。

注意: 第 2 封及后续邮件的 subject 留空时,会作为同一会话中的回复发送。

步骤 4:导入潜在客户(每批 100 条)

mcp__smartlead__add_leads_to_campaign
  campaign_id: {campaign_id}
  lead_list: [{ email: "...", first_name: "...", last_name: "...", company_name: "...", ... }]

Smartlead 每次调用最多接受 100 条潜在客户记录。将列表拆分为多个批次,并对每批分别调用。额外的列会成为 custom_fields。

步骤 5:分配发送账户

mcp__smartlead__add_email_accounts_to_campaign
  campaign_id: {campaign_id}
  email_account_ids: [...]

步骤 6:设置发送计划

mcp__smartlead__update_campaign_schedule
  campaign_id: {campaign_id}
  schedule: {
    timezone: "America/New_York",
    days_of_the_week: [1, 2, 3, 4, 5],
    start_hour: "08:00",
    end_hour: "18:00",
    min_time_btw_emails: 10,
    max_new_leads_per_day: 20
  }

days_of_the_week:0=星期日,1=星期一,…,6=星期六。

步骤 7:配置设置

mcp__smartlead__update_campaign_settings
  campaign_id: {campaign_id}
  settings: {
    track_settings: [],
    stop_lead_settings: "REPLY_TO_AN_EMAIL",
    send_as_plain_text: false,
    follow_up_percentage: 100
  }

允许的 track_settings:DONT_TRACK_EMAIL_OPEN、DONT_TRACK_LINK_CLICK、DONT_TRACK_REPLY_TO_AN_EMAIL 允许的 stop_lead_settings:REPLY_TO_AN_EMAIL、CLICK_ON_A_LINK、OPEN_AN_EMAIL

如果使用基于 CSV 的工具(Instantly、Lemlist、Apollo 或其他工具)

步骤 1:生成 CSV

列取决于个性化级别:

级别 1(所有人使用相同模板):

  • CSV 列:email、first_name、last_name、company、title、custom_field_1(信号/切入点)
  • 另附一个文件,其中包含序列模板(带合并字段的主题和正文)

级别 2/3(按细分群体或潜在客户分别撰写邮件):

  • CSV 列:email、first_name、last_name、company、title、touch_1_subject、touch_1_body、touch_2_subject、touch_2_body、touch_3_subject、touch_3_body

步骤 2:保存文件

保存到当前工作目录:

{campaign-name}-{YYYY-MM-DD}.csv

步骤 3:提供特定工具的导入说明

Instantly:

  • 上传 CSV → Sequences → Create new sequence
  • 映射列:Email → email、First Name → first_name 等
  • 将序列模板粘贴到各步骤
  • 设置步骤之间的延迟

Lemlist:

  • People → Import → Upload CSV
  • 将自定义变量映射到列
  • 创建营销活动 → 添加邮件步骤 → 插入变量

Apollo:

  • Sequences → Create Sequence → 添加邮件步骤
  • Contacts → Import → Upload CSV
  • 将导入的联系人添加到序列

其他/手动:

  • 提供 CSV 路径并说明列结构
  • 询问用户的工具需要什么格式,并在需要时进行调整

第 5 阶段:审核并启动

展示营销活动摘要:

Campaign: {name}
Leads: {count}
Sequence: {touches} touches over {days} days
Sending: {accounts} accounts × {daily_limit}/day = {daily_volume} emails/day
Estimated completion: {date}
Tool: {smartlead/instantly/etc.}
必须获得明确批准

未经用户明确确认,切勿激活营销活动。 展示摘要,然后询问:“准备好启动了吗?输入‘yes’以激活。”

  • Smartlead: mcp__smartlead__update_campaign_status → 将状态设为 START
  • CSV 工具: 告知用户文件已准备好导入,并提供文件路径

Smartlead API 参考

所有端点均使用基础 URL https://server.smartlead.ai/api/v1,并通过 ?api_key= 查询参数传递 API 密钥。

端点方法用途
/campaigns/createPOST创建新营销活动
/campaignsGET列出所有营销活动
/campaigns/{id}GET按 ID 获取营销活动
/campaigns/{id}/schedulePOST设置营销活动日程
/campaigns/{id}/settingsPOST更新跟踪/停止设置
/campaigns/{id}/sequencesPOST保存邮件序列
/campaigns/{id}/leadsPOST添加潜在客户(每次调用最多 100 个)
/campaigns/{id}/email-accountsGET列出营销活动中的邮箱
/campaigns/{id}/email-accountsPOST为营销活动分配邮箱
/campaigns/{id}/statusPOST更改营销活动状态(START/PAUSED/STOPPED)
/campaigns/{id}/analyticsGET营销活动顶层分析数据
/email-accounts/GET列出所有邮箱账户(offset/limit)

费用

组成部分费用
Smartlead 营销活动设置免费(Smartlead 套餐包含 API)
CSV 导出免费
邮件文案生成免费(大模型推理)

错误处理

错误解决方法
未设置 SMARTLEAD_API_KEY请用户将其添加到 .env 或导出该变量
Smartlead 速率限制(429)等待 2 秒后重试
潜在客户上传失败检查邮件格式,然后重试该批次
没有可用邮箱显示所有账户,并询问用户要使用哪个
创建营销活动失败检查 API 密钥是否有效

评论

支持 Markdown