Zapier延迟加载输入字段选择

时间:2018-09-21 07:16:34

标签: lazy-loading zapier zapier-cli

我正在为具有动态字段的平台构建Zapier应用程序。我有一个API可以返回我的资源之一的字段列表(例如):

[
  { name: "First Name", key: "first_name", type: "String" },
  { name: "Civility", key: "civility", type: "Multiple" }
]

我基于此API构建动作的inputFields

create: {
  [...],
  operation: {
    inputFields: [
      fetchFields()
    ],
    [...]
  },
}

API返回的类型是值列表(即:Civility),但是要获取这些值,我必须进行另一个API调用。

现在,我所做的是在fetchFields函数中,每次遇到type: "Multiple"时,我都会进行另一个API调用以获取可能的值并将其设置为choices在我的输入字段中。但是,这很昂贵,并且Zapier上的页面花费太多时间来显示字段。

我尝试使用Zapier提供的z.dehydrate功能,但不适用于输入choices

我无法在此处使用动态下拉菜单,因为我无法传递我要查找的字段可能值的键。例如,要获取“文明”的可能值,我需要将civility密钥传递给我的API。

在这种情况下有哪些选择?

1 个答案:

答案 0 :(得分:0)

Zapier Platform团队的David在这里。

感谢您的来信!我认为您正在做的事情是可能的,但我也不是100%理解您的要求。

您可以在函数中进行多个API调用(听起来像您一样)。最后,该函数应返回Field对象的数组(如here所述)。

您可能不知道的关键是后续步骤可以访问部分填充的bundle.inputData,因此您可以使用第一个函数来获取字段选项并允许用户选择某些内容,然后再选择第二个函数根据该选择运行并提取字段。

否则,我认为执行2个api调用(一个用于获取字段类型,另一个将其转换为Zapier field对象)的函数是最好的选择。

如果这不能回答您的问题,请随时发送电子邮件至partners@zapier.com或加入slack org(链接自述文件的底部),我们将尝试在那里解决问题。