← [ BACK_TO_NOTES ]

User Flow(用户流程)

User Flow 把用户目标展开成一条由入口、操作、系统状态、决策分支、失败恢复和成功结果组成的完整任务路径。

#concept #growing #design #frontend

[!info] related notes

  • 所属 MOC: ui-ux-moc
  • 前置概念:
  • 并列概念:
  • 易混淆概念:
  • 关系笔记:

User Flow(用户流程)

一句话定义

User Flow 是用户为了完成一个目标,在产品里经过的一连串操作、系统状态和决策分支。

它不是“有哪些页面”,而是:

用户从哪里进入,做了什么,系统如何回应,遇到分支或失败怎么办,最终怎样完成目标。

为什么要在页面之前设计 Flow

如果先画页面,很容易出现:

首页
详情页
设置页
弹窗

但仍然不知道:

  • 用户为什么从首页去详情;
  • 点击以后发生什么;
  • 信息不完整时去哪;
  • 请求失败怎样恢复;
  • 任务什么时候算完成。

所以更好的顺序是:

User Goal
  ↓
User Flow
  ↓
需要哪些状态和信息
  ↓
需要哪些页面 / Panel / Dialog

页面是 Flow 的承载方式,不是 Flow 本身。

一个完整 User Flow 至少包含什么

Entry:入口

用户从哪里进入?

例如:

  • 主工作台;
  • 一次咨询结束后自动进入;
  • 点击某条历史记录;
  • 通知直接跳转。

不同入口可能意味着不同上下文,不能默认所有人都从首页开始。

Action:用户动作

用户做了什么?

例如:

  • 点击;
  • 输入;
  • 选择;
  • 拖动;
  • 确认;
  • 拒绝;
  • 停止;
  • 重试。

System Response:系统回应

每个关键动作都应该有系统回应:

点击区域
→ 区域高亮
→ 详情更新

而不是只有“用户点了一个东西”。

Decision:决策分支

真实流程很少是一条直线。

例如:

信息是否足够?
├─ Yes → 生成当前摘要
└─ No  → 继续向用户提问

Failure / Recovery:失败与恢复

必须把失败路径也画进 Flow:

请求失败
├─ Retry
├─ 保留已有内容
└─ 返回上一稳定状态

Success:成功状态

必须定义:什么时候算“用户目标已经完成”?

如果成功条件没有定义,产品很容易不断增加步骤和信息。

Happy Path 不够

初学者经常只画:

点击 → 成功 → 完成

真实产品还应该考虑:

loading
empty
partial
permission denied
AI uncertain
validation failed
network error
cancelled
retry

因此 User Flow 和 前端交互状态统一处理 是相连的:前者描述任务路径,后者帮助前端把请求生命周期映射成界面状态。

BodySense:身体状态地图的 User Flow

主路径

进入 BodySense 工作区
  ↓
身体记录加载
  ↓
显示有记录的身体区域
  ↓
用户点击左肩
  ↓
左肩高亮 + 显示当前摘要
  ↓
用户阅读
  ├─ 信息足够 → 结束本次查看
  └─ 想补充 / 有疑问
        ↓
      继续咨询
        ↓
      AI 收集补充信息
        ↓
      更新相关身体记录
        ↓
      地图和详情同步变化

这里已经能推导出很多前端需求:

  • 区域必须可点击;
  • 选中状态必须可见;
  • 详情和当前区域必须同步;
  • 从咨询回来以后数据要更新;
  • 用户需要能继续咨询,而不是查看后无路可走。

Empty 分支

进入身体地图
  ↓
没有任何记录
  ↓
显示 Empty State
  ↓
告诉用户数据如何产生
  ↓
进入 / 回到咨询

这时 Empty State 承担 onboarding;有记录以后,这段解释应消失。

AI 不确定分支

假设用户说“肩膀这边不舒服”,系统无法确定左右侧:

用户描述
  ↓
AI 发现区域不确定
  ↓
询问:左肩、右肩,还是双侧?
  ↓
用户确认
  ↓
再更新身体地图

这比 AI 猜一个区域然后静默写入更好的原因,不是“UI 更复杂”,而是它减少了错误事实进入系统。

失败分支

点击左肩
  ↓
详情请求失败
  ↓
人体地图仍保留
  ↓
详情区显示错误 + Retry
  ↓
重试成功

这里体现一个重要原则:

局部失败不应该无理由摧毁整个页面上下文。

Agent 产品中的 User Flow

传统软件往往更确定:

User Action → Known System Action → Result

Agent 产品会出现更多中间状态:

User Intent
  ↓
Agent starts work
  ↓
needs context?
  ├─ yes → ask user
  └─ no
       ↓
uses tools / retrieves evidence
       ↓
needs approval?
  ├─ yes → wait for user
  └─ no
       ↓
result
       ↓
user accepts / corrects / continues

因此设计 Agent Flow 时要特别加入:

  • ask user;
  • tool execution;
  • permission / approval;
  • streaming / progress;
  • uncertainty;
  • interrupt;
  • retry;
  • correction;
  • resume。

详细见 AI / Agent UX 设计。

实战中怎么写 User Flow

最小文本版

Goal:
用户想完成什么?

Entry:
从哪里进入?

Main Path:
A → B → C → Success

Decision:
在哪些地方会分支?

Failure:
哪里可能失败?

Recovery:
失败后用户怎么办?

Exit / Success:
什么状态算完成?

更适合 Review 的状态版

[进入]
  ↓
[加载]
  ├─ fail → [错误] → retry ─┐
  └─ success               │
       ↓                    │
[有数据?] ←─────────────────┘
  ├─ no → [Empty] → [开始咨询]
  └─ yes
       ↓
[选择区域]
  ↓
[查看详情]
  ├─ done → [结束]
  └─ continue → [继续咨询] → [更新记录]

Flow Review 的问题

每次设计功能可以问:

  1. 入口是否只有一个?是否存在深链、通知等其他入口?
  2. 用户是否知道第一步做什么?
  3. 有没有没有意义的中间步骤?
  4. 是否要求用户重复输入系统已经知道的信息?
  5. 决策分支是否自然?
  6. Loading 时用户能做什么?
  7. 失败后能不能恢复?
  8. 用户能不能取消、返回或改正?
  9. AI 不确定时是猜测,还是把控制权交回用户?
  10. 成功以后有没有自然的下一步或明确结束?

User Flow 与状态机的区别

两者很接近,但关注点不同:

  • User Flow 从用户任务看整个过程;
  • 状态机从系统可达状态和转换规则看过程。

例如 User Flow 写:

用户发送问题 → AI 回答 → 用户继续追问

工程状态机可能进一步拆成:

idle → submitting → streaming → completed
                 ↘ error → retry
                 ↘ cancelled

产品设计先保证 Flow 合理,工程实现再把它收敛成明确状态和事件。

与信息架构的关系

信息架构 决定信息和入口如何组织;User Flow 决定用户怎样穿过这些信息完成任务。

最短记忆:

IA 设计空间,Flow 设计路径,Interaction 设计每一步怎么发生。

相关知识

创建于 2026/8/27 更新于 2026/8/27
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本