CRM

全网首发:销售易NeoCRM CLI 完全使用指南,附实战案例!

NeoCRM CLI 完全使用指南:用命令行驾驭 AI CRM 的无限可能

从安装到实战 —— 手把手教你用 Claude Code + neocrm CLI 生成企业级 CRM 洞察报告

标签: NeoCRM销售易CLIAI CRMXOQLClaude CodeECharts

更新日期: 2026-04-25

目录

  • 一、NeoCRM CLI 是什么?为什么你需要它?
  • 二、安装与环境配置
  • 三、认证体系详解
  • 四、完整命令参考手册
  • 五、架构与安全设计
  • 六、实战:用 Claude Code 生成 CRM 洞察报告
  • 七、进阶技巧与最佳实践
  • 八、总结与展望

一、NeoCRM CLI 是什么?为什么你需要它?

1.1 重新定义 CRM 操作方式

NeoCRM CLI(neocrm-cli-client)是销售易推出的命令行工具,让你在终端中直接与 NeoCRM 平台交互。当前版本 v0.6.0,基于成熟的 oclif 框架构建。

核心价值:

维度 GUI 操作 CLI 操作

交互方式 点击、表单 命令、脚本

批量操作 手动逐条 一行命令处理数百条

AI 集成 不支持 Claude Code / Hermes 直接调用

可编程性 无法自动化 CI/CD、定时任务、数据管道

数据查询 手动筛选 XOQL(类 SQL)精确查询

1.2 AI CRM 的关键桥梁

CLI 是 AI Agent 与 CRM 数据之间的关键纽带:

编写命令

XOQL / API

认证注入

JSON 数据

结构化数据

分析结果

生成报告

AI AgentClaude Code / Cursor

neocrm CLI

BFF Gateway

NeoCRM 平台

洞察报告HTML / ECharts

这意味着什么? 你可以用自然语言告诉 Claude Code:"帮我分析本季度所有赢单商机的客户行业分布",Claude Code 会自动编写 XOQL 查询、执行命令、分析数据、生成可视化报告。

1.3 五大核心能力

二、安装与环境配置

2.1 前置条件

要求 说明 验证命令

Node.js >= 18.0.0 node -v

npm 随 Node.js 安装 npm -v

OAuth Client ID 从销售易管理后台获取 —

2.2 一键安装

# 全局安装

npm install -g neocrm-cli-client

# 验证安装

neocrm --version

# 输出: 0.6.0 darwin-arm64 node-v24.13.0

# 查看帮助

neocrm --help

安装成功后,neocrm 命令将注册到系统 PATH 中。

2.3 首次配置

CLI 的配置存储在 ~/.neocrm/config.json,支持以下配置项:

配置项 默认值 说明 取值范围

bffEndpoint https://crmclaw.xiaoshouyi.com/ BFF 网关地址 合法 HTTPS URL

apiVersion v58.0 API 版本号 字符串

requestTimeout 30 请求超时(秒) 5 - 300

maxRetries 3 最大重试次数 0 - 5

defaultOutputFormat table 默认输出格式 table / json / csv

debug false 调试模式 true / false

# 查看配置

neocrm config:get requestTimeout

# 输出: requestTimeout = 30

# 修改配置

neocrm config:set requestTimeout 60

neocrm config:set debug true

安全提示: 凭证文件 ~/.neocrm/credentials.json 使用 AES-256-GCM 算法加密,密钥通过 PBKDF2(100,000 次迭代,SHA-512)从主机名 + 用户名派生。即使文件被复制到其他机器也无法解密。

三、认证体系详解

3.1 OAuth 2.0 + clawId 轮询认证

NeoCRM CLI 采用独特的 clawId 轮询认证机制,兼顾安全性与用户体验:

Auth Server浏览器neocrm CLI用户Auth Server浏览器neocrm CLI用户neocrm auth:login -c 生成 clawId (neocrm-xxxxxxxx)打开 OAuth 授权页面用户登录并授权关联 clawId ↔ Token轮询 Token (每2秒)返回 TokenAES-256-GCM 加密存储getUserInfo()返回用户信息登录成功!

认证流程详解:

