通过Zoho CRM Watch API接收通知时affected_fields值为null问题
Zoho CRM Watch API: affected_fields 返回null的解决办法
问题概述
使用Zoho CRM Watch API(v8)监听Deals模块更新时,通知能正常触发,但返回的affected_fields始终为null。已配置return_affected_field_values: true,但未得到预期的更新字段信息。
排查与解决步骤
1. 验证字段API名称的正确性
Deals模块默认不存在Last_Name和Email字段(这两个字段属于Contacts/Leads模块),你需要确认Deals模块中目标字段的真实API名称:
- 登录Zoho CRM后台,进入Deals模块设置 → 字段
- 找到你要监听的字段,查看其API名称(例如关联联系人的姓可能是
Contact_Last_Name,邮箱可能是Contact_Email,自定义字段则有对应的自定义API名)
2. 缩小监听事件范围
将请求体中的events从["Deals.all"]改为["Deals.update"]:
Deals.all包含创建、更新、删除等多种事件,部分事件类型不会返回affected_fields- 明确指定
Deals.update可确保只针对更新操作触发通知,符合你获取更新字段的需求
3. 检查Channel配置一致性
对比请求中的channel_id(102001)和通知响应中的channel_id(100000000001),二者不一致说明当前生效的是另一个未正确配置的Channel:
- 删除旧的无效Channel
- 重新创建带有正确配置的Channel,确保
channel_id一致
4. 调整Notification Condition(可选)
- 如果不需要限制仅特定字段更新才触发通知,可直接移除
notification_condition节点,这样任意字段更新都会返回affected_fields - 如果需要监听特定字段,确保
field_selection中的字段API名完全正确,结构符合要求
5. 测试时更新目标字段
测试过程中必须更新你在field_selection中指定的字段(或任意字段,若已移除condition),否则Zoho不会返回affected_fields
修正后的请求体示例
{ "watch": [ { "channel_id": "102001", "events": ["Deals.update"], "notification_condition": [ { "type": "field_selection", "module": {"api_name": "Deals"}, "field_selection": { "group_operator": "or", "group": [ {"field": {"api_name": "Contact_Last_Name"}}, {"field": {"api_name": "Contact_Email"}} ] } } ], "channel_expiry": "2025-12-31T09:58:09+05:30", "token": "deals.lastname.notif", "return_affected_field_values": true, "notify_url": "https://5b54c10abb31.ngrok-free.app/zoho/notify" } ] }
内容的提问来源于stack exchange,提问作者Dhruv
相关产品推荐
相关产品推荐

