campaign-execution

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Campaign Execution Skill

LinkedIn推广活动执行Skill

Execute LinkedIn outreach campaigns by performing due actions and tracking progress. Uses a manual check-in approach where users invoke this skill periodically to process pending actions.
通过执行相应操作并跟踪进度来完成LinkedIn客户开发推广活动。采用手动定期调用的方式,用户需周期性触发此Skill来处理待执行操作。

Process

流程

Step 1: Load Campaign

步骤1:加载活动

If
campaign_id
not provided:
  1. Search for campaigns in
    .business_growth/sales/campaigns/
  2. Display campaigns with status and progress
  3. Ask user to select campaign
Load the campaign's
CAMPAIGN.md
and
LIST.md
files from the campaign folder (
.business_growth/sales/campaigns/<campaign_id>/
).
如果未提供
campaign_id
  1. .business_growth/sales/campaigns/
    目录中搜索活动
  2. 展示活动的状态和进度
  3. 请用户选择活动
从活动目录(
.business_growth/sales/campaigns/<campaign_id>/
)中加载活动的
CAMPAIGN.md
LIST.md
文件。

Step 2: Determine Action

步骤2:确定操作类型

Based on
action
parameter or ask user:
ActionDescription
run
Execute all due actions for leads
status
Show campaign progress without actions
pause
Set campaign status to paused
resume
Set campaign status to running
根据
action
参数或询问用户来确定:
操作描述
run
执行所有线索的待处理操作
status
仅展示活动进度,不执行操作
pause
将活动状态设置为暂停
resume
将活动状态设置为运行中

Step 3: For "status" Action

步骤3:当操作为"status"时

Display campaign summary:
  • Campaign name and status
  • Total leads in target list
  • Breakdown by execution status
  • Recent activity log
  • Pending actions count
展示活动摘要:
  • 活动名称和状态
  • 目标列表中的总线索数
  • 按执行状态分类的明细
  • 近期活动日志
  • 待执行操作数量

Step 4: For "run" Action

步骤4:当操作为"run"时

Process each lead in the target list:
处理目标列表中的每个线索:

4a. Check/Create Execution File

4a. 检查/创建执行文件

For each lead, check if execution file exists at:
.business_growth/sales/campaigns/campaign_<name>/leads/<lead_name>/execution.md
Lead Naming: Generate meaningful snake_case names for leads based on their name and company (e.g.,
john_smith_acme
,
sarah_jones_techcorp
). Keep names concise, lowercase with underscores.
If not exists, create it:
markdown
undefined
针对每个线索,检查执行文件是否存在于以下路径:
.business_growth/sales/campaigns/campaign_<name>/leads/<lead_name>/execution.md
线索命名规则:根据线索的姓名和公司生成有意义的蛇形命名(snake_case),例如
john_smith_acme
sarah_jones_techcorp
。命名需简洁,使用小写字母加下划线。
若文件不存在,则创建该文件:
markdown
undefined

Execution: <Lead Name>

Execution: <Lead Name>

Lead Info

Lead Info

  • Name: <name>
  • LinkedIn: <url>
  • Company: <company>
  • Campaign: campaign_<name> # e.g., campaign_q1_outreach_fintech
  • Name: <name>
  • LinkedIn: <url>
  • Company: <company>
  • Campaign: campaign_<name> # e.g., campaign_q1_outreach_fintech

Status

Status

  • Current: pending
  • Current Step: 1
  • Next Action: connection_request
  • Next Action Time: <now>
  • Current: pending
  • Current Step: 1
  • Next Action: connection_request
  • Next Action Time: <now>

Action Log

Action Log

<!-- Actions will be logged here -->
undefined
<!-- Actions will be logged here -->
undefined

4b. Check If Action Due

4b. 检查操作是否待执行

Read execution file and check:
  1. Is status
    pending
    or
    in_progress
    ?
  2. Is current date >= next action time?
  3. Has previous step completed successfully?
