在收件箱安静下来之前读懂表单健康
FormFlow 从表单自身的流量计算四个健康信号——摩擦、拒收、枯竭和结构漂移——并在某一个新出现时提醒一次,而不是对没变的状态反复提醒。
本文由机器翻译。 阅读英文原文

客户的 HTML 放在客户自己的站点上。它一旦坏掉——字段改名、按钮被删、脚本不再运行——没有任何错误会送到 FormFlow。提交只是变差或停止,而人们最先注意到的,通常是一个安静的收件箱。
表单健康就是 FormFlow 对此的回答:它计算一个表单是否还在收到提交、是否还是预期的形状、是否还是预期的节奏。它从表单自身的流量算出来,而它的边界也正在这里。
FormFlow 能知道什么、不能知道什么
FormFlow 从不看页面。它看到的是到达:一次预检跑了或没跑、它发出的一次拒收、它接受的一次提交,以及每个请求体带了哪些字段。每个健康信号都从这些记录推出来,所以健康依赖于历史。有一个月流量的表单可以拿自己的基线来判;今天早上刚建的表单不行。
所以空白的健康面板不是健康证明。它是缺乏证据,而 FormFlow 不会把它当作一项测出来的结果来呈现。
四个信号
一共四个,前三个是同一处损失在越来越晚的阶段被发现。
信号 | 它捕捉什么 | 它不是什么 |
|---|---|---|
摩擦 | 预检在填写者还在页面上时指出了一个错误。 | 拒收:什么都没有被拒。 |
提交拒收 | 表单因为自己的设置,在拒绝自己流量中相当一部分。 | 枯竭:流量来了,只是被拒。 |
提交枯竭 | 提交率相对表单近期基线的塌陷。 | 流失线索的计数。 |
结构漂移 | 表单声明过的某个字段不再收到。 | 掉到零:表单还在工作,只是变差。 |
摩擦和提交拒收各自独立记录,因为表单可能在发送前劝退一个人,又在接收时拒绝另一个人。只有在两者都没有触发时才报告枯竭,因为劝退或拒收流量的表单两种情况都写不出提交,看起来同样像是没声音。结构漂移可以和其中任何一个同时出现;它只用嵌入表单的流量来判断:托管页是按结构渲染的,所以声明过的字段不可能在那里悄悄不再到达。
读状态,但别读过头
面板显示健康,或显示有风险并列出活跃信号。健康意味着当前没有信号在触发。没有开启的表单——被关掉,或不再接受提交——同样是健康的:它是有意安静的。
有两种读法很容易出错。有风险不是收入损失的预测,健康也不是每个字段都按预期到达的证明。状态告诉你检测到哪种故障,而不是它造成了多少代价。
针对手里的信号采取行动
健康提醒是品牌邮件,在某个信号第一次出现在某个表单上时发出。状态没变就不会重复发送,所以漂移了一周的表单不会每天早上都给你写信;它只写了一次,在漂移开始时。提醒向团队所有者报告表单的健康,而提交摘要向通知地址报告它的提交。
该做什么取决于信号。摩擦把你带到那些在填写者还在页面上时就卡住的尝试。提交拒收把你带到表单留下的拒收记录和造成它们的设置。枯竭把你带回标记所在的那个页面。结构漂移把你带到不再到达的那个字段,通常是一个没经过 FormFlow 就被改过的表单。
大多数表单一周读一次就够了。健康不是要盯着看的实时仪表;它是一次检查,看表单是否还在做上个月做过的事。
健康信号的钝处
它也看不到一个本来就不会有人填的表单。从来没有流量的页面没有什么可失去的,健康对此什么也不说,而不会称它健康。
v1.0.0 的变更记录条目 把表单健康按发布时的样子列了出来:在表单悄悄丢掉线索之前,先在被静默时收到提醒。支撑它的那些记录的参考和 API 的其余部分放在同一处,而 v1.1 的那篇文章 讲的是决定某次提交本该携带哪些字段的步骤与分支。