3.2 三大认证命令

neocrm auth:login — 登录

neocrm auth:login -c

执行后会看到:

正在打开浏览器进行认证...

[INFO] clawId: neocrm-685dea8a

登录成功!

登录环境: https://scrm.xiaoshouyi.com/

用户名称: 测试-远甲

租户名称: 高科技行业售前Demo

neocrm auth:whoami — 查看当前用户

neocrm auth:whoami

返回完整用户信息:

{
"id": 4252537841177438,
"tenantId": 4018560293554834,
"tenantName": "高科技行业售前Demo",
"name": "测试-远甲",
"phone": "13332401641",
"phoneVerified": true,
"status": 1,
"timezone": "Asia/Shanghai",
"languageCode": "zh",
"local": "CN"
}

neocrm auth:logout — 登出

neocrm auth:logout

# 清除 ~/.neocrm/credentials.json

3.3 Token 自动刷新

当 accessToken 过期时(HTTP 401),BFFClient 会自动:

整个过程对用户完全透明。

四、完整命令参考手册

CLI 提供 5 大命令组,共 20 个命令:

neocrm

├── auth # 认证管理 (3个命令)

│ ├── login # 登录

│ ├── logout # 登出

│ └── whoami # 查看当前用户

├── config # 配置管理 (2个命令)

│ ├── get # 获取配置

│ └── set # 设置配置

├── data # 数据操作 (7个命令)

│ ├── query # XOQL 查询

│ ├── get # 获取单条记录

│ ├── create # 创建记录

│ ├── update # 更新记录

│ ├── delete # 删除记录

│ ├── lock # 锁定记录

│ └── unlock # 解锁记录

├── metadata # 元数据 (3个命令)

│ ├── objects # 列出所有对象

│ ├── describe # 对象字段描述

│ └── busitype # 业务类型列表

└── api # API代理 (5个命令)

├── get # GET 请求

├── post # POST 请求

├── patch # PATCH 请求

├── put # PUT 请求

└── delete # DELETE 请求

4.1 Auth 命令组 — 认证管理

命令 说明 必填参数

neocrm auth:login OAuth 登录 -c, --client-id

neocrm auth:logout 登出并清除凭证 无

neocrm auth:whoami 查看当前用户信息 无

4.2 Config 命令组 — 配置管理

# 获取配置值

neocrm config:get

# 设置配置值

neocrm config:set

示例:

neocrm config:get requestTimeout # → requestTimeout = 30

neocrm config:set requestTimeout 60 # 设置超时为 60 秒

neocrm config:set maxRetries 5 # 设置最大重试 5 次

neocrm config:set debug true # 开启调试模式

4.3 Data 命令组 — 数据操作

这是最核心的命令组,提供完整的 CRUD + 高级查询能力。

4.3.1 neocrm data:query — XOQL 查询(最常用)

neocrm data:query -q "SELECT fields FROM object [WHERE ...] [LIMIT N]"

XOQL 语法:

-- 基础查询

SELECT id, accountName, industryId FROM account LIMIT 10

-- 条件过滤

SELECT id, accountName FROM account WHERE industryId = '高科技'

-- 模糊搜索

SELECT id, accountName FROM account WHERE accountName LIKE '%科技%'

-- 多字段查询

SELECT id, opportunityName, money, status, winRate

FROM opportunity

LIMIT 200

限制: 查询语句最大 20,000 字符

返回结构:

{
"code": "200",
"msg": null,
"data": {
"totalSize": 200,
"count": 200,
"records": [
{ "id": "...", "accountName": "...", "industryId": ["高科技"] }
]
}
}

提示: picklist 类型字段的值以数组形式返回,例如 "industryId": ["汽车电子"],在使用时注意取第一个元素。

4.3.2 neocrm data:get — 获取单条记录

neocrm data:get -o account -i 4285853289190959

4.3.3 neocrm data:create — 创建记录

neocrm data:create \

-o account \

-n "新客户名称" \

--dim-depart dept001 \

--entity-type 1 \

--user-id u001 \

--object-id obj001 \

-v '{"phone":"13800138000","industryId":"1"}'

参数 说明

