liangdabiao/wecomcli_crm · Archived

wecomcli-workflow-personal-crm

企业微信个人CRM技能。自动从日程和消息中提取联系人,维护?

First seen Jun 4, 2026

Installation

$ npx skills add liangdabiao/wecomcli_crm --skill wecomcli-workflow-personal-crm

Summary

企业微信个人CRM技能。自动从日程和消息中提取联系人,维护关系热度分,支持自然语言查询和超期提醒。当用户说"联系人管理"、"个人CRM"、"谁联系过我"、"多久没联系"、"联系人热度"、"关系管理"、"上个月和谁有互动"等涉及联系人管理的场景时触发。

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from liangdabiao/wecomcli_crm · top by installs.

npx skills add liangdabiao/wecomcli_crm

Browse all from liangdabiao/wecomcli_crm

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 20
Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 10,151 B
  • docs SUMMARY.md 373 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

企业微信个人 CRM

通过 wecom-cli 操作企业微信日程、消息、通讯录和智能表格,自动维护个人联系人关系网络。

注意:本 Skill 与 wecomcli-crm(客户管理)不同。wecomcli-crm 管理的是商业客户,本 Skill 管理的是所有联系人关系,包括同事、朋友、行业人脉等。

首次配置(自动初始化)

执行任何操作前,先检查 memory 中是否已有个人CRM配置。 如果没有,按以下流程自动创建:

步骤 1:创建智能表格

wecom-cli doc create_doc '{"doc_type": 10, "doc_name": "个人CRM"}'

从返回结果中获取 docid。

步骤 2:创建子表和字段

# 创建子表1: 联系人主表
wecom-cli doc smartsheet_add_sheet '{"docid": "<DOCID>", "sheet_name": "联系人"}'

# 创建子表2: 互动记录
wecom-cli doc smartsheet_add_sheet '{"docid": "<DOCID>", "sheet_name": "互动记录"}'

获取各子表的 sheet_id,然后添加字段:

联系人主表字段:

wecom-cli doc smartsheet_add_fields '{"docid": "<DOCID>", "sheet_id": "<SHEET_ID>", "fields": [
  {"field_title": "姓名", "field_type": "FIELD_TYPE_TEXT"},
  {"field_title": "公司", "field_type": "FIELD_TYPE_TEXT"},
  {"field_title": "职位", "field_type": "FIELD_TYPE_TEXT"},
  {"field_title": "邮箱", "field_type": "FIELD_TYPE_TEXT"},
  {"field_title": "手机", "field_type": "FIELD_TYPE_TEXT"},
  {"field_title": "来源", "field_type": "FIELD_TYPE_SINGLE_SELECT"},
  {"field_title": "关系类型", "field_type": "FIELD_TYPE_SINGLE_SELECT"},
  {"field_title": "重要程度", "field_type": "FIELD_TYPE_SINGLE_SELECT"},
  {"field_title": "热度分", "field_type": "FIELD_TYPE_TEXT"},
  {"field_title": "最后联系时间", "field_type": "FIELD_TYPE_TEXT"},
  {"field_title": "最后联系内容", "field_type": "FIELD_TYPE_TEXT"},
  {"field_title": "备注", "field_type": "FIELD_TYPE_TEXT"}
]}'

互动记录字段:

wecom-cli doc smartsheet_add_fields '{"docid": "<DOCID>", "sheet_id": "<SHEET_ID>", "fields": [
  {"field_title": "关联联系人", "field_type": "FIELD_TYPE_TEXT"},
  {"field_title": "互动时间", "field_type": "FIELD_TYPE_TEXT"},
  {"field_title": "互动类型", "field_type": "FIELD_TYPE_SINGLE_SELECT"},
  {"field_title": "互动摘要", "field_type": "FIELD_TYPE_TEXT"},
  {"field_title": "涉及主题", "field_type": "FIELD_TYPE_TEXT"}
]}'

步骤 3:保存配置到 memory

