Zapier场景下如何将Freshdesk的两个关联逗号分隔列表转为指定数组
解决方案:在Zapier中转换并整合Freshdesk关联公司数据
要实现将两个逗号分隔列表转成指定对象数组,并整合现有联系人的关联公司信息,你可以通过Zapier的Code by Zapier工具完成,具体步骤如下:
步骤1:获取现有联系人的关联公司数据
添加一个「Freshdesk - 查找联系人」动作,配置好你的Freshdesk账户和联系人识别条件(比如邮箱),在返回的字段中找到company_access(这是存储联系人关联公司的数组字段),后续步骤会用到这个数据。
步骤2:用Code工具处理并合并数据
添加一个「Code by Zapier」动作,选择Python作为运行环境,然后配置输入变量:
existing_company_access:选择步骤1中获取的company_access字段new_company_ids:输入你的逗号分隔company_id字符串(比如48000098316,48000110432)new_view_all:输入对应的逗号分隔view_all_tickets字符串(比如true,false)
将以下代码粘贴到代码框中:
# 处理新输入的公司ID和权限设置 company_ids = [int(id.strip()) for id in input_data['new_company_ids'].split(',')] view_all_values = [val.strip().lower() == 'true' for val in input_data['new_view_all'].split(',')] # 生成新的公司关联对象数组 new_companies = [] for comp_id, view_all in zip(company_ids, view_all_values): new_companies.append({"company_id": comp_id, "view_all_tickets": view_all}) # 获取现有公司关联数据(如果为空则设为空数组) existing_companies = input_data['existing_company_access'] or [] # 合并数据:用新设置覆盖重复的公司ID,保留最新配置 existing_comp_dict = {item['company_id']: item for item in existing_companies} for new_item in new_companies: existing_comp_dict[new_item['company_id']] = new_item # 转换回数组格式 combined_companies = list(existing_comp_dict.values()) # 输出合并后的结果 return {"combined_company_access": combined_companies}
步骤3:更新Freshdesk联系人
添加一个「Freshdesk - 更新联系人」动作,在company_access字段中选择Code步骤输出的combined_company_access数组。运行Zap后,Freshdesk会接收到PUT请求,用合并后的数组替换原有的关联公司数据,既保留了现有关联,又添加了新公司的设置。
关键细节说明
- 代码中用
strip()处理了字符串中的多余空格,即便输入的逗号分隔列表有空格也能正常处理 - 将
view_all_tickets的字符串值转换为布尔值,符合Freshdesk API的参数要求 - 通过字典去重,确保同一个公司ID只会保留最新的
view_all_tickets设置
内容的提问来源于stack exchange,提问作者Ben Crider
相关产品推荐
相关产品推荐

