отличный вопрос! Калеб здесь от Zapier Engineering.
Я думаю, что вопрос сводится к тому, чего вы хотите достичь. Списки отлично подходят для статических полей, для которых пользователи хотели бы указать несколько значений. Возьмите, к примеру, бирки Trello; пользователь может захотеть, чтобы Zap создал Trello с тегом Zapier
и тегом со значением из предыдущего шага.
Позиции (на основе дочернего поля) отлично подходят для случаев, когда пользователи отображают позиции с предыдущих шагов. Это позволяет Zaps создавать динамическое количество объектов - может быть создано 0 или более из них. Когда у пользователя есть Zap, который возвращает данные с шага A в виде:
{
"id": 42,
"name": "Caleb McQuillin",
"phone_numbers": [{
"name": "work",
"number": "314-159-2653"
}],
"email_addresses": [{
"name": "work",
"address": "caleb.mcquillin@example.com"
}, {
"name": "personal",
"address": "caleb.mcquillin@example.net"
}]
}
Если вы настроили свое действие со следующим inputFields
:
[{
key: 'email_addresses',
required: false,
children: [{
key: 'type',
required: true,
type: 'string'
}, {
key: 'email',
required: true,
type: 'string'
}]
}]
Затем пользователь может сопоставить email_addresses.name
с шага A до email_addresses.type
для шага B и email_addresses.address
с шага A до email_addresses.address
для шага B. Поскольку Zap включен, новые записи могут иметь 0 адресов электронной почты , 1 адрес электронной почты, 100 адресов электронной почты и т. Д. Ваш inputData
будет содержать следующее на основе моего предыдущего примера:
{
"email_addresses": [{
"type": "work",
"email": "caleb.mcquillin@example.com"
}, {
"type": "personal",
"email": "caleb.mcquillin@example.net"
}]
}
Если вы настроили свое действие следующим inputFields
:
[{
key: 'email_address_types',
list: true,
required: true
}, {
key: 'email_address_addresses',
list: true,
required: true
}]
Пользователи смогут указать статическое количество адресов электронной почты для сопоставления с шага А на шаг Б. Если шаг А вернул данные в формате
{
"id": 42,
"name": "Caleb McQuillin",
"home_phone": null,
"work_phone": "314-159-2653",
"home_email": "caleb.mcquillin@example.net,
"work_email": "caleb.mcquillin@example.com",
}
и пользователь отобразил домашнюю и рабочую электронную почту, ваш inputData
будет содержать следующее:
{
"email_address_types": ["work", "personal"],
"email_address_addresses": ["caleb.mcquillin@example.com", "caleb.mcquillin@example.net"]
}
и вы, скорее всего, использовали бы сценарии для объединения их в массив объектов.
Надеюсь, все это имеет смысл! Дайте мне знать, если у вас есть какие-либо вопросы, основанные на вышеуказанном. :)