跳到主要内容
FormFlow

通过 Webhook 将提交发送到 Slack

在表单的“投递”标签页添加 Webhook 端点,选择 Slack 消息格式,再粘贴你拥有的传入 Webhook 地址。这是一种负载格式,不是原生的 Slack 集成。

本文由机器翻译。 阅读英文原文

A dark plate titled 'Send Submissions to Slack through a webhook', listing a webhook endpoint on the Delivery tab, a Slack-shaped message payload, and a receiver address you own.

每当表单收到一条提交,FormFlow 就可以向 Slack 发布一条简短消息。它通过 Webhook 端点来实现,这与把提交转发到你拥有的任意 URL 是同一种机制。这不是原生的 Slack 集成:没有需要安装的 Slack 应用,没有使用 Slack 登录,也没有频道选择器。你把传入 Webhook 地址交给 FormFlow,FormFlow 就向它发送一条 Slack 格式的消息。本教程逐步讲解如何设置,并直白地说明这条消息包含什么、不包含什么。

事先需要准备什么

  • 你团队中一个你可以编辑的表单。

  • 一个你拥有的传入 Webhook 地址:来自你的 Slack 工作区的传入 Webhook URL,或者你自己任何接受 Slack 消息格式的端点的地址。请按照 Slack 自己的文档在 Slack 中创建;本文不涉及那一侧。

  • 一个 https 地址。FormFlow 拒绝将纯 http 用于 Webhook 端点。

添加端点

  1. 打开表单,进入其“投递”标签页。

  2. 找到“Webhook 端点”,选择“添加端点”。

  3. 在标有“发送为”的字段中选择“Slack 消息”。默认值是“FormFlow JSON(签名)”,所以这一处更改就是 Slack 端点与普通 Webhook 之间的全部区别。

  4. URL 字段现在的标签是“传入 Webhook URL”。把你的地址粘贴进去。该字段在输入时会被遮蔽,你可以将其显示出来,核对你粘贴的内容。

  5. 保持“交付”开启。它默认开启;关闭它即可停止向该端点投递。

  6. 保存表单。

“发送为”下方的帮助文字说明,该地址以加密方式存储,且绝不会通过电子邮件再发送出去。端点折叠后的行显示的是格式名称而不是地址,因此 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 格式的端点。