If all true, action is due.
读取执行文件并验证:
  1. 状态是否为
    pending
    in_progress
  2. 当前日期是否大于等于下一次操作时间?
  3. 上一步操作是否已成功完成?
若以上条件均满足,则该操作待执行。

4c. Execute Due Action

4c. 执行待处理操作

Based on action type:
Connection Request:
  1. Navigate to lead's LinkedIn profile
  2. Click "Connect" button
  3. Add personalized note from template
  4. Send connection request
  5. Take screenshot for verification
Message:
  1. Navigate to lead's profile or messaging
  2. Open message compose
  3. Enter personalized message from template
  4. Send message
  5. Take screenshot for verification
Important: Replace template tokens with lead data:
  • {{first_name}}
    → Lead's first name
  • {{company}}
    → Lead's company
  • {{title}}
    → Lead's title
  • {{custom}}
    → Custom personalization from research.md if exists
根据操作类型执行:
发送连接请求:
  1. 导航至线索的LinkedIn个人主页
  2. 点击「Connect」按钮
  3. 从模板中添加个性化备注
  4. 发送连接请求
  5. 截图用于验证
发送消息:
  1. 导航至线索的个人主页或消息界面
  2. 打开消息撰写窗口
  3. 输入来自模板的个性化消息
  4. 发送消息
  5. 截图用于验证
重要提示:使用线索数据替换模板中的占位符:
  • {{first_name}}
    → 线索的名字
  • {{company}}
    → 线索的公司
  • {{title}}
    → 线索的职位
  • {{custom}}
    → 若research.md存在,则使用其中的自定义个性化内容

4d. Log Action and Update Status

4d. 记录操作并更新状态

Update
execution.md
:
markdown
undefined
更新
execution.md
文件:
markdown
undefined

Status

Status

  • Current: in_progress
  • Current Step: 2
  • Next Action: message
  • Next Action Time: <calculated based on sequence timing>
  • Current: in_progress
  • Current Step: 2
  • Next Action: message
  • Next Action Time: <calculated based on sequence timing>

Action Log

Action Log

<timestamp>

<timestamp>

  • Step: 1
  • Type: connection_request
  • Content: <actual message sent>
  • Outcome: sent
  • Screenshot: <reference if taken>
undefined
  • Step: 1
  • Type: connection_request
  • Content: <actual message sent>
  • Outcome: sent
  • Screenshot: <reference if taken>
undefined

4e. Handle Special Cases

4e. 处理特殊情况

Connection Accepted (see
references/CHECK_CONNECTION_ACCEPTS.md
for full procedure):
  • Check accepts via LinkedIn Connections page (sorted by recently added) — NOT sent invitations
  • Send Step 2 welcome message from campaign template
  • Update execution status and calculate next action time
Reply Received:
  • Set status to
    replied
  • No more automated actions
  • Flag for manual follow-up
Failed Action:
  • Log error in execution file
  • Set status to
    failed
    with reason
  • Continue with next lead
连接请求被接受(完整流程请参考
references/CHECK_CONNECTION_ACCEPTS.md
):
  • 通过LinkedIn「Connections」页面(按最新添加排序)检查是否被接受 — 而非已发送的邀请
  • 发送活动模板中的第二步欢迎消息
  • 更新执行状态并计算下一次操作时间
收到回复:
  • 将状态设置为
    replied
  • 停止后续自动化操作
  • 标记为需要手动跟进
操作失败:
  • 在执行文件中记录错误
  • 将状态设置为
    failed
    并注明原因
  • 继续处理下一个线索

Step 5: Rate Limit Management

步骤5:限流管理

Track actions taken and advise on limits:
  • Connection requests: ~20-25/day
  • Messages: ~50-100/day
  • Profile views: ~30/hour
When approaching limits:
  1. Pause execution
  2. Inform user of limits reached
  3. Suggest resuming after cooldown period
  4. Calculate when safe to resume
跟踪已执行的操作并提示限制:
  • 连接请求:约20-25条/天
  • 消息:约50-100条/天
  • 主页浏览:约30次/小时
