LinkedIn 跟进:自动化 CRM 与外联 - Openclaw Skills
作者:互联网
2026-03-28
什么是 LinkedIn 跟进自动化技能?
LinkedIn 跟进技能是一款专业级自动化工具,旨在将 Google 表格转变为高性能的 LinkedIn CRM。通过 gog CLI 直接与您的浏览器和 Google 表格集成,此技能允许用户实时记录所有外联工作。它是 Openclaw Skills 生态系统的核心组件,使开发人员和销售团队能够通过结构化的渠道管理潜在客户(从初始接触到成交),无需手动输入数据。
此技能通过结合意图分析和上下文感知草拟,超越了简单的消息传递。它读取整个对话线程,模拟潜在客户的语气,并根据可定制的回复剧本建议最有效的下一步行动。无论您管理的是十个还是上百个潜在客户,Openclaw Skills 都能提供基础设施来扩展您的个性化外联,同时保持人性化触感。
下载入口:https://github.com/openclaw/skills/tree/main/skills/10madh/linkedin-followup
安装与下载
1. ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install linkedin-followup
2. 手动安装
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
3. 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 linkedin-followup。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
LinkedIn 跟进自动化技能 应用场景
- 当潜在客户在 LinkedIn 上回复时,自动更新 Google 表格中的潜在客户状态。
- 根据之前的消息上下文生成并发送个性化的跟进消息。
- 对外联活动进行批量审查,以识别在特定时间内未回复的潜在客户。
- 为销售团队维护所有 LinkedIn 对话历史记录的集中、可搜索日志。
- 该技能查询指定的 Google 表格以检索潜在客户详细信息、LinkedIn URL 和当前状态。
- 它导航到 LinkedIn 信息流,然后使用防检测模式访问特定个人资料,以确保账号安全。
- 代理抓取活动消息线程并分析最后一次回复,以确定潜在客户的意图。
- 使用预定义的回复剧本起草上下文回复,用户可以批准或编辑。
- 确认后,消息通过浏览器配置文件发送,Google 表格将更新新的时间戳、日志条目和状态更改。
LinkedIn 跟进自动化技能 配置指南
要开始使用此技能,请确保已配置 gog CLI 工具。按照以下步骤验证您的环境:
gog auth credentials set /path/to/client_secret.json
gog auth add your@gmail.com --services sheets
接下来,确保您的 Google 表格包含所需的列 (A–P)。如果您需要添加跟踪列,请使用以下命令:
gog sheets update "Sheet1!M1:P1" --values-json '[["最后回复日期","最后回复 (预览)","对话日志","下一步行动"]]' --input USER_ENTERED
LinkedIn 跟进自动化技能 数据架构与分类体系
该技能在 Google 表格中通过 16 列组织潜在客户数据,以确保全面跟踪:
| 列 | 字段 | 描述 |
|---|---|---|
| B | 姓名 | 潜在客户的全名 |
| E | LinkedIn URL | 指向潜在客户个人资料的直接链接 |
| J | 状态 | 管道阶段(例如:已发送、已回复、已预约电话) |
| O | 对话日志 | 带有时间戳的已发送和已接收消息的完整历史记录 |
| P | 下一步行动 | AI 建议或人工定义的下一步行动 |
name: linkedin-followup
description: Manage LinkedIn outreach leads from Google Sheets — search by name, read live conversation threads, update status, and send contextual follow-up messages. Use after linkedin-dm to move leads through the pipeline (Sent → Replied → Call Scheduled → Demo Done → Closed).
metadata:
{
"openclaw": {
"emoji": "??",
"requires": { "bins": ["gog"] },
"skills": ["gog"],
"tags": ["linkedin", "crm", "outreach", "sales", "follow-up"]
}
}
linkedin-followup
Manage ongoing LinkedIn conversations from a central Google Sheet CRM. Read threads, draft context-aware replies, send messages, and keep the sheet updated — all from one skill.
Pre-flight Checklist
Before doing anything:
- Sheet ID — Confirm the CRM sheet ID (from
linkedin-dmsetup). Default:1eEZDGcr1dIbSC782mNkxvD7pVrF8rOFySWCVZ1RXkhM, tab:Sheet1(orOutreachif renamed). - gog auth — Run
gog auth list. If no tokens: see gog auth setup below. - Browser — Open the openclaw browser profile and confirm LinkedIn is logged in. Navigate to
/feed/first. - Mode — Identify which mode the user wants (see Modes).
Sheet Schema
The CRM sheet uses these columns (A–P):
| Col | Field | Notes |
|---|---|---|
| A | Date Sent | ISO date |
| B | Person Name | Full name |
| C | Role / Title | |
| D | Company | |
| E | LinkedIn URL | Profile URL |
| F | Relationship Hook | Hook used in opener |
| G | Opener Sent | Message 1 text |
| H | Pitch Sent | Message 2 text |
| I | Campaign | Batch label |
| J | Status | Current pipeline stage |
| K | Notes | Context and history |
| L | Last Updated | ISO timestamp |
| M | Last Reply Date | When they last replied |
| N | Last Reply (preview) | First 200 chars of their last reply |
| O | Conversation Log | Full thread (see format below) |
| P | Next Action | What to do next (agent or human) |
Status values: Sent → Replied → Call Scheduled → Demo Done → Follow Up Sent → No Response → Closed Won → Closed Lost
Conversation Log format (column O):
[2026-02-13 17:05 SENT] Hey Rishabh, we both had stints at CRED...
[2026-02-13 17:05 SENT] I'm building an AI calling agent...
[2026-02-15 09:30 RECEIVED] Hey! Sounds interesting, tell me more.
[2026-02-15 09:45 SENT] Happy to show you a live demo — are you free Thursday?
If columns M–P don't exist yet, add them first:
gog sheets update "Sheet1!M1:P1" r
--values-json '[["Last Reply Date","Last Reply (preview)","Conversation Log","Next Action"]]' r
--input USER_ENTERED
Modes
Mode 1 — Quick Status Update
User says: "Mark Rishabh as Replied" or "Rishabh got back to me, he's interested"
-
Find the row — Search the sheet for the person:
gog sheets get"Sheet1!A:P" --json Match by name (col B) or LinkedIn URL (col E). Get the row number.
-
Update status (col J) and last updated (col L):
gog sheets update"Sheet1!J :L
" r --values-json '[["Replied","","
"]]' r --input USER_ENTERED -
If the user provides reply content, also update:
- Col M: Last Reply Date
- Col N: Last Reply preview (first 200 chars)
- Col O: Append to Conversation Log
- Col P: Next Action (what should happen next)
-
Confirm update to user.
Mode 2 — Full Follow-up (Read + Draft + Send)
User says: "Follow up with Rishabh" or "Send a follow-up to everyone who replied"
Step 1 — Load the person's data from sheet
gog sheets get "Sheet1!A:P" --json
Find their row. Load: Name, Company, Role, LinkedIn URL, Opener Sent, Pitch Sent, Status, Notes, Conversation Log, Next Action.
Step 2 — Navigate to their LinkedIn profile
Always go to feed first (anti-detection):
https://www.linkedin.com/feed/
Wait 2–4 seconds. Then navigate to their profile URL (col E).
Step 3 — Open message thread and read conversation
Click the Message button on their profile. Wait for the conversation bubble to load.
Scrape the full thread with JavaScript:
const events = Array.from(document.querySelectorAll('.msg-s-message-list__event'));
const messages = [];
events.forEach(el => {
const groups = el.querySelectorAll('.msg-s-event-listitem');
groups.forEach(g => {
const nameEl = g.closest('.msg-s-message-group')?.querySelector('.msg-s-message-group__profile-link');
const bodyEl = g.querySelector('.msg-s-event-listitem__body');
const timeEl = g.closest('.msg-s-message-group')?.querySelector('.msg-s-message-group__timestamp');
if (bodyEl?.textContent?.trim()) {
messages.push({
sender: nameEl?.textContent?.trim() || 'unknown',
time: timeEl?.textContent?.trim() || '',
text: bodyEl.textContent.trim()
});
}
});
});
return JSON.stringify(messages);
If the thread is empty or not loading, scroll up in the conversation bubble to load older messages.
Step 4 — Analyse the conversation
With the full thread loaded + their profile data, determine:
- What did they say last? — Identify the most recent message from them.
- What's the intent? — Interested / wants more info / asked a question / cold / objection / not interested.
- What's the right next message? — See Response Playbook below.
- Tone — Mirror their tone (casual vs formal, brief vs detailed).
Step 5 — Draft the follow-up
Write a response that:
- Directly addresses what they said last
- Doesn't re-pitch unless they asked for it
- Moves toward a specific action (demo, call, intro, forward to team)
- Is brief — 2–4 sentences max
- Feels human, not templated
Show the draft to the user and ask for approval before sending:
Draft reply to [Name]: [message]
Send this? (y / edit / skip)
Step 6 — Send the message
Same JS evaluate method as linkedin-dm:
const active = document.querySelector('.msg-overlay-conversation-bubble--is-active .msg-form__contenteditable');
if (active) { active.focus(); document.execCommand('insertText', false, ''); }
Then find and click Send.
Step 7 — Update the sheet
After sending:
gog sheets update "Sheet1!J:P" r
--values-json '[["","","","","",""]]' r
--input USER_ENTERED
Mode 3 — Batch Review
User says: "Who needs a follow-up?" or "Check my outreach"
- Load all rows from the sheet.
- Filter by status and time:
Sentolder than 3 days → candidate for "No Response" or gentle follow-upReplied→ needs a responseFollow Up Sentolder than 5 days → consider "No Response"Call Scheduled→ check if call happened, update status
- Present a table of candidates:
Name Status Last Updated Suggested Action Rishabh Nayan Replied 2026-02-14 Reply to their message Shorya Saini Sent 2026-02-10 Follow-up nudge (4 days) Shantam Mohata Sent 2026-02-13 Too soon (today) - User picks who to action, then enter Mode 2 for each.
Response Playbook
Use these as a guide — always adapt to the actual conversation:
| They said | Intent | Your move |
|---|---|---|
| "Sounds interesting, tell me more" | Curious | Short explanation + offer a specific demo slot |
| "How does it work?" | Exploring | 2-line description + invite to a 15-min call |
| "We already use [X]" | Objection | Acknowledge, explain differentiation, offer demo |
| "Send me more details" | Soft interest | Share a Loom/deck/link + follow up in 2 days |
| "Not relevant right now" | Soft no | Respect it, leave door open: "No worries, I'll ping you in a few months" |
| "Who else is using it?" | Trust-building | Share a relevant use case, offer intro to a user |
| [No reply in 4 days] | Silence | Light nudge: "Hey [Name], just checking — any thoughts?" |
| [No reply in 8 days] | Cold | One final message, then mark No Response |
Anti-Detection Rules
Same rules as linkedin-dm:
- Always go to
/feed/before navigating to a profile - Wait 2–4 seconds after loading feed
- Max 15–20 messages per session (combined sends across follow-ups)
- Space out follow-ups: don't ping multiple people in rapid succession
- Natural delays between typing and sending (1–2 seconds)
gog Auth Setup
If gog auth list returns empty, the user needs to set up Google OAuth credentials:
- Go to console.cloud.google.com
- Create a project (or select existing)
- Enable Google Sheets API (APIs & Services → Library)
- Create OAuth credentials: APIs & Services → Credentials → Create → OAuth client ID → Desktop App
- Download
client_secret_.json - Run:
gog auth credentials set /path/to/client_secret.json gog auth add your@gmail.com --services sheets - A browser window will open — log in and grant access
- Verify:
gog auth list
Fallback (no gog): All sheet reads/writes can be done manually via browser — open the sheet in the openclaw browser and update cells directly. Less automated but functional.
Session Limits
- Max 15–20 follow-up messages per session
- Log every send immediately to sheet (don't batch)
- If gog is unavailable, log to local
linkedin_followup_log.jsonand sync to sheet next session
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
WebDAV 备份工具:AI 工作区云同步 - Openclaw Skills
Tavily 搜索:AI 驱动的研究与网络智能 - Openclaw 技能
Telegram Notify:实时交易警报 - Openclaw Skills
Google Workspace CLI:自动化云端硬盘和 Gmail - Openclaw Skills
每小时动量交易员:加密货币动量评分与 Polymarket 策略 - Openclaw Skills
更新签名验证器:保障您的 AI 代理供应链安全 - Openclaw Skills
SOC 2 质量评估:自动化 GRC 审计分析 - Openclaw Skills
社交媒体文案生成器:多平台营销自动化 - Openclaw Skills
FarmOS 土地组合:农业租赁与支付管理 - Openclaw Skills
Init Manager 任务自动化:项目管理集成 - Openclaw Skills
AI精选
