通过 Webhook 将提交发送到 Slack
在表单的“投递”标签页添加 Webhook 端点,选择 Slack 消息格式,再粘贴你拥有的传入 Webhook 地址。这是一种负载格式,不是原生的 Slack 集成。
本文由机器翻译。 阅读英文原文

每当表单收到一条提交,FormFlow 就可以向 Slack 发布一条简短消息。它通过 Webhook 端点来实现,这与把提交转发到你拥有的任意 URL 是同一种机制。这不是原生的 Slack 集成:没有需要安装的 Slack 应用,没有使用 Slack 登录,也没有频道选择器。你把传入 Webhook 地址交给 FormFlow,FormFlow 就向它发送一条 Slack 格式的消息。本教程逐步讲解如何设置,并直白地说明这条消息包含什么、不包含什么。
事先需要准备什么
你团队中一个你可以编辑的表单。
一个你拥有的传入 Webhook 地址:来自你的 Slack 工作区的传入 Webhook URL,或者你自己任何接受 Slack 消息格式的端点的地址。请按照 Slack 自己的文档在 Slack 中创建;本文不涉及那一侧。
一个 https 地址。FormFlow 拒绝将纯 http 用于 Webhook 端点。
添加端点
打开表单,进入其“投递”标签页。
找到“Webhook 端点”,选择“添加端点”。
在标有“发送为”的字段中选择“Slack 消息”。默认值是“FormFlow JSON(签名)”,所以这一处更改就是 Slack 端点与普通 Webhook 之间的全部区别。
URL 字段现在的标签是“传入 Webhook URL”。把你的地址粘贴进去。该字段在输入时会被遮蔽,你可以将其显示出来,核对你粘贴的内容。
保持“交付”开启。它默认开启;关闭它即可停止向该端点投递。
保存表单。
“发送为”下方的帮助文字说明,该地址以加密方式存储,且绝不会通过电子邮件再发送出去。端点折叠后的行显示的是格式名称而不是地址,因此 URL 不会以明文形式出现在页面上。
发送测试
每个端点行都有一个“发送测试”操作。它会向该行中的地址发布一行文字:“FormFlow test — submissions from this form will arrive here.”如果成功,你会看到“测试已交付”;如果失败,你会看到“测试交付失败”,并附带接收方自己的错误文本,截断为 300 个字符。
有两个条件。先保存表单:从未保存过的端点无法测试,该操作会告诉你这一点。并且每个人每小时可以发送 20 次测试投递,失败的也计入。测试是一个按钮,而不是一道关卡;无论你有没有按下它,端点都会投递。
频道中会收到什么
这条消息是门铃,不是记录。它包含:
加粗的第一行:“New submission — ”后面跟着表单名称。
最多五个回答,每行一个,每个由加粗的标签和一个值组成。值在 200 个字符处截断。
当表单的字段多于五个时,用一行说明还有多少个字段。
一个指向你控制台中该提交的“View submission”链接。
值内部的空白会被合并,所以一个值只可能是一行。字符 &、< 和 > 会被转义,这样 Slack 就不会把提交者的文字当作标记来解析;值中的星号会被替换为外形相似的字符,这样提交者就无法伪造加粗标签。消息仅为纯文本;它不使用 Slack 的 Block Kit。
需要了解的限制
单向。FormFlow 发送;Slack 中的任何内容都不会回流到 FormFlow。
最多五个回答,每个 200 个字符。要查看完整提交,请使用该链接或提交收件箱。
Slack 会忽略签名。每种 Webhook 格式都有签名,但 Slack 会丢弃签名头,所以 Slack 端点没有可复制的签名密钥。
FormFlow 归类为垃圾邮件的提交不会被转发。只有被接受的非垃圾提交才会到达 Webhook 端点。
重试、退避和停用机制与所有 Webhook 格式共用。持续失败的接收方可能导致其端点被停用,所以如果消息不再到达,请检查该行。
该地址是一种凭据。任何持有 Slack 传入 Webhook URL 的人都可以向该频道发帖。请像对待密码一样对待它,如果泄露,请在 Slack 中更换。
它不决定什么
它不会替你选择频道,也不会替你管理 Slack:你粘贴的地址决定了消息落在哪里,而这是在 Slack 中配置的。它不会让 Slack 成为你的收件箱;阅读、搜索和导出提交仍在 FormFlow 中进行。它也不会让 Slack 消息成为数据的副本。如果你需要把每个字段作为结构化数据投递,请改为再添加一个使用默认 FormFlow JSON 格式的端点。