将以下信息保存到 memory 文件 personal-crm-config.md:

---
name: personal-crm-config
description: 个人CRM智能表格配置信息
type: project
---

## 个人CRM表配置

- docid: <DOCID>
- url: <创建时返回的URL>
- 表格名称: 个人CRM
- 联系人 sheet_id: <SHEET_ID>
- 互动记录 sheet_id: <SHEET_ID>

操作流程

以下命令中 <DOCID> 和各 <SHEET_ID> 从 memory 的 personal-crm-config 中读取。

模式 1:自动扫描提取联系人

从日程和消息中自动提取联系人信息。

步骤 1:扫描日程参与者

# 获取过去30天的日程
wecom-cli schedule get_schedule_list_by_range '{"start_time": "2026-03-03 00:00:00", "end_time": "2026-04-02 23:59:59"}'

# 获取日程详情(含参与者信息)
wecom-cli schedule get_schedule_detail '{"schedule_id_list": ["SCHEDULE_ID_1", "SCHEDULE_ID_2"]}'

步骤 2:扫描消息互动

# 获取最近30天的会话列表
wecom-cli msg get_msg_chat_list '{"begin_time": "2026-03-03 00:00:00", "end_time": "2026-04-02 23:59:59"}'

# 拉取各会话的消息记录(提取互动摘要)
wecom-cli msg get_message '{"chat_type": 1, "chatid": "<CHATID>", "begin_time": "2026-03-03 00:00:00", "end_time": "2026-04-02 23:59:59"}'

步骤 3:匹配通讯录信息

wecom-cli contact get_userlist '{}'

步骤 4:AI 处理并写入

  • 合并去重:同一人可能出现在日程和消息中
  • 提取姓名、公司、职位信息
  • 生成互动摘要
  • 计算热度分
  • 写入联系人表和互动记录表
# 写入新联系人(使用 upsert 逻辑:先查询是否存在)
wecom-cli doc smartsheet_get_records '{"docid": "<DOCID>", "sheet_id": "<联系人SHEET_ID>"}'

# 不存在则新增
wecom-cli doc smartsheet_add_records '{"docid": "<DOCID>", "sheet_id": "<联系人SHEET_ID>", "records": [{"values": {
  "姓名": [{"type": "text", "text": "张三"}],
  "公司": [{"type": "text", "text": "XX科技"}],
  "职位": [{"type": "text", "text": "产品经理"}],
  "来源": [{"text": "日程"}],
  "关系类型": [{"text": "行业人脉"}],
  "重要程度": [{"text": "中"}],
  "热度分": [{"type": "text", "text": "65"}],
  "最后联系时间": [{"type": "text", "text": "2026-04-01"}],
  "最后联系内容": [{"type": "text", "text": "讨论了Q2产品规划"}],
  "备注": [{"type": "text", "text": ""}]
}}]}'

# 写入互动记录
wecom-cli doc smartsheet_add_records '{"docid": "<DOCID>", "sheet_id": "<互动记录SHEET_ID>", "records": [{"values": {
  "关联联系人": [{"type": "text", "text": "张三"}],
  "互动时间": [{"type": "text", "text": "2026-04-01"}],
  "互动类型": [{"text": "会议"}],
  "互动摘要": [{"type": "text", "text": "Q2产品规划会,讨论了路线图和时间表"}],
  "涉及主题": [{"type": "text", "text": "产品规划, Q2目标"}]
}}]}'

模式 2:自然语言查询

支持灵活的中文查询。

常见查询示例:

用户问 AI 处理方式
"上个月谁联系过我?" 查询互动记录,按月过滤,汇总去重
"XX公司的人最后一次聊了什么?" 按公司过滤联系人,查找最近互动记录
"有没有超过3个月没联系的重要关系?" 查询热度分 < 30 且重要程度 = 高的联系人
"多久没联系张三了?" 按姓名查询,返回最后联系时间和间隔天数
# 查询所有联系人
wecom-cli doc smartsheet_get_records '{"docid": "<DOCID>", "sheet_id": "<联系人SHEET_ID>"}'

