使用 webhook 创建更高级的工作流程

哪些人员可以使用此功能?

工作流程是自动执行的多步骤任务或流程,可以直接在 Slack 中运行,或与其他工具和服务连接。Slack 中的工作流程繁简随意,通常无需编写任何代码。

如果你是开发人员或有一定的编程经验,你可能会想用 webhook 创建一个由外部服务(比如你公司使用的内部工具)中的事件触发的工作流程。

开始使用须知

  • 熟悉如何使用命令行或其他工具来发送 HTTP 申请
  • 了解 incoming webhook。如需获取指导,请阅读关于 Slack API 的文档,或向你团队中的开发人员寻求帮助

你将学习的内容

  • 如何配置 webhook,以触发 Slack 中的工作流程
  • 如何创建自定义变量,并在工作流程步骤中使用它们
  • 如何在发布前测试你的工作流程

备注:拥有者和管理员可以限制对使用 webhook 创建工作流程的访问。如果你在工作流程构建器中看不到此选项,请向拥有者或管理员求助。

小窍门:如果你想重温一下如何设置工作流程和选择触发器,请访问在 Slack 中设置工作流程


工作流程设置

Webhook 工作流程基础知识

Slack 中的所有工作流程都是响应触发器的操作启动的。要使用 webhook 触发工作流程,你将需要配置 webhook,以便在另一个服务中发生特定事件时在 Slack 中启动工作流程。例如,你可能会设置一个工作流程,当你的网站或服务出现问题,并且已调用事件来了解和解决这些问题时,该工作流程就会向 Slack 发布消息。

配置你的 webhook

你选择用来创建和配置 webhook 的外部服务需要为你提供在某些事件发生时向 Slack 发出 HTTP POST 请求的权限。你的工作流程一旦发布,Slack 将为其生成唯一的请求网址,你可以配置 webhook 以通过 HTTP 请求主体将信息传递至 Slack。你的 webhook 发送至 Slack 的任何数据都可以通过创建变量,以供后续工作流程步骤引用。

小窍门:如果你不确定如何配置你的 webhook,我们建议你向团队中的开发人员寻求帮助,或参考由所用服务提供的支持文档,如 PostmanZapier

创建自定义变量

你可以添加最多 20 个变量,以从另一项服务将数据传递给 Slack,并在添加到你的工作流程的步骤中包含特定于 Slack 的信息(例如显示名或电子邮件地址)。

要创建自定义变量,你可以在工作流程构建器中添加键值对作为基于文本的变量。在你添加变量后,你会看到 HTTP 正文的预览,这样你就可以确保这些值与你通过 webhook 连接至 Slack 的其他服务中的 JSON 输出相匹配。请注意,工作流程变量中目前还不能使用嵌套的 JSON 结构。

在下面的示例中,如果用户严重程度事件说明没有与你的 webhook 请求一起发送,工作流程就会失败。 

工作流程构建器中显示了 webhook URL 和自定义变量的 webhook 配置

小窍门:如果你需要在任何节点添加、移除或修改变量,请在工作流程构建器中打开工作流程。然后,单击编辑旁边的 Webhook 进行修改。你还需要确保对变量的任何修改都会反映在发送 webhook 请求的外部服务中。

获取你的网络请求网址

当你发布工作流程时,Slack 会生成一个唯一的请求网址,你可以将其添加到你的 webhook 中,以确保它将你设置的 POST 发送至 Slack 中的正确频道。申请网址以 https://hooks.slack.com/workflows 作为开头,后接随机字符串。

保证你的申请网址的安全,因为任何拥有此链接的人员都可以触发你的工作流程。

备注:webhook 工作流程每秒只能接受一个申请。了解更多关于 Slack API 速率限制的信息


将所学内容付诸实践

增加步骤

一旦你配置了 webhook 并创建了任何你想使用的变量,你就可以为你的工作流程添加步骤了。 

  1. 在工作流程构建器中打开你的工作流程。 
  2. 单击添加步骤。 
  3. 选择你想要添加的步骤类型,然后按照提示自定义步骤。


测试你的工作流程

在将工作流程发布至你的工作区成员经常使用的频道中之前,你可以设置将第一步发布到测试频道中。

  1. 向你的工作流程的请求网址发送一个 POST,并执行所有步骤来确保一切正常工作。
  2. 回到工作流程构建器,更新工作流程的第一步,将其发布到你喜欢的频道,然后发布更改


重新生成 webhook 网址

如果 webhook 网址泄漏或出于任何原因需要更改,请遵循以下步骤: 

  1. 打开工作流程构建器,从列表中选择你的工作流程。
  2. 单击编辑旁边的Webhook
  3. 选择重新生成网址并保存你的更改。

备注:在你重新生成 webhook 网址时,Slack 中的工作流程与另一项服务的链接将会断开。使用你的新网址更新其他服务,确保一切平稳运行。