我用 Obsidian Dataview 做了 6 个实时增长看板
以前我做增长看板有两种结局:
- 要么在表格里越堆越乱,数据更新靠“想起来就填”
- 要么在 Notion / BI 里越做越重,最后变成“维护系统的人”而不是“做增长的人”
后来我换了个思路:增长看板不一定要接入外部数据源,只要把每天、每篇内容、每个渠道、每次实验的关键数字写进笔记里,让看板自动汇总就够了。
于是我用 Obsidian + Dataview 做了 6 个“实时”(你更新笔记,它就自动更新)的增长看板:轻、快、可复制、可持续。
下面把整套结构、字段、查询语句直接给你,照抄就能用。
0. 你会得到什么
6 个看板分别解决这 6 件事:
- 增长总览:本周核心 KPI 一眼看懂
- 内容增长看板:哪些内容在涨、哪些在掉、下一篇写什么
- 渠道获客看板:哪个渠道在“白嫖流量”,哪个渠道在“烧钱不出单”
- 留存与复购看板:用“最小可用”的方式做 cohort / 复购追踪
- 实验看板:实验从立项到复盘不再丢、结论可复用
- 产出与节奏看板:写作/发布/复盘的节奏是否健康
说明:这里的“实时”指 Obsidian 里数据一更新,Dataview 结果自动刷新(它不是去外部抓取实时数据)。Dataview 的核心能力是把笔记当数据库查询与聚合。见官方文档:Dataview Query Language 与 DataviewJS。[^1]
1. 最小工程:文件夹 + 3 类笔记
我建议先把库里分成 3 类数据源(越少越能坚持):
-
Daily/:每天的关键数字(KPI 日志) -
Content/:每篇内容的表现(内容台账) -
Growth/Experiments/:每个实验的卡片(实验台账)
你只要坚持“每天 1 条、每篇 1 条、每个实验 1 条”,看板自然跑起来。
2. 统一字段:让 Dataview 能“吃”你的数据
Dataview 支持两种常用写法:YAML frontmatter 或 行内字段。我更建议行内字段:写起来快、不打断。
2.1 Daily 模板(放在 Daily/2026-01-06.md 这种文件里)
Markdown
# 2026-01-06
type:: daily
date:: 2026-01-06
pv:: 0
uv:: 0
leads:: 0
paid:: 0
revenue:: 0
channel_wechat:: 0
channel_xhs:: 0
channel_zhihu:: 0
note:: 今天主要动作/异常解释
2.2 Content 模板(放在 Content/)
Markdown
# 标题:我用 Obsidian Dataview 做了 6 个实时增长看板
type:: content
publish_date:: 2026-01-06
platform:: wechat
topic:: obsidian
stage:: published
pv_7d:: 0
save_7d:: 0
follow_7d:: 0
lead_7d:: 0
pay_7d:: 0
hook:: 文章开头钩子写了什么
cta:: 结尾引导是什么
2.3 Experiment 模板(放在 Growth/Experiments/)
Markdown
# 实验:文章结尾 CTA 从“私信”改成“关键词回复”
type:: experiment
status:: running
owner:: 你自己
start:: 2026-01-01
end:: 2026-01-07
goal:: 提升 leads
metric:: leads
baseline:: 2
target:: 5
result::
conclusion::
next_action::
3. 6 个看板:直接复制到你的 Obsidian
下面每个看板都是一个独立页面,比如 Dashboards/增长总览.md,把代码块粘进去就能跑。
看板 1:增长总览(本周 KPI 一眼看懂)
dataview
TABLE
sum(pv) as "PV",
sum(uv) as "UV",
sum(leads) as "Leads",
sum(paid) as "Paid",
sum(revenue) as "Revenue"
FROM "Daily"
WHERE date >= date(today) - dur(7 days)
如果你想加转化率(Leads/UV、Paid/Leads),用 DataviewJS 更稳:
dataviewjs
const pages = dv.pages("Daily").where(p => p.date && p.date >= dv.date("today").minus(dv.duration("7 days")));
const sum = (k) => pages.array().reduce((a,p)=>a+(p[k]??0),0);
const uv = sum("uv");
const leads = sum("leads");
const paid = sum("paid");
dv.table(
["周期","UV","Leads","Paid","Leads/UV","Paid/Leads","Revenue"],
[[
"近7天",
uv,
leads,
paid,
uv ? (leads/uv).toFixed(2) : "0",
leads ? (paid/leads).toFixed(2) : "0",
sum("revenue")
]]
);
你会发现:总览不是为了“好看”,是为了每天 30 秒判断今天该做什么。
看板 2:内容增长看板(决定下一篇写什么)
核心诉求:把“内容表现”从感觉变成排序。
dataview
TABLE
publish_date as "发布",
platform as "平台",
topic as "主题",
pv_7d as "7日PV",
save_7d as "7日收藏",
follow_7d as "7日关注",
lead_7d as "7日线索",
pay_7d as "7日成交"
FROM "Content"
WHERE stage = "published"
SORT pv_7d DESC
LIMIT 30
加一个“选题复用提示”:你会更容易从爆款里拆结构(hook/cta):
dataview
TABLE
hook as "开头钩子",
cta as "结尾引导",
pv_7d as "7日PV",
lead_7d as "7日线索"
FROM "Content"
WHERE stage = "published"
SORT lead_7d DESC
LIMIT 15
看板 3:渠道获客看板(哪个渠道在贡献增长)
把 Daily 里的渠道字段按周汇总:
dataview
TABLE
sum(channel_wechat) as "公众号",
sum(channel_xhs) as "小红书",
sum(channel_zhihu) as "知乎"
FROM "Daily"
WHERE date >= date(today) - dur(7 days)
如果你想看“每天趋势”,做一个最近 14 天折线数据表(用表代替图也够用了):
dataview
TABLE
pv as PV,
uv as UV,
leads as Leads,
channel_wechat as "公众号",
channel_xhs as "小红书",
channel_zhihu as "知乎"
FROM "Daily"
WHERE date >= date(today) - dur(14 days)
SORT date ASC
增长动作会立刻变清晰:把精力加到最有效的渠道,不要平均用力。
看板 4:留存与复购看板(最小可用 cohort)
如果你没有完整用户系统,也可以用“线索/成交的二次触达”做简化版留存。
做法:在某个文件夹里记录“客户/线索”卡片(例:CRM/),每条记录至少有:
Markdown
type:: lead
name:: 张三
first_date:: 2026-01-02
pay_date:: 2026-01-15
source:: wechat
然后看“近30天新增线索来自哪里”:
dataview
TABLE
source as "来源",
count(rows) as "新增线索"
FROM "CRM"
WHERE type = "lead" AND first_date >= date(today) - dur(30 days)
GROUP BY source
SORT "新增线索" DESC
再看“近90天成交的复购/转化情况”(这里用有无 pay_date 作为最小闭环):
dataview
TABLE
count(rows) as "线索数",
sum(choice(pay_date, 1, 0)) as "成交数"
FROM "CRM"
WHERE type = "lead" AND first_date >= date(today) - dur(90 days)
这不是完美 cohort,但足够让你回答两个关键问题:
- 新增主要从哪里来?
- 成交跟着哪条链路走?
看板 5:实验看板(增长最怕“做了就忘”)
dataview
TABLE
status as "状态",
owner as "负责人",
start as "开始",
end as "结束",
metric as "指标",
baseline as "基线",
target as "目标",
next_action as "下一步"
FROM "Growth/Experiments"
SORT status ASC, start DESC
再做一个“只看进行中 + 快到期”的列表:
dataview
LIST
FROM "Growth/Experiments"
WHERE status = "running" AND end <= date(today) + dur(3 days)
SORT end ASC
你会明显减少一种隐形浪费:实验没有复盘、结论没沉淀、同样的坑反复踩。
看板 6:产出与节奏看板(让增长回到“可持续”)
你可以把 Daily 里加两三个字段:
Markdown
publish:: 0
write_minutes:: 0
review:: 0
然后汇总近 7 天:
dataview
TABLE
sum(publish) as "发布次数",
sum(write_minutes) as "写作分钟",
sum(review) as "复盘次数"
FROM "Daily"
WHERE date >= date(today) - dur(7 days)
再列出近 14 天每天的执行情况,看看你的节奏是否断裂:
dataview
TABLE
publish as "发布",
write_minutes as "写作",
review as "复盘"
FROM "Daily"
WHERE date >= date(today) - dur(14 days)
SORT date ASC
增长很多时候不是“缺方法”,是“断节奏”。这个看板专治断更、断复盘、断动作。
4. 让它真的好用的 3 个小技巧
字段名固定,不要今天 pv 明天 pageview
Dataview 是查询,不是魔法,字段统一就是一切。看板只放“决策需要的指标”
指标越多越像“自我安慰仪表盘”。每天 2 分钟补齐 Daily
你只要做到“当天填当天”,看板就会像活的一样。
5. 你可以直接照搬的看板目录
Dashboards/增长总览.mdDashboards/内容增长.mdDashboards/渠道获客.mdDashboards/留存复购.mdDashboards/实验管理.mdDashboards/产出节奏.md
把上面的代码块分别贴进去,就完成了。