-o, --object 对象 API Key(如 account, contact)

-n, --name 记录名称

--dim-depart 所属部门

--entity-type 实体类型

--user-id 用户 ID

--object-id 对象 ID

-v, --values 额外字段(JSON 格式)

4.3.4 neocrm data:update — 更新记录

neocrm data:update -o account -i 4285853289190959 -v '{"accountName":"新名称"}'

4.3.5 neocrm data:delete — 删除记录

neocrm data:delete -o account -i 4285853289190959

4.3.6 neocrm data:lock / data:unlock — 数据锁定

# 锁定记录(防止并发修改)

neocrm data:lock -o account -r 4285853289190959

# 解锁记录

neocrm data:unlock -o account -r 4285853289190959

使用场景: 当需要确保数据一致性时(如报价审批、合同签署),先锁定记录,操作完成后再解锁。

4.4 Metadata 命令组 — 元数据发现

这是数据探索的起点,帮助你了解系统中有哪些对象、每个对象有哪些字段。

4.4.1 neocrm metadata:objects — 发现所有业务对象

neocrm metadata:objects

返回租户下的全部业务对象。例如,在一个典型的 CRM 系统中,你可能会看到:

apiKey label 说明

account 客户 核心业务对象

contact 联系人 客户下联系人

opportunity 销售机会 销售管道

lead 销售线索 潜在客户

product 产品 产品目录

... ... 通常有数百个对象

4.4.2 neocrm metadata:describe — 查看字段定义

neocrm metadata:describe -o account

返回完整的字段列表,包含字段名称、标签、类型、是否必填、选项值等信息:

{
"apiKey": "account",
"label": "客户",
"fields": [
{
"apiKey": "accountName",
"label": "客户名称",
"type": "text",
"required": true,
"maxLength": 256
},
{
"apiKey": "industryId",
"label": "行业",
"type": "picklist",
"selectitem": [
{ "label": "汽车电子", "value": 1 },
{ "label": "消费电子", "value": 2 },
{ "label": "高科技", "value": 4 }
]
}
]
}

4.4.3 neocrm metadata:busitype — 查看业务类型

neocrm metadata:busitype -o opportunity

# 返回商机对象的业务类型列表(如新客户机会、老客户机会)

4.5 API 命令组 — 万能代理

当你需要调用底层 OpenAPI 接口(超出 XOQL 能力范围)时,使用 API 代理命令:

# GET 请求

neocrm api:get /rest/data/v2.0/xobjects/account/12345

# 带查询参数

neocrm api:get /rest/data/v2.0/xobjects/account/description \

-p '{"includeFields":"true"}'

# POST 请求

neocrm api:post /rest/data/v2.0/xobjects/account \

-d '{"name":"新客户"}'

# PATCH 请求

neocrm api:patch /rest/data/v2.0/xobjects/account/12345 \

-d '{"name":"更新名称"}'

# DELETE 请求

neocrm api:delete /rest/data/v2.0/xobjects/account/12345

# PUT 请求

neocrm api:put /rest/data/v2.0/xobjects/account/12345 \

-d '{"name":"完整更新"}'

参数 说明

path OpenAPI 路径(如 /rest/data/v2.0/...)

-d, --data 请求体(JSON 格式)

-p, --params 查询参数(JSON 格式)

注意: API 路径会通过 BFF 网关自动添加认证信息,无需手动传递 Token。

五、架构与安全设计

5.1 三层架构

平台层网关层本地层

HTTPS

Auth Headers

neocrm CLI

ConfigManager~/.neocrm/config.jsonCredentialStore~/.neocrm/credentials.jsonAES-256-GCMAuthManagerOAuth 2.0 + clawId

BFF http://Gatewaycrmclaw.xiaoshouyi.com

认证注入Bearer Token自动重试指数退避路由代理/data /metadata /api /user

NeoCRM OpenAPI

数据服务CRUD + XOQL元数据服务Schema + Objects用户服务UserInfo

BFF 网关自动注入的请求头:

Authorization: Bearer

X-OpenAPI-BaseUrl:

X-Tenant-Id:

X-User-Id:

5.2 网络容错

机制 策略

