如何通过REST API填充Bitrix24 CRM自定义字段?
解决Bitrix24 CRM自定义字段通过REST API无法填充的问题
我之前也碰到过一模一样的坑!核心问题是你用错了自定义字段的API键名——Bitrix24的CRM自定义字段在接口里不是用你设置的显示名称,而是要用系统自动生成的字段代码,格式通常是UF_CRM_XXXXXX(末尾的字符串是系统分配的唯一标识)。
具体解决步骤:
获取自定义字段的实际API键名
调用crm.company.userfield.list接口来获取所有公司实体的自定义字段信息,代码示例:$customFields = CRest::call('crm.company.userfield.list'); print_r($customFields);在返回的结果里,找到你需要的那个自定义字段,它的
FIELD_NAME属性值就是你要在fields中使用的键名(比如UF_CRM_1698765432)。替换代码中的字段键名
把你原来代码里的"CUSTOM_FIELD"换成刚才拿到的FIELD_NAME值,修改后的代码示例:$company = CRest::call( 'crm.company.add', [ 'fields' => [ "TITLE" => "Company 1" , "COMPANY_TYPE" => "Customer" , "CURRENCY_ID" => 'EUR' , "REVENUE" => "123000" , "ADDRESS" => "st. some address" , "ADDRESS_CITY" => "some city" , "ADDRESS_POSTAL_CODE" => "12345" , "ADDRESS_PROVINCE" => "some province" , "PHONE" => [ ["VALUE" => "1230000000", "VALUE_TYPE" => "WORK"] , ["VALUE" => "1234000000", "VALUE_TYPE" => "FAX"] ] , "EMAIL" => [ ["VALUE" => "me@company1.com", "VALUE_TYPE" => "WORK"] ] , "INDUSTRY" => "MANUFACTURING" , // 替换成实际的自定义字段代码 "UF_CRM_1698765432" => "Hey I'm not a standard field and I'm going to work now" ] ]);特殊字段类型的注意事项
如果你的自定义字段是特殊类型(比如多选框、关联联系人/产品、日期等),需要对应传入正确格式的值:- 多选字段:传入选中选项的ID数组,比如
["UF_CRM_XXX" => [1, 3]] - 关联实体字段:传入对应实体的ID数组,比如关联联系人就传联系人ID数组
- 日期字段:传入
YYYY-MM-DD格式的字符串
- 多选字段:传入选中选项的ID数组,比如
很多Bitrix24 API新手都会踩这个坑,把自定义字段的显示名当成了API里的键名,只要换成系统生成的FIELD_NAME就能解决问题啦!
内容的提问来源于stack exchange,提问作者Igic
相关产品推荐
相关产品推荐

