人工批准
每一个重要的构建,都有这样一个时刻:必须有人点头,某样东西才能发出去。请先设计这个时刻:要请谁决定、他们本来在哪里工作、眼前有哪份文档、他们看到什么,以及他们答复之后会发生什么。
决定是一回事,做出决定的场合是另一回事
决定这部分的工作,是从底层记录中算出应当发生什么,如果还没有人做出决定就拒绝继续,并记下是谁决定的、决定了什么、什么时候决定的。这部分不会因构建而改变。
而做出决定的场合——一个人具体在哪里、以什么方式做出这个决定——按用例来选,但默认做法并不是可以随意挑的:一个人在自己本来工作的地方做决定。对大多数审核人来说,那就是他们的收件箱。
默认做法:带有“批准”和“拒绝”的邮件
审核人会收到一封邮件,里面有做决定所需的一切:相关事实、文档本身(报价单、简历、合同)的链接或附件,以及建议的处理方式。下方是两个按钮,“批准”和“拒绝”。
- 构建暂停下来,并给审核人发邮件。等待期间,不会有任何东西发出去。
- 审核人阅读这封邮件,文档就在眼前。
- 点击其中一个按钮,会打开一个确认页面,显示他们所选的结果。仅仅打开页面,不会决定任何事。
- 只有在页面上点击“确认”,才会记录这个决定。另一个按钮随后就会失效,所以一个人只会给出一个答案。
- 同一次运行接着往下走:完成工作——例如把文档发给销售人员——并告诉提出请求的人发生了什么。
在构建任何东西之前,先用五行字写下这个时刻:要请谁决定、他们本来在哪里工作、眼前有哪份文档、他们看到什么,以及他们答复之后会发生什么。然后记住三件事。
- 以人、消息和文档为主。 这个时刻是一个人、一封邮件和那份文档,而不是一张表格。数据表只是它背后的记录。
- 邮件是一张卡片,而不是一条通知。 如果审核人得另外打开别的东西才能做决定,就说明这张卡片缺了一项事实。
- 每一条分支,都要结束在提出请求的人看得到的地方: 已批准、已拒绝、已过期、无人答复。
其他方式,以及何时使用
| 场合 | 运作方式 | 适用场景 |
|---|---|---|
| 带确认页面的邮件 | 每种结果各一个按钮;点开按钮会显示一个页面,在上面确认才会写入决定 | 默认做法,适用于每一位在收件箱里工作的审核人 |
| 记录上的一个字段 | 一个人在数据表上切换状态字段;保存之后,下一步就会触发 | 备用做法,只在审核人本来就每天在这张数据表上工作时才用。不适合一般业务人员 |
不要要求业务人员通过在数据表里选一个值来批准。那个值藏在一张他们没有理由打开的表格里,要保存后才会生效,也让人感觉不像是在做决定。
具体有哪些场合可用,取决于你的安装环境和版本;你的 iMBrace 联系人可以为你确认。无论选择哪一种,在依赖它之前,都要亲自以审核人的身份走一遍:他们收到邮件、打开、确认,然后构建把事情做完。
不能变通的规则
在聊天里友好地打一声“好”,本身并不算是一项决定。 那只是流程控制——它可能只是让对话继续下去——但它不会留下任何持久的记录,让日后有人能够指出:这件事在这个时间,由这个人批准。决定是一条绑定到具体某一项的记录,记下了是谁在什么时候做出的决定。
还有两条值得牢记的规则:
- 关卡自己算出答案。 它会根据底层记录重新计算结果,而不是相信同一次互动中刚被告知的数字。一个只相信别人告诉它什么的关卡,会很乐意批准一个错误的数字。
- 没有决定,就没有输出。 不是默认放行,也不是过一段时间超时就自动放行。只要还没有人做出决定,就不会有任何东西发出去。
让关卡真正守住的细节
- 打开链接,不会决定任何事。 人、邮件扫描程序或预览功能都可能打开它。访问只会显示页面;只有确认这一步才会做出决定。
- 每个人一封邮件、一组按钮。 在你自己的记录上,记下这组按钮属于谁、他们何时确认,这样“由谁批准”永远来自你自己的记录。
- 第二个答案不会改变任何事。 一旦有一个答案被确认,另一个结果就会失效,而且暂停之后的那一步,重复运行也是安全的。
- 确认页面如实呈现。 只有在决定确实被记录下来之后,才显示“完成”;如果没有记录成功,就明确说出来。
- 等构建真的在等待答案时,才发出邮件。
- 智能体绝不能有写入决定的能力。 用来记录决定的列,应当在记录创建时就取好起始值,并拒绝智能体之后对它的任何写入——只给智能体范围狭窄、碰不到这些列的工具。
- “还没有结论”绝不能被当成“通过”。 一项还没运行、或已经失败的检查,会让记录看起来和真正通过的一模一样。请在每一条记录上都打上结论,包括没问题的那些,并让此后每一步都等待这个结论、没有它就拒绝继续。
- 数据表里的编辑,要到点击“保存”(Save)之后才会生效。 如果审核人确实使用数据表,请从已保存的状态测试这个关卡,并在给他们的操作说明里加上“点击‘保存’”这一步。
证明关卡确实接上了线路,而不只是摆在那里
一个控制点的好坏,取决于它究竟绑定了什么。把这个场合接到真正依赖它的东西上,并以审核人的身份,把整条路径端到端实际走一遍:对每一种结果——批准、拒绝、无人答复——都启动一次运行,从他们实际会收到的那封邮件答复,然后确认工作已完成,或提出请求的人已被告知,而且不需要任何人再提示。在这件事做完之前,关卡都不算建好。