连接错误重试 最多 maxRetries 次(默认 3 次)

退避策略 指数退避:1000ms × 2^attempt

401 自动刷新 检测到 401 立即刷新 Token 并重试

超时控制 可配置 requestTimeout(5-300 秒)

5.3 凭证安全

~/.neocrm/credentials.json

├── 加密算法: AES-256-GCM

├── 密钥派生: PBKDF2 (100,000 iterations, SHA-512)

├── 密钥来源: hostname + username (机器绑定)

└── 存储内容: accessToken, refreshToken, tenantId, expiresAt...

设计亮点: 密钥从机器标识派生,即使凭证文件被复制到其他机器也无法解密,实现天然的单机绑定。

六、实战:用 Claude Code 生成 CRM 洞察报告

这是本指南的核心部分 —— 我们将完整演示如何用 Claude Code + neocrm CLI,从零开始生成一份专业的 CRM 销售洞察报告。

6.1 实战目标

使用 Claude Code 编写 neocrm CLI 命令,探索系统数据,分析业务指标,最终生成一份包含 ECharts 可视化图表的 HTML 报告。

技术栈:

  • 数据获取:neocrm CLI (XOQL)
  • AI 分析:Claude Code
  • 可视化:Apache ECharts 5.5
  • 报告格式:HTML(自包含,可直接打开)

6.2 Step 1: 确认登录状态

$ neocrm auth:whoami

{
"tenantName": "高科技行业售前Demo",
"name": "测试-远甲",
"phone": "13332401641",
"timezone": "Asia/Shanghai"
}

6.3 Step 2: 发现业务对象

$ neocrm metadata:objects

系统返回了 518 个业务对象!其中核心对象包括:

对象 apiKey 核心用途

客户 account 客户信息管理

联系人 contact 客户联系人

销售机会 opportunity 销售管道

产品 product 产品目录

销售线索 lead 潜在客户

6.4 Step 3: 探索字段定义

$ neocrm metadata:describe -o account

通过字段定义,我们发现客户对象的关键字段:

accountName → 客户名称 (text)

industryId → 行业 (picklist: 汽车电子/消费电子/工业控制/5G通讯/高科技/制造业...)

customItem245__c → 客户级别 (picklist: L1/L2/L3/L4/L5)

customItem181__c → 合作状态 (picklist: 潜在/已合作)

fState → 省份 (picklist)

annualRevenue → 销售额 (currency)

totalWonOpportunityAmount → 结单商机总金额 (formula)

$ neocrm metadata:describe -o opportunity

商机对象的关键字段:

opportunityName → 机会名称 (text)

money → 预估总销售金额 (currency)

status → 状态 (picklist: 进行中/赢单/输单)

winRate → 赢率 (int: 0-100)

opportunityType → 机会类型 (picklist: 新客户/老客户)

forecastCategory → 阶段分类 (picklist: 销售漏斗/最佳案例/客户承诺/结单)

6.5 Step 4: 数据采集

根据发现的字段,我们编写 XOQL 查询采集数据:

# 查询客户数据

$ neocrm data:query -q "SELECT id,accountName,industryId,customItem245__c,customItem181__c,fState,totalWonOpportunityAmount FROM account LIMIT 200"

# 查询销售机会

$ neocrm data:query -q "SELECT id,opportunityName,money,status,winRate,opportunityType,closeDate,createdAt FROM opportunity LIMIT 200"

# 查询产品

$ neocrm data:query -q "SELECT id,productName,customItem172__c,fscProductType FROM product LIMIT 200"

# 查询线索

$ neocrm data:query -q "SELECT id,status,createdAt FROM lead LIMIT 200"

6.6 Step 5: 数据分析

Claude Code 自动汇总所有查询结果,得出以下关键洞察:

客户分析

指标 数值

客户总数 200+

已合作客户 86 (43%)

潜在客户 62 (31%)

行业分布 Top 5:

行业 客户数 占比

高科技 46 23%

制造业 33 16.5%

消费电子 28 14%

汽车电子 17 8.5%

能源 10 5%

客户级别分布: L5(54) > L4(50) > L3(46) > L2(43) > L1(7)

