Zapier ленивая загрузка выбора полей ввода

Я создаю приложение Zapier для платформы с динамическими полями. У меня есть API, который возвращает список полей для одного из моих ресурсов (например):

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

Я строю свои действия inputFields на основе этого API:

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

API возвращает тип, представляющий собой список значений (т. Е. Civility), но чтобы получить эти значения, мне нужно сделать еще один вызов API.

На данный момент то, что я сделал, находится в моем fetchFields функция, каждый раз, когда я сталкиваюсь с type: "Multiple"Я делаю еще один вызов API, чтобы получить возможные значения и установить его как choices в моем поле ввода. Однако это дорого, и страница на Zapier занимает слишком много времени для отображения полей.

Я пытался использовать z.dehydrate функция, предоставляемая Zapier, но она не работает для ввода choices,

Здесь я не могу использовать динамический выпадающий список, так как не могу передать ключ возможного значения поля, которое я ищу. Например, чтобы вернуть возможные значения Civility, мне нужно передать civility ключ к моему API.

Какие варианты в этом случае?

1 ответ

Дэвид здесь, из команды Zapier Platform.

Спасибо, что написали в! Я думаю, что вы делаете, возможно, но я также не на 100% понимаю, что вы спрашиваете.

Вы можете иметь несколько вызовов API в функции (что звучит так, как вы). В конце функция должна вернуть массив Field объекты (как описано здесь).

Ключевым моментом, о котором вы можете не знать, является то, что последующие шаги имеют доступ к частично заполненному bundle.inputDataТаким образом, вы можете иметь первую функцию, которая получает параметры поля и позволяет пользователю что-то выбирать, а затем вторую функцию, которая запускается и извлекает поля на основе этого выбора.

В противном случае, я думаю, что функция выполняет 2 вызова API (один для извлечения типов полей и один, чтобы превратить их в Zapier field объекты) это лучшая ставка.

Если это не ответило на ваш вопрос, не стесняйтесь писать по электронной почте partners@zapier.com или присоединяйтесь к slack org (ссылка внизу readme), и мы постараемся решить его там.

Другие вопросы по тегам