使用 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 请求一起发送,工作流程就会失败。 

Incident_webhook_workflow.png

小窍门:如果你需要在任何节点添加、移除或修改变量,请在工作流程构建器中打开工作流程。然后,单击编辑旁边的 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 中的工作流程与另一项服务的链接将会断开。使用你的新网址更新其他服务,确保一切平稳运行。