KOLens
全部文章
·KOLens 团队Watchlist监控预警

Watchlist 重新设计:从「收藏夹」升级成「监控仪表盘」

旧的 watchlist 回答「我在关注谁」。新版回答真正重要的问题:「我关注的这些 KOL 里,现在哪些需要我处理?」

改造前后对比

改造前:watchlist 显示「我在关注谁」+ 统计 + sparkline。 改造后:信号徽章、最新视频缩略图、outreach 状态徽章、品牌匹配度 星级,按优先级排序。周一打开 → 最上面那几行就是周末真正变动 过的 KOL。

老版 watchlist 为什么不够用

watchlist 是有数据的——KOLens 早就在跑一个增长检测器,会产生 rising_koltrending_video 预警; dossier 早就知道某人上次发视频是什么时候;CRM 早就在跟踪 outreach 会话。这些东西都没有出现在 watchlist 卡片上。操作员 必须分别点开每张 dossier 才能发现变化。

重做本质上是给我们已经在算的数据搭一个 UI 露出层。没有新增 管线、没有新增 credit 成本——只是换一种聚合方式,把 watchlist 变成它本该是的那个分诊入口。

六种信号

  • 🔥 rising_kol——14 天内未读的 rising_kol 预警。标签格式:「+12K 粉丝」
  • 📈 trending_video——未读的 trending_video 预警。标签:「热门视频 · 230 万播放」
  • 💤 dormant——最新视频 >14 天前。标签带 天数,徽章本身就足够提供信息,不用悬浮 tooltip。
  • 💰 new_sponsored——最近 14 天至少一条 #ad / #sponsored 视频。能告诉你这位达人正在接合作,省得 你去翻他的主页栅格。
  • 📧 new_contact——DBContact.fetched_at 晚于该 watchlist 行的 added_at。意思是你 标星那一刻这位达人还没邮箱,后来挖出来了。
  • 💬 no_outreach——当前 workspace 里没有 会话,或者最后一次事件 >30 天前。watchlist 的目的是驱动 行动;这个徽章就是用来催你的。

每张卡片现在展示什么

  1. 头像 + handle + 认证标 + 内联品牌匹配度星级
  2. 信号徽章一行(核心)
  3. 最新视频条——缩略图(通过 /api/img proxy 解决 CORS)、文案、播放量、按新旧绿 / 琥珀色编码
  4. 紧凑统计行(粉丝 / ER / 平均播放)+ 下方一条更小的 sparkline
  5. outreach 徽章——状态 + 上次接触距今天数 + 事件数,直链到 /crm/{conversation_id}。还没有会话时 兜底成 mailto
  6. 页脚:「已关注 N 天」+「查看 profile →」链接

服务端按优先级排序

高严重度信号的行会自动浮到顶。打分函数写在页面组件里 (故意做成客户端可读,便于运维 debug):

  • rising_kol / trending_video → 各 100
  • new_contact → 60
  • dormant → 40
  • new_sponsored → 30
  • no_outreach → 10

同分用最近被加星的时间作为 tiebreaker。结果:30 行 watchlist 里有两位达人上周出了爆款,那两位每次打开都顶在页首,直到 操作员明确处理掉或联系上他们。

API 变更是新增式的

GET /api/watchlist 多接受一个 ?signals=true query。默认关,所以现有调用方(CLI 插件、MCP 的 list_watchlist)看到的响应结构跟以前一样。网页 /watchlist 页面会主动 opt-in。

下一步(PR-B)

  • 页面上的排序 / 筛选 UI——「只看带新信号的」
  • watchlist_entries.tags + .note 列,让操作员可以塞 🔥 hot / ⏳ pending / ❌ skip
  • ER 下跌信号——查询更重(要 join DBVideoSnapshot 趋势),所以先推迟

反馈 / 需求请丢到团队最自然的那个频道——我们会带进下一轮迭代。

准备好了?

立即试用 —— 注册即送 50 credits。

打开你的 Watchlist

常见问题

都有哪些自动触发的信号?
六种。rising_kol 和 trending_video 来自已有的 DBGrowthAlert 表(增长检测器已经跑了几个月)。另外四种在请求时计算——dormant 来自 DBVideo.created_at,new_sponsored 来自近 14 天的 is_sponsored / is_ad,new_contact 当 DBContact.fetched_at 晚于 DBWatchlistEntry.added_at 时触发,no_outreach 当无会话或 last_event_at >30 天时触发。
watchlist 很大时会拖慢页面吗?
信号计算是每种信号一次批查询,不是 N×6 次往返。贵的两种(增长预警 + outreach 状态)是 workspace 范围内的 join;便宜的(停更 / 赞助比)用现有 author_username 索引读 DBVideo。50 行 watchlist 通常 <300ms 渲染完。
品牌匹配度星级怎么来?
从缓存的 Creator Overview 行里免费拿——不发 LLM。如果 workspace 品牌画像已设置 AND 该 KOL 过去 30 天内已经生成过 overview,星级就内联显示在 handle 旁。零 credit 的小视觉提示。
能排序或筛选吗?
服务端按信号优先级排序(rising / trending / new_contact 优先,再到 dormant / sponsored,最后 no_outreach)是当前默认。显式排序下拉 + 筛选标签(比如「只看带新信号的」)在下一轮迭代清单里——watchlist 提案的 PR-B。
API 改动向下兼容吗?
兼容。GET /api/watchlist 默认仍然返回旧 shape。加 ?signals=true 才进入增强 payload,多出 signals[] / latest_video / outreach / recommendation_score 字段。现有的 CLI / MCP 调用方仍走轻量路径。

继续阅读

Watchlist 重新设计:从「收藏夹」升级成「监控仪表盘」 · KOLens | KOLens