会话一直无法完成时
已放弃、已过期,以及停滞在进行中的会话,都意味着用户没有完成流程 - 本文介绍如何区分它们,以及值得修复的常见原因。
已过期 = 用户从未打开过链接。已放弃 = 用户打开后中途离开了。 进行中 = 用户仍在流程之中。这三种状态都没有核验判定结果,也都不会 为从未运行过的步骤计费。
一个从未得出判定结果的会话,最终会停留在三种状态之一,它们的含义各不相同。
| 状态 | 发生了什么 | 该怎么做 |
|---|---|---|
| 已过期 | 链接在被打开之前就已超时失效 | 创建一个带有新链接的会话 |
| 已放弃 | 用户已开始但未能在规定时间内完成 | 提醒用户,或创建一个新会话 |
| 进行中 | 用户此刻正走到一半 | 无需处理 - 它并没有卡住 |
已过期和已放弃都是终态:它们之后都不会再变为已通过。
#进行中并不是卡住了
一个长时间停留在进行中的会话,几乎总是名副其实 - 用户打开了链接,但还没有完成。它背后没有任何队列,也没有什么需要人工释放的东西。等用户完成剩余步骤后,它会自行变化;如果用户始终没有完成,它会变为已放弃。
由此引出两件每周都被问到的事:
- 您无法手动审核进行中的会话。 因为检查尚未全部运行,还没有可作出的判定。推进它的方法是联系用户,请其重新打开同一个链接并完成剩余步骤;链接在会话时间窗结束前一直有效。
- 您也无法取消它。 未开始或进行中的会话没有"关闭"操作。它会在时间窗过期时自行结束,或者由您删除,而删除是永久性的,所以只有在您确实想让记录消失时才这样做。
#时间窗有多长
每个工作流设置未完成的会话保持打开的时长:从1小时到4周,未更改时为7天(工作流设置中的session_expiration_time,以秒为单位)。时间窗关闭后,从未打开过的会话变为已过期,打开过但未完成的会话变为已放弃。这些都是最终状态:用户需要新的会话,并且为同一用户创建新会话时绝不会复用已过期或已放弃的会话。

- 按状态筛选,将进行中与已放弃、已过期区分开来。
- 「状态」会告诉你用户是仍在继续,还是已经放弃了。
- 添加能显示用户停在哪一步的列。
#用户放弃的常见原因(按通常发生的顺序)
证件步骤。 大多数流失都发生在这里。值得排查的常见原因:
- 你的工作流不接受用户实际持有的证件类型,导致他们卡在证件选择环节。详见证件类型为何被拒绝。
- 流程要求上传证件背面,但用户持有的证件背面并没有所需数据。
- 光线不佳时自动拍摄始终无法触发,用户因此放弃,而没有切换为手动上传。
摄像头步骤。 如果摄像头始终无法打开,原因几乎总是环境因素:
- 链接是在另一个应用内置的浏览器中打开的(例如某个聊天应用自带的浏览器),该浏览器限制了摄像头访问。改用手机自带的浏览器打开链接即可解决。
- 该网站此前被拒绝过摄像头权限,用户需要到浏览器设置中重新授权。
- 摄像头已被另一个应用或标签页占用。在部分设备上,麦克风权限请求也可能阻塞摄像头。
语言。 如果流程使用的语言用户看不懂,他们就会离开。界面会自动检测浏览器语言,检测失败时回退到英语。如果你的用户所在市场浏览器语言设置不可靠,请在创建会话时明确指定语言。详见设置核验语言。
流程长度。 每多一个步骤都会损耗转化率。在入驻流程中间插入一份包含二十个字段的问卷,是一个常见的放弃点 - 而且与证件步骤不同,这完全在你的掌控之中。
#找出用户在哪里流失
控制台中的分析功能会逐步展示转化漏斗,让你清楚看到究竟是哪一步流失了用户,而不必靠猜测。详见如何解读你的分析数据。
在单个会话中,各项检查的结果会显示哪些步骤已经完成 - 最后一个已完成的步骤,就是用户停下的位置。
#提醒用户
如果你在创建会话时传入了联系方式,可以向用户发送提醒,而不必重新开始。只有当原会话从未被打开就已过期,或者确实已经过时时,创建新会话才是正确的做法。
#这会让你花费多少
从未运行过的步骤不产生任何费用。计费按已完成的功能计算,因此一个已放弃的会话,只会为用户离开前实际完成的功能计费。一个从未被打开就过期的会话则完全不产生任何费用。
#如果会话已完成,但你这边从未收到通知
这是另一个不同的问题,而且比看起来更常见:核验已经完成,控制台也显示了最终状态,但你的后端从未收到更新通知。这是 webhook 送达问题,而不是会话被放弃。详见webhook 一直没有送达时。
