按下单元格中的按钮时从 Google 工作表触发 webhook

Trigger webhook from Google Sheets when button in cell pressed

我们在 Google 表格中进行了 sprint 容量规划,因为 JIRA 无法根据每个任务的故事点数有效地将任务分解为 sprint。

我们正在引入 JIRA 中所有任务的列表及其相关的故事点,并使用一些电子表格魔法根据可用故事点的数量构建冲刺。

每次在特定版块的 JIRA 中进行编辑时,电子表格都会通过 Zapier 更新,但有时当很多事情发生变化时,它会触发 lot 事件,因为有Zapier Zap 中有这么多步骤。

我想知道是否可以在 Google 表格单元格中添加一个可以触发 webhook 的按钮,也许像 date/time 这样微不足道的东西可以触发 Zap 更新电子表格?

这意味着 Zapier 中的任务 'expensive' 较少,并且仅当用户单击电子表格中的按钮时才会更新。

你好 tectomics 我相信我已经找到了适合你的解决方案。

高层解决方案如下:

创建一个脚本,位于您的 Google Sheet 中,按下按钮即可触发。该脚本向正在侦听任何传入流量的 Zapier webhook 发出 HTTP POST 请求。一旦 webhook 在 Zapier 的末端被捕获,它就会触发位于 zap 中的所有下游步骤。请注意,要使其正常工作,您需要高级订阅 Zapier,因为 Zapier 的 webhook 应用程序仅限高级访问。

现在了解详情:

google脚本如下:

function fireZap() {

  var endpoint = "ZAPIER_WEBHOOK_URL";

  var payload = {
    "uuid" : Utilities.getUuid()
  };

  var options = {
    "method" : "post",
    "payload" : payload
  };

  UrlFetchApp.fetch(endpoint, options)

}

注意:端点变量只是一个示例,您必须在首次创建 Webhook 触发器时使用 Zapier 提供的端点 URL 更新该值。

google 脚本使用 UrlFetchApp class。 Zapier 的 webhook 端点似乎只触发唯一的有效载荷数据(至少在测试模式下,对于实时 zap 可能不同)所以我们为有效载荷生成一个唯一的 UUID。

脚本编写完成后,您必须 link 将其添加到工作簿中的按钮。有许多教程,例如 this 描述了执行此操作的直接过程,因此我会省去麻烦。

一旦我们准备好了所有这些,我们就会前往 Zapier 并使用 Webhooks zap 创建一个新的 zap 作为触发器。对于触发事件select'Catch Hook'。继续 'Customize Hook' 部分。这里 Zapier 将为您提供一个独特的 URL 端点,将其放在 google 脚本中的端点变量中。

有了这个完整的设置,无论您想要什么下游 zaps,它都会在您按下 sheet 上的按钮时触发。

希望这对您有所帮助,

有任何问题请告诉我。