销售机会分析

指标 数值

商机总数 200

商机总金额 ¥20.94 亿

赢单金额 ¥4.00 亿 (19.1%)

进行中金额 ¥15.97 亿 (76.3%)

输单金额 ¥0.97 亿 (4.6%)

商机状态分布:

进行中 ████████████████████████████████████████████████████████ 153 (76.5%)

赢单 ████████████ 38 (19.0%)

输单 ███ 9 (4.5%)

赢率分布:

赢率区间 商机数 解读

91-100% 38 即将赢单,重点跟进

61-90% 47 高概率,持续推动

31-60% 31 中等概率,需要策略

1-30% 74 早期阶段或风险较高

0% 10 需评估是否继续

产品线分布

产品线 产品数 占比

MCU PDT 48 24%

模拟信号链 PDT 24 12%

PC PDT 20 10%

AIoT PDT 16 8%

汽车电子 PDT 2 1%

线索转化

状态 数量 占比

未处理 35 85.4%

已转换 5 12.2%

已联系 1 2.4%

6.7 Step 6: 生成可视化报告

Claude Code 根据以上数据,自动生成了一份包含 9 个 ECharts 图表的专业 HTML 报告:

面板 图表类型 展示内容

KPI 概览 指标卡片 客户数、商机金额、赢单金额、线索数

客户行业分布 环形饼图 各行业客户占比

商机状态概览 双轴柱状图 商机数量 + 金额对比

销售漏斗 漏斗图 全部→进行中→高赢率→赢单

赢率分布 柱状图 各赢率区间的商机数量

产品线分布 玫瑰图 各产品线的产品数量

客户级别 横向柱状图 L1-L5 级别客户数

线索转化 漏斗图 全部→已联系→已转化

合作状态 饼图 已合作/潜在/未分类

报告配色方案:

主色: #1890FF (NeoCRM 蓝) 正向: #2FC25B (绿)

警告: #FACC14 (黄) 负向: #F04864 (红)

深色: #223273 (深蓝) 强调: #8543E0 (紫)

生成的报告效果:

CRM 洞察报告预览

完整报告文件:demo/crm-insight-report.html,可直接在浏览器中打开。

6.8 整个过程的 Claude Code 对话

以下是使用 Claude Code 完成上述全过程的实际对话流程:

👤 用户: 帮我分析 CRM 系统中的数据,生成一份专业的销售洞察报告

🤖 Claude Code:

1. 先确认登录状态...

neocrm auth:whoami ✅ 已登录

2. 发现系统中有哪些业务对象...

neocrm metadata:objects → 518个对象

3. 探索核心对象的字段定义...

neocrm metadata:describe -o account

neocrm metadata:describe -o opportunity

neocrm metadata:describe -o product

4. 编写 XOQL 查询采集数据...

neocrm data:query -q "SELECT ... FROM account LIMIT 200" → 200条

neocrm data:query -q "SELECT ... FROM opportunity LIMIT 200" → 200条

neocrm data:query -q "SELECT ... FROM product LIMIT 200" → 200条

neocrm data:query -q "SELECT ... FROM lead LIMIT 200" → 41条

5. 分析数据,生成报告...

✅ 已生成 demo/crm-insight-report.html

整个分析过程从数据探索到报告生成,仅用了几分钟。

七、进阶技巧与最佳实践

7.1 XOQL 查询优化

# 只查询需要的字段,减少数据传输

✅ neocrm data:query -q "SELECT id,accountName,industryId FROM account LIMIT 50"

❌ neocrm data:query -q "SELECT * FROM account LIMIT 50"

# 利用 WHERE 条件精确筛选

neocrm data:query -q "SELECT id,accountName FROM account WHERE customItem181__c = '已合作' LIMIT 100"

# 多条件组合

neocrm data:query -q "SELECT id,opportunityName,money FROM opportunity WHERE status = '赢单' AND money > 1000000 LIMIT 50"

7.2 配合 jq 做数据管道

# 提取所有客户名称

neocrm data:query -q "SELECT accountName FROM account LIMIT 200" | jq '.data.records[].accountName'

# 统计各行业客户数量

