Zapier CLI 的 Dynamic 下拉菜单允许您在创建 Zaps(自动化工作流)时动态地从先前的步骤中获取输入数据。如果您想要将多个值设置为 bundle.inputData
,可以通过以下步骤实现:
假设您有一个 Zap,其中第一步是从某个 API 获取一组数据,然后在第二步中使用这些数据填充动态下拉菜单。以下是如何实现这一点的示例:
// 第一步: 获取数据
const axios = require('axios');
module.exports = {
key: 'get-data-step',
noun: 'Data',
create: async (bundle) => {
const response = await axios.get('https://api.example.com/data');
return response.data;
},
};
// 第二步: 使用动态下拉菜单
module.exports = {
key: 'select-data-step',
noun: 'Selected Data',
prefill: {
// 假设第一步返回的数据是一个数组
selectedData: bundle.inputData.map(item => item.id),
},
create: async (bundle) => {
const selectedIds = bundle.inputData.selectedData;
// 根据选择的 ID 获取详细信息
const selectedItems = await Promise.all(
selectedIds.map(id => axios.get(`https://api.example.com/data/${id}`))
);
return selectedItems.map(item => item.data);
},
};
原因: 可能是由于第一步返回的数据格式不正确,或者第二步的 prefill
配置不正确。
解决方法:
id
)。prefill
配置,确保它正确地映射了第一步返回的数据。// 第一步: 获取数据
const axios = require('axios');
module.exports = {
key: 'get-data-step',
noun: 'Data',
create: async (bundle) => {
const response = await axios.get('https://api.example.com/data');
return response.data.map(item => ({ id: item.id, name: item.name }));
},
};
// 第二步: 使用动态下拉菜单
module.exports = {
key: 'select-data-step',
noun: 'Selected Data',
prefill: {
selectedData: bundle.inputData.map(item => item.id),
},
create: async (bundle) => {
const selectedIds = bundle.inputData.selectedData;
const selectedItems = await Promise.all(
selectedIds.map(id => axios.get(`https://api.example.com/data/${id}`))
);
return selectedItems.map(item => item.data);
},
};
通过这种方式,您可以确保动态下拉菜单正确地显示并选择多个值。
领取专属 10元无门槛券
手把手带您无忧上云