从CRM数据生成交互式分析仪表板。当被要求「展示管道统计」、「创建报告」、「分析潜在客户」、「展示转化率」时使用。
管道分析 – NL – SQL – 交互式图表
功能概述
管道分析 – NL – SQL – 交互式图表是一项面向实际任务的技能,主要用于将自然语言问题转换成 DuckDB 查询, 并将结果作为交互式 Recharts 仪表板在聊天中内置;Workflow.;
核心要点
- DuckDB。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
使用与执行
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
流水线分析 — 自然语言 → SQL → 交互式图表
将自然语言问题转换为 DuckDB 查询,并在聊天界面中以内联方式渲染为交互式的 Recharts 仪表板。
工作流
用户以普通英文提出问题 → 针对工作区透视视图(v_*)翻译为 DuckDB SQL → 执行查询 → 将结果格式化为 report-json → 渲染为交互式 Recharts 组件
DuckDB 查询模式
探索 — 当前有哪些对象?
-- 列出所有对象及其条目数量 SELECT o.name, o.display_name, COUNT(e.id) as entries FROM objects o LEFT JOIN entries e ON e.object_id = o.id GROUP BY o.name, o.display_name ORDER BY entries DESC; -- 列出某对象的字段 SELECT f.name, f.field_type, f.display_name FROM fields f JOIN objects o ON f.object_id = o.id WHERE o.name = 'leads' ORDER BY f.position; -- 可用的透视视图 SELECT table_name FROM information_schema.tables WHERE table_name LIKE 'v_%';
常用分析查询
流水线漏斗
SELECT "Status", COUNT(*) as count FROM v_leads GROUP BY "Status" ORDER BY CASE "Status" WHEN 'New' THEN 1 WHEN 'Contacted' THEN 2 WHEN 'Qualified' THEN 3 WHEN 'Demo Scheduled' THEN 4 WHEN 'Proposal' THEN 5 WHEN 'Closed Won' THEN 6 WHEN 'Closed Lost' THEN 7 ELSE 99 END;
外联活动随时间变化趋势
SELECT DATE_TRUNC('week', "Last Outreach"::DATE) as week,
"Outreach Channel",
COUNT(*) as messages_sent
FROM v_leads
WHERE "Last Outreach" IS NOT NULL
GROUP BY week, "Outreach Channel"
ORDER BY week;
按来源划分的转化率
SELECT "Source",
COUNT(*) as total,
COUNT(*) FILTER (WHERE "Status" = 'Qualified') as qualified,
COUNT(*) FILTER (WHERE "Status" IN ('Closed Won', 'Converted')) as converted,
ROUND(100.0 * COUNT(*) FILTER (WHERE "Status" = 'Qualified') / COUNT(*), 1) as qual_rate,
ROUND(100.0 * COUNT(*) FILTER (WHERE "Status" IN ('Closed Won', 'Converted')) / COUNT(*), 1) as conv_rate
FROM v_leads
GROUP BY "Source"
ORDER BY total DESC;
回复率分析
SELECT "Outreach Channel",
COUNT(*) as sent,
COUNT(*) FILTER (WHERE "Reply Received" = true) as replied,
ROUND(100.0 * COUNT(*) FILTER (WHERE "Reply Received" = true) / COUNT(*), 1) as reply_rate
FROM v_leads
WHERE "Outreach Status" IS NOT NULL
GROUP BY "Outreach Channel";
转化耗时分析
SELECT "Source",
AVG(DATEDIFF('day', created_at, "Converted At"::DATE)) as avg_days_to_convert,
MEDIAN(DATEDIFF('day', created_at, "Converted At"::DATE)) as median_days
FROM v_leads
WHERE "Status" = 'Converted' AND "Converted At" IS NOT NULL
GROUP BY "Source";
report-json 格式
生成兼容 Recharts 的报表卡片:
{
"type": "report",
"title": "Pipeline Analytics — February 2026",
"generated_at": "2026-02-17T14:30:00Z",
"panels": [
{
"title": "Pipeline Funnel",
"type": "funnel",
"data": [
{"name": "New Leads", "value": 200},
{"name": "Contacted", "value": 145},
{"name": "Qualified", "value": 67},
{"name": "Demo Scheduled", "value": 31},
{"name": "Closed Won", "value": 13}
]
},
{
"title": "Outreach Activity",
"type": "area",
"xKey": "week",
"series": [
{"key": "linkedin", "name": "LinkedIn", "color": "#0A66C2"},
{"key": "email", "name": "Email", "color": "#EA4335"}
],
"data": [
{"week": "Feb 3", "linkedin": 25, "email": 40},
{"week": "Feb 10", "linkedin": 30, "email": 35}
]
},
{
"title": "Lead Source Breakdown",
"type": "donut",
"data": [
{"name": "LinkedIn Scrape", "value": 95, "color": "#0A66C2"},
{"name": "YC Directory", "value": 45, "color": "#FF6600"},
{"name": "Referral", "value": 30, "color": "#10B981"},
{"name": "Inbound", "value": 20, "color": "#8B5CF6"}
]
},
{
"title": "Reply Rates by Channel",
"type": "bar",
"xKey": "channel",
"series": [{"key": "rate", "name": "Reply Rate %", "color": "#3B82F6"}],
"data": [
{"channel": "LinkedIn", "rate": 32},
{"channel": "Email", "rate": 18},
{"channel": "Multi-Channel", "rate": 41}
]
}
]
}
支持的图表类型
| 类型 | 适用场景 | Recharts 组件 |
|---|---|---|
bar |
对比、分类 | BarChart |
line |
随时间变化的趋势 | LineChart |
area |
随时间变化的总量 | AreaChart |
pie |
分布(单层) | PieChart |
donut |
分布(含中心指标) | PieChart(innerRadius) |
funnel |
阶段推进过程 | FunnelChart |
scatter |
相关性(双变量) | ScatterChart |
radar |
多维度对比 | RadarChart |
预置报表模板
1. 流水线概览
- 漏斗图:线索 → 已联系 → 已筛选 → 已安排演示 → 已成交
- 环形图:线索来源分布
- 数字卡片:线索总数、转化率、平均交易金额
2. 外联表现
- 面积图:按渠道划分的外联消息发送量随时间变化趋势
- 柱状图:各渠道回复率
- 折线图:周环比转化趋势
- 数字卡片:总发送数、回复率、已预约会议数
3. 销售代表表现(如为多用户环境)
- 柱状图:每位销售代表所联系的线索数
- 柱状图:每位销售代表的回复率
- 柱状图:每位销售代表的转化数
- 散点图:活动量 vs. 转化率
4. 群组分析
- 热力图风格:按注册周 × 时间跨度统计的转化率
- 折线图:按群组划分的留存/参与度曲线
自然语言映射
| 用户表述 | SQL 模式 | 图表类型 |
|---|---|---|
| "show me pipeline" | GROUP BY Status | funnel |
| "outreach stats" | COUNT by channel + status | bar + area |
| "how are we converting" | conversion rates | funnel + line |
| "compare sources" | GROUP BY Source | bar |
| "weekly trend" | DATE_TRUNC + GROUP BY | line / area |
| "who replied" | FILTER Reply Received | table |
| "best performing" | ORDER BY conversion DESC | bar |
| "lead breakdown" | GROUP BY any dimension | pie / donut |
保存报表
报表可作为 .report.json 文件保存至工作区:
~/.openclaw/workspace/reports/ pipeline-overview.report.json weekly-outreach.report.json monthly-review.report.json
这些文件在 Ironclaw Web UI 中打开时,将渲染为实时仪表板。
Cron 集成
自动按周/月生成报表:
{
"name": "Weekly Pipeline Report",
"schedule": { "kind": "cron", "expr": "0 9 * * MON", "tz": "America/Denver" },
"payload": {
"kind": "agentTurn",
"message": "Generate weekly pipeline analytics report. Query DuckDB for this week's data. Create report-json with: funnel, outreach activity (area), reply rates (bar), source breakdown (donut). Save to workspace/reports/ and announce summary."
}
}
热门AI工具
相关专题
设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。
5722
2024.12.23
更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。
4243
2024.12.20
安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。
1870
2023.10.09
本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。
0
2026.11.03
想使用Docker Desktop将本地项目构建成Docker镜像?本专题围绕镜像构建的实际操作展开,介绍Dockerfile编写、构建命令使用、镜像标签设置和构建日志查看等内容,同时整理镜像无法生成、依赖安装失败及构建缓存异常等问题的排查思路。
0
2026.11.03
本专题聚焦Docker Desktop容器创建与运行配置,介绍通过本地镜像或远程镜像创建容器的方法,以及容器启动、终端访问、日志查看和基础管理等操作。针对端口冲突、参数配置不当、容器无法启动等情况,也整理了相应的排查方向。
0
2026.11.03
用 Tailwind CSS 制作导航栏和卡片,可先搭建语义化结构,再组合 Flex、Grid、间距、圆角与阴影类。这里整理横向导航、移动端菜单、卡片网格及悬停效果的相关文章,帮助你把常见页面组件做得清晰且适配不同屏幕。
0
2026.11.03
Tailwind CSS 响应式布局通常从移动端样式写起,再用 sm、md、lg 等前缀调整不同屏幕宽度下的网格、间距和导航。本专题整理断点配置、Grid 与 Flex 自适应布局及常见溢出问题,帮助你逐步完成多设备适配。
0
2026.11.03
热门下载
相关下载
精品课程
最新文章
