使用Zenpy创建Zendesk用户时自定义字段无法更新如何解决
错误原因
Zendesk接口规范要求所有用户自定义字段不能作为顶层参数提交,必须统一封装在user_fields字典参数中传递。你直接将自定义字段名作为User()的顶层参数传入时,Zenpy不会将这些字段识别为自定义字段,也不会将其映射到接口要求的user_fields结构中,因此这些值不会被 Zendesk 后端接收存储。
修正后的代码示例
for row in df.iloc[1:11].fillna(0).iterrows(): row_data = row[1] user = User( # Zendesk用户原生顶层字段 name = row_data.first_name, email = row_data.email, verified = True, # 所有自定义字段统一放入user_fields字典 user_fields = { "lifetime_value": row_data.purchased_total_value, "first_order": row_data.first_purchased, "last_order": row_data.last_purchased, "products_ordered": row_data.purchased_product_count, "total_orders": row_data.purchased_unique_orders, "total_returns": row_data.total_returns, "products_returned": row_data.products_returned, "pro_account": pd.notna(row_data.proaccount_deal) } ) created_user = zenpy_client.users.create(user)
注意事项
user_fields中的键名必须和你在Zendesk后台自定义字段配置的「字段键」完全一致,大小写、拼写均不能出错- 字段值类型要和Zendesk自定义字段的类型匹配:例如日期类字段要传符合规范的日期字符串,数值类字段不要传递字符串格式的数值
- 调试时可以通过
print(user.to_dict())打印生成的请求结构,确认user_fields下的键值对是否符合预期
内容的提问来源于stack exchange,提问作者Hamza
相关产品推荐
相关产品推荐

