关于 smartlead-campaign-upload-public
将 `leads.csv` 和 `variants.yaml` 上传为 Smartlead 草稿活动的工具技能。它负责配置和导入,活动须由人员在 Smartlead 界面审核并手动启动。
主要功能
- 01校验潜在客户 CSV 列
- 02解析活动变体 YAML
- 03按发送量分配已标记收件箱
- 04分批上传潜在客户
- 05设置活动日程和参数
- 06保留草稿供人工审核
适用场景
- 01用准备好的名单创建 Smartlead 草稿
- 02载入含 A/B/C 变体的序列
- 03启动前检查收件箱分配
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ growthenginenowoslawski/ coldoutboundskills --skill smartlead-campaign-upload-public安装后在 Claude Code 中输入/smartlead-campaign-upload-public确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/leads-csv-schema.mdvariants-schema.yamlscripts/upload.ts详细介绍
Smartlead Campaign 上传
接收 variants.yaml(由 /campaign-copywriting 编写)和 leads.csv(来自你的名单构建技能),并在 Smartlead 中创建一个 DRAFT Campaign。你可以在 Smartlead UI 中检查结果,然后手动点击 Start。
此技能不会提供任何邮件文案。 文案来自 /campaign-copywriting。此技能只是机械的上传层——仅调用 API。
为什么只能创建 DRAFT
冷邮件 Campaign 绝不应通过脚本启动。检查以下内容后,在 Smartlead UI 中点击 Start:
- 主题行和正文预览
- 收件箱分配(标签是否正确?数量是否正确?)
- Leads 数量和几条随机 lead 记录
- 发送计划(时区、时段和发送速率)
脚本会在 DRAFT 中完成所有设置,让检查变得轻而易举——确认无误后点击 Start。
输入
leads.csv
必需列:
emailfirst_namelast_namecompany_name
可选列(作为自定义字段传递给 Smartlead):
company_domaintitlelinkedin_urlsituation_line(AI 为每个 lead 生成的背景信息)value_line(AI 生成的价值映射)cta_line(AI 生成的 CTA 角度)
由 /campaign-copywriting 或 /personalization-subagent-pattern 生成的其他 AI 变量列——仅限命名字段。脚本不接受任意列;这是有意为之。如果需要添加字段,请更新此技能。
variants.yaml
由 /campaign-copywriting 生成。Schema 位于 references/variants-schema.yaml。
最低要求:name、schedule、inbox_selection,以及至少包含一个步骤的 sequences。
用法
export SMARTLEAD_API_KEY=xxx
npx tsx scripts/upload.ts \
--leads=profiles/<slug>/campaigns/<campaign-slug>/leads.csv \
--variants=profiles/<slug>/campaigns/<campaign-slug>/variants.yaml
输出:
✓ Campaign created: #12345678
✓ Sequence saved (3 steps, 3 variants on step 1)
✓ 20 inboxes attached (tag=active, LRU by daily_sent_count)
✓ 1,847 leads uploaded (20 batches)
✓ Schedule set (M-F 08:00-17:00 EST, 30/day/inbox)
Campaign is in DRAFT. Review + Start:
→ https://app.smartlead.ai/app/email-campaign/12345678
脚本流程
- 加载环境变量(必需:
SMARTLEAD_API_KEY) - 解析
leads.csv——验证必需列并统计行数 - 解析
variants.yaml——内置最简解析器(约 30 行,无外部依赖) POST /campaigns/create→ 获取 campaignIdPOST /campaigns/{id}/sequences,添加所有 A/B/C 变体- 查询
/email-accounts?limit=100,按tag筛选,按daily_sent_count升序排序(LRU),并附加排名靠前的 N 个账号 - 批量上传 Leads(每批 100 个),将 CSV 中的标准自定义字段进行映射
POST /campaigns/{id}/settings(关闭追踪,收到回复时停止)- 使用 YAML 中的值调用
POST /campaigns/{id}/schedule - 输出 Campaign URL。不要激活。
注意事项
- 标签必须先存在并应用于收件箱。 运行此上传前,使用
/smartlead-inbox-manager将收件箱标记为active。 - 收件箱数量。 如果
inbox_selection.count超过已标记的收件箱数量,脚本会附加所有可用收件箱并发出警告。 - Leads CSV 大小。 已测试最多 10K 行;更大规模的运行可能触发 API 速率限制。脚本内置了指数退避重试机制。
- Variants.yaml 不匹配。 如果
/campaign-copywriting未生成完全符合 Schema 的内容,脚本会立即失败,并清楚指出出错字段。 - 邮件重复。 Smartlead 会在服务器端按 Campaign 去重。尽管如此,仍应先使用
/list-quality-scorecard对 CSV 去重。
接下来要做什么
打开最后输出的 Smartlead URL,检查 Campaign。确认无误后点击 Start。 脚本有意不自动激活。
点击 Start 后:
- 等待 21 天,然后对 Campaign 运行
/positive-reply-scoring进行评估。 - 每周一运行
/email-deliverability-audit --days=7(参见/cold-email-weekly-rhythm)。
或者先等待: 如果最佳实践检查发现问题,请返回 /campaign-copywriting 修改,然后再上传。
相关技能
/campaign-copywriting— 生成variants.yaml/smartlead-inbox-manager— 必要的准备工作:上传前必须将收件箱标记为active/list-quality-scorecard— 上传前对 leads.csv 去重并验证/positive-reply-scoring— 上线 21 天后运行以进行评估/cold-email-weekly-rhythm— 上线后的运营节奏
文件
scripts/upload.ts— 上传脚本references/variants-schema.yaml— 空白 Schema 参考(不含示例文案)references/leads-csv-schema.md— 列规范