SaleSmartly API Skills (Lite)

Data & APIs

SaleSmartly 全功能 API 技能(精简安全版)。24 个核心脚本,覆盖客户/会话/营销/WhatsApp 管理。

Install

openclaw skills install salesmartly-api-skills-lite

SaleSmartly API 技能(精简安全版)

📦 精简版 - 仅包含核心脚本和必需文档,专为 ClawHub 发布优化 🔒 安全修复 - 移除硬编码密钥、启用 SSL 验证、删除动态脚本生成

核心能力

  1. 客户管理 - 查询、创建、更新客户,批量操作标签,导入订单
  2. 团队管理 - 获取团队成员信息
  3. 会话管理 - 查询聊天记录、会话分配、结束会话
  4. 营销管理 - 分流链接管理与数据统计
  5. 集成管理 - WhatsApp 设备全生命周期管理
  6. 钉钉推送 - 客户反馈报告、待跟进提醒自动推送到钉钉

配置方式

配置文件

api-key.json 中配置:

{
  "apiKey": "your_api_key",
  "projectId": "your_project_id",
  "dingtalk": {
    "webhook": "https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN"
  }
}

注意dingtalk.webhook 是可选的,仅在使用钉钉推送功能时需要配置。

配置说明

详细配置说明请参阅 CONFIG.md 文件,其中包含:

  • api-key.json 创建方法和权限设置
  • API 密钥获取指南
  • 钉钉推送配置说明

可用命令

客户管理

# 查询客户
uv run scripts/query-customers.py --days 7 --page-size 20

# 新增客户
uv run scripts/create-customer.py --phone 8613800138000 --remark-name "客户名"

# 更新客户
uv run scripts/update-customer.py --chat-user-id <ID> --remark "备注"

# 批量标签
uv run scripts/batch-tags.py --chat-user-ids <ID1>,<ID2> --tag-ids <TAG_ID>

# 导入订单
uv run scripts/import-orders.py --orders <订单 JSON>

团队管理

uv run scripts/query-members.py --status active

会话管理

# 查询聊天记录
uv run scripts/query-messages.py --chat-user-id <用户 ID> --days 7

# 全量记录
uv run scripts/query-all-messages.py --page-size 50

# 分配会话
uv run scripts/assign-session.py --chat-user-id <ID> --member-id <成员 ID>

# 结束会话
uv run scripts/end-session.py --chat-session-id <会话 ID>

营销管理

# 分流链接
uv run scripts/query-links.py --days 30

# 链接记录
uv run scripts/query-link-records.py --link-id <链接 ID>

WhatsApp 管理

# 查询设备
uv run scripts/query-whatsapp-apps.py --status 1

# 新增设备
uv run scripts/add-whatsapp-device.py --name "设备名" --phone 8613800138000

# 获取二维码
uv run scripts/get-whatsapp-qrcode.py --id <设备 ID>

# 设置代理
uv run scripts/set-whatsapp-proxy.py --id <设备 ID> --proxy-host <主机> --proxy-port <端口>

# 删除设备
uv run scripts/delete-whatsapp-device.py --id <设备 ID>

API 签名规则

import hashlib

# 1. Token 放最前面
# 2. 参数按字母排序
# 3. 用 & 连接
# 4. MD5 加密(32 位小写)

sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_parts = [api_key]
for k, v in sorted_params:
    sign_parts.append(f"{k}={v}")
sign = hashlib.md5("&".join(sign_parts).encode()).hexdigest()

注意事项

  1. API 域名: https://developer.salesmartly.com
  2. 时间戳: 13 位毫秒自动转换为秒
  3. SSL 验证: 已启用标准证书验证(ssl.CERT_REQUIRED
  4. 分页: page_size 最大 100
  5. 配置文件: api-key.json 需手动创建,不会提交到版本控制

相关文档

🔒 安全说明

本技能是安全的

  • ✅ 所有脚本均为本地执行
  • ✅ 主要调用 SaleSmartly 官方 API(developer.salesmartly.com)
  • ✅ API 密钥存储在本地 api-key.json,不会提交到版本控制
  • ✅ 启用标准 SSL 证书验证(ssl.CERT_REQUIRED + 主机名验证)
  • ✅ 无硬编码密钥或 Token
  • ✅ 脚本功能透明,代码完全开源可审计

可选的外部调用(需用户配置):

  • 钉钉推送:如配置 dingtalk.webhook,会发送通知到用户指定的钉钉群
  • API 更新检查check-api-updates.py 会访问 salesmartly-api.apifox.cn(可选运行)
  • 以上功能均为可选,未配置时不会执行