当接近限制时:
  1. 暂停执行
  2. 告知用户已达限制
  3. 建议在冷却期后恢复
  4. 计算可安全恢复的时间

Step 6: Report Progress

步骤6:进度报告

After processing all due actions, provide summary:
undefined
处理完所有待执行操作后,提供执行摘要:
undefined

Campaign Execution Summary

Campaign Execution Summary

Campaign: <name> Execution Time: <timestamp>
Campaign: <name> Execution Time: <timestamp>

Actions Taken

Actions Taken

  • Connection Requests Sent: X
  • Messages Sent: Y
  • Total Actions: Z
  • Connection Requests Sent: X
  • Messages Sent: Y
  • Total Actions: Z

Lead Status Breakdown

Lead Status Breakdown

  • Pending: X leads
  • In Progress: Y leads
  • Replied: Z leads (🎉)
  • Completed: W leads
  • Failed: V leads
  • Pending: X leads
  • In Progress: Y leads
  • Replied: Z leads (🎉)
  • Completed: W leads
  • Failed: V leads

Next Check-In

Next Check-In

Recommend checking back in: <calculated time> Reason: <rate limit cooldown / sequence timing>
Recommend checking back in: <calculated time> Reason: <rate limit cooldown / sequence timing>

Leads Requiring Attention

Leads Requiring Attention

  • <Lead Name>: <reason - e.g., "Replied to connection request">
undefined
  • <Lead Name>: <reason - e.g., "Replied to connection request">
undefined

Step 7: Update Campaign Metrics

步骤7:更新活动指标

Update
CAMPAIGN.md
performance metrics section with current counts.
CAMPAIGN.md
的性能指标部分更新当前统计数据。

Execution Statuses

执行状态说明

StatusMeaning
pending
Not yet started
in_progress
Sequence in progress, awaiting next step
replied
Lead replied, stop automation
completed
All steps executed
failed
Error occurred, needs review
状态含义
pending
尚未开始
in_progress
流程进行中,等待下一步操作
replied
线索已回复,停止自动化操作
completed
所有步骤已执行完成
failed
发生错误,需要审核

Browser Tools Used

使用的浏览器工具

ToolPurpose
tabs_context_mcp
Get browser context
navigate
Go to LinkedIn profiles
read_page
Verify page state
find
Locate buttons and inputs
form_input
Enter message text
computer
Click, scroll, screenshot
工具用途
tabs_context_mcp
获取浏览器上下文
navigate
跳转至LinkedIn个人主页
read_page
验证页面状态
find
定位按钮和输入框
form_input
输入消息文本
computer
点击、滚动、截图

Error Handling

错误处理

Common issues and responses:
IssueResponse
Profile not foundMark as failed, log reason
Connect button unavailableMay already be connected, verify
Rate limit warningStop execution, report to user
Login requiredAsk user to log in manually
Message failed to sendRetry once, then mark failed
常见问题及处理方式:
问题处理方式
未找到个人主页标记为失败并记录原因
无「Connect」按钮可能已连接,需验证
收到限流警告停止执行并告知用户
需要登录请用户手动登录
消息发送失败重试一次,若仍失败则标记为失败

Manual Check-In Approach

手动定期调用方式

This skill is designed for periodic manual invocation:
  1. User invokes skill when ready to execute
  2. All due actions are processed
  3. Summary provided with next check-in time
  4. User invokes again when ready
This approach:
  • Respects LinkedIn rate limits
  • Gives user control over timing
  • Allows review between batches
  • Avoids continuous automation flags
此Skill设计为需手动定期触发:
  1. 用户准备好执行操作时调用Skill
  2. 处理所有待执行操作
  3. 提供执行摘要及下一次建议调用时间
  4. 用户在合适时机再次调用
这种方式的优势:
  • 遵守LinkedIn的限流规则
  • 让用户掌控执行时机
  • 允许在批量处理之间进行审核
  • 避免持续自动化触发平台检测