# 查询所有互动记录
wecom-cli doc smartsheet_get_records '{"docid": "<DOCID>", "sheet_id": "<互动记录SHEET_ID>"}'

# AI 在内存中进行过滤和计算

模式 3:手动添加/更新联系人

# 更新联系人信息
wecom-cli doc smartsheet_update_records '{"docid": "<DOCID>", "sheet_id": "<联系人SHEET_ID>", "key_type": "CELL_VALUE_KEY_TYPE_FIELD_TITLE", "records": [{"record_id": "RECORD_ID", "values": {
  "公司": [{"type": "text", "text": "新公司"}],
  "职位": [{"type": "text", "text": "新职位"}],
  "重要程度": [{"text": "高"}]
}}]}'

模式 4:超期提醒

检查超过 N 天未联系的重要关系,发送提醒。

# 查询所有联系人
wecom-cli doc smartsheet_get_records '{"docid": "<DOCID>", "sheet_id": "<联系人SHEET_ID>"}'

# AI 筛选:重要程度="高" 且 最后联系时间距今 > 30/60/90 天
# 发送提醒
wecom-cli msg send_message '{"chat_type": 1, "chatid": "<USERID>", "msgtype": "text", "text": {"content": "⚠️ 联系人提醒\n\n以下重要关系已超过60天未联系:\n1. 赵六(ZZ集团)— 最后联系:95天前\n2. ..."}}'

热度分计算规则

热度分 = 频率分(40) + 近期分(40) + 重要度分(20),满分 100。

维度 权重 计算方式
频率分 40分 过去90天互动次数,0次=0分,20次+=40分(线性插值)
近期分 40分 最后互动距今天数,7天内=40分,90天+=0分(线性衰减)
重要度分 20分 高=20分,中=12分,低=4分

字段类型写入格式(通用规则)

完整字段类型格式说明参见 [crm-schema](../wecomcli-crm/references/crm-schema.md)

字段类型 写入格式 示例
TEXT [{"type":"text","text":"值"}] 姓名、公司、职位、热度分等
SINGLE_SELECT [{"text":"选项文本"}] 来源、关系类型、重要程度、互动类型等

实操注意事项

常见踩坑

  1. 更新时不传 keytype — 必须带 "keytype": "CELLVALUEKEYTYPEFIELD_TITLE"
  2. API 调用失败时 — 检查错误码:301085 表示 docid 无效(改用 url);2022004 表示字段未找到(先 addfields);2022003 表示记录不存在(先 addrecords)。遇到错误先用 smartsheetgetsheet '{"url": "<URL>"}' 验证表结构。
  3. SINGLE_SELECT 选项不匹配 — 选项文本必须与表中已有选项精确一致
  4. SINGLESELECT 创建时 options 不生效 — smartsheetadd_fields 传入的 property.options 不会预创建选项,选项在首次写入记录时通过 [{"text": "选项"}] 自动创建。创建字段时可省略 property 参数。
  5. 通讯录匹配 — contact get_userlist 返回的是 userid,需要和消息中的 chatid 对应
  6. 消息扫描范围 — 会话列表一次最多返回有限数量,需要分批拉取
  7. 去重逻辑 — 同一人可能在不同场景出现,AI 需要智能去重合并

与 wecomcli-crm 的区别

维度 wecomcli-crm wecomcli-workflow-personal-crm
定位 商业客户管理 个人关系网络
数据源 手动录入/外部导入 日程+消息自动扫描
热度分 无 有(自动计算)
互动记录 无 有(自动追踪)
超期提醒 无 有(自动提醒)

数据联动

  • 本 Skill 数据会被以下 Skill 读取:

- wecomcli-workflow-morning-brief — 晨间简报中显示参会人背景 - wecomcli-workflow-business-advisor — 关系/BD 顾问分析人脉动态