如何在Zoho CRM Deluge脚本中用forEach遍历JSON数组及解决createrecord报错
问题排查与解决方法
1. Deluge数组声明正确性说明
你使用的x = List();语法完全正确,Deluge中动态数组的标准初始化方式就是调用List()方法,后续可以通过add()方法向数组内追加元素。
2. 报错核心原因
你遇到的Argument type mismatches for the integration function 'zoho.crm.createrecord' at index 2报错,是因为zoho.crm.createrecord函数的第三个参数要求为单条记录的Map对象,你直接将接收的整个JSON数组作为参数传入,触发了类型不匹配错误。
3. 正确实现方案
3.1 Deluge侧处理逻辑
你需要先将接收的请求体解析为Deluge可识别的List类型,再循环处理单条记录调用创建接口,或者直接使用支持批量插入的zoho.crm.insertRecords接口,更适合你一次传入多条宠物数据的场景:
// 第一步:解析服务端传入的JSON数组为Deluge List类型 pets_list = request_body.toList(); // 方案A:循环单条插入 for each pet in pets_list { record = Map(); record.put("Name", pet.get("Name")); record.put("Pet_Owner", pet.get("Pet_Owner")); record.put("Contact_Number", pet.get("Contact_Number")); record.put("Birthdate", pet.get("Birthdate")); record.put("Breed", pet.get("Breed")); // 第三个参数传入单条记录的Map,符合接口要求 create_resp = zoho.crm.createRecord("你的宠物模块API名", Map(), record); info create_resp; } // 方案B:批量插入(更高效,推荐) // insert_resp = zoho.crm.insertRecords("你的宠物模块API名", Map(), pets_list); // info insert_resp;
3.2 注意事项
- 你的服务端发送逻辑没有问题,不需要调整
- 代码中
你的宠物模块API名需要替换为你在Zoho CRM中创建的宠物模块的实际API名 - 所有字段的key需要和Zoho CRM中对应字段的API名完全一致,包括大小写
- 你当前传入的日期格式
YYYY-MM-DD符合Zoho CRM日期类型字段的要求,无需额外转换
内容的提问来源于stack exchange,提问作者tad00
相关产品推荐
相关产品推荐

