v1.29:已处理状态进入导出和 API
FormFlow v1.29.0 会把提交被标记为已处理的时间写入 CSV、Excel、JSON 导出和管理 API。本文说明这个时间的含义,以及它的局限。
本文由机器翻译。 阅读英文原文

FormFlow v1.29.0 于 2026-10-02 发布,把“已处理”状态带出了收件箱。此前,将提交标记为已处理只在 FormFlow 内部可见。从这个版本起,CSV、Excel 和 JSON 导出会记录这件事发生的时间,管理 API 也会返回同一时间,并支持按它筛选。
变更内容
CSV 和 Excel 导出新增“已处理”列。该列在文件中的表头是 _handled_at,写法与其他提交详情列相同(例如 _id)。
JSON 导出在每条提交上都带有 handled_at 键。
管理 API 在每条提交上返回 handled_at,列表和单条提交均如此。
提交列表接受 handled=true 或 handled=false,用于只获取已处理或只获取未处理的提交。
导出选择器会列出该列,因此您可以取消勾选。
该时间记录什么
该值是团队将提交标记为已处理的时刻,格式为 ISO 8601 时间戳,例如 2026-10-02T09:30:00+00:00。FormFlow 应用的时钟设置为 UTC,因此偏移量是 +00:00。该状态属于团队,而不属于某一位成员:没有指派人,导出中带的是一个时间,而不是一个人。
该状态的写入方式带来三种行为。对已处理的提交再次标记不会有任何效果,因此保留的是第一次的时间。重新开放提交会清除该时间,提交处于未处理期间单元格为空。如果您重新开放后又再次将其标记为已处理,该列会显示新的时间,之前的时间随之消失。从 FormFlow 向提交者发送回复也会将该提交标记为已处理,所以这个时间可能来自一次回复,而不是一次点击。
在导出选择器中
对于 CSV 和 Excel,导出选择器会列出您可以包含的列。选中所有列的导出现在会包含“已处理”列。取消勾选后,文件会保持您之前使用的布局,如果其他工具按位置读取该文件,这一点很重要。即便如此,按表头名称读取文件更为稳妥。
JSON 不显示该选择器。JSON 导出始终包含 handled_at,在提交未处理期间其值为 null。排队的导出是某一时刻的副本,因此您在 v1.29.0 之前下载的文件不会改变,新的导出反映的是它排入队列时的状态。
API 显示的内容
在管理 API 中,已处理的提交包含 handled_at,时间戳格式相同。未处理的提交则完全省略该键,就像提交未读时 read_at 本来就被省略一样。这与 JSON 导出不同,后者保留该键并将其设为 null,因此同时处理两者的调用方应把缺失的键和 null 视为同一回事。
在列表上,handled=true 只返回有处理时间的提交,handled=false 只返回未处理的提交。如果省略该参数,则两者都会返回。它可以与现有的 is_spam 和 unread 筛选以及 q 搜索组合使用。
它的粗略之处
它是一个时间,而不是历史记录。只导出最近一次的处理时间,所以您看不出某条提交曾被重新开放。
它不指明任何人。请勿用该列来比较成员。
已处理指已经处理,不一定已经回复。一条提交可以在没人给提交者写信的情况下被标记为已处理。
它本身不是响应时间指标。您可以用接收时间和处理时间算出间隔,但这个间隔包含提交保持未处理的所有原因,而且重新开放会将其重置。
它不会改写任何已经导出的内容。
本文解释这个版本。v1.29.0 的更新日志条目仍是对已发布内容的记录。