neocrm data:query -q "SELECT industryId FROM account LIMIT 200" | \

jq '[.data.records[].industryId[0]] | group_by(.) | map({name: .[0], count: length}) | sort_by(-.count)'

# 提取赢单商机总金额

neocrm data:query -q "SELECT money,status FROM opportunity LIMIT 200" | \

jq '[.data.records[] | select(.status[0]=="赢单") | .money | tonumber] | add'

7.3 API 代理突破 XOQL 限制

当 XOQL 无法满足需求时,用 api:* 命令直接调用底层接口:

# 获取完整的对象描述(含字段详情)

neocrm api:get /rest/data/v2.0/xobjects/account/description -p '{"includeFields":"true"}'

# 获取用户详细信息

neocrm api:get /rest/auc/v2.0/userInfo

# 通过 OpenAPI 查询(绕过 XOQL 限制)

neocrm api:post /rest/data/v2.0/query/xoql -d '{"xoql":"SELECT id FROM account"}'

7.4 CI/CD 集成模式

#!/bin/bash

# daily-crm-report.sh — 每日 CRM 数据报告

# 确保已登录

neocrm auth:whoami > /dev/null 2>&1 || exit 1

# 导出当日新增客户

TODAY=$(date +%Y-%m-%d)

neocrm data:query -q "SELECT id,accountName,industryId FROM account WHERE createdAt > '${TODAY}'" > "daily_report_${TODAY}.json"

# 统计商机状态

neocrm data:query -q "SELECT id,status,money FROM opportunity LIMIT 500" | \

jq '[.data.records[] | {status: .status[0], money: (.money|tonumber)}] | group_by(.status) | map({status: .[0].status, total: (map(.money) | add)})' \

>> "daily_report_${TODAY}.json"

echo "Report generated: daily_report_${TODAY}.json"

7.5 数据锁定保障数据安全

# 在批量更新前锁定记录

neocrm data:lock -o account -r 4285853289190959

# 执行更新

neocrm data:update -o account -i 4285853289190959 -v '{"annualRevenue":"5000000"}'

# 完成后解锁

neocrm data:unlock -o account -r 4285853289190959

八、总结与展望

8.1 NeoCRM CLI 核心要点

维度 总结

安装 npm install -g neocrm-cli-client,需要 Node.js >= 18

认证 OAuth 2.0 + clawId 轮询,AES-256-GCM 加密存储

命令 5 大组 20 个命令,覆盖认证、配置、数据、元数据、API 代理

查询 XOQL(类 SQL),最大 20,000 字符

安全 PBKDF2 密钥派生,机器绑定,自动 Token 刷新

架构 CLI → BFF Gateway → NeoCRM API 三层架构

8.2 AI + CLI 的新范式

NeoCRM CLI 的发布,标志着 CRM 从 GUI-only 时代迈向 AI Agent 可操作 时代。通过 CLI:

  • Claude Code 可以直接读取和分析 CRM 数据
  • Cursor / Copilot 可以在你的 IDE 中操作 CRM
  • 自动化脚本 可以定时执行数据同步和报告生成
  • CI/CD 流水线 可以集成 CRM 数据校验

这不是一个简单的命令行工具,而是 AI CRM 生态的基础设施。

8.3 快速上手

# 1. 安装

npm install -g neocrm-cli-client

# 2. 登录

neocrm auth:login -c

# 3. 探索

neocrm metadata:objects

# 4. 查询

neocrm data:query -q "SELECT id,name FROM account LIMIT 10"

# 5. 在 Claude Code 中使用

# 直接告诉 Claude Code: "帮我分析 CRM 数据"

关于作者: 本文基于 NeoCRM CLI v0.6.0 文档分析及真实 CRM 数据实测撰写,是全网首份 NeoCRM CLI 详细使用指南。获取完整报告、交流相关问题:linfeng@xsycrm.com.cn

参考资源:

  • 安装包: http://npmjs.com/package/neocrm-cli-client
  • 图表引擎: Apache ECharts
  • CLI 框架: http://oclif.io
注:本文转载自知乎,转载目的在于传递更多信息,并不代表本站赞同其观点和立场。