我在Zapier CLI中有我的应用程序。我创建了一个触发器来设置zap创建过程中特定操作步骤的下拉值。 数据是这样的:
{ "data": {
"account_status": {
"field_name": "account_status",
"field_label": "Status",
"field_type": "list",
"field_length": "50",
"field_items": "Active|Inactive|444|Closed",
"required": "0",
"related_module": "",
"related_field_name": "",
"join_table": "",
"join_lhs_field_name": "",
"join_rhs_field_name": "",
"related_data_field": ""
},
}
}
这是我的代码: 现在,我尝试使用上述结果中的field_items值为动态下拉菜单设置数据:
return responsePromise
.then(response => JSON.parse(response.content ) )
.then(data => {
const account_status_list = data.data.account_status.field_items;
const account_status_arr = account_status_list.split("|");
return account_status_arr.map(function(e){
e.id = e
return e
})
})
我动态下拉触发器的输入字段是:
{
key: 'account_status',
label:'Account Status',
required: false,
dynamic: 'account_status.account_dropdown.id'
}
谁能建议我要去哪里错了,或者我该怎么做才能解决这个问题?
答案 0 :(得分:2)
Zapier Platform团队的David在这里。
问题在于Zapier需要一个对象数组,而您正在返回一个字符串数组。似乎您正在尝试在代码段中创建id字段,但是调用"Active".id = "Active"
不会创建对象。
相反,您应该将map函数更改为如下所示:
return account_status_arr.map(function(e){
return {id: e}
})
您可能需要调整的另一件事是如何设置动态下拉菜单。这是一个用句点分隔的字符串,格式为trigger_key.id_key.label_key
。 id
和label
可以是同一密钥;这实际上取决于您需要向API发送哪些数据(标签仅用于显示,id是实际发送的内容)。在动态字段中,您将拥有一个dyanmic
的{{1}}属性。
有文档here。