You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过REST API为默认Contact对象LeadSource字段添加选项列表值

Salesforce Tooling API 更新LeadSource标准值集返回MALFORMED_ID解决方案

错误根因

MALFORMED_ID: bad id LeadSource报错由两个问题共同导致:

  1. 更新StandardValueSet的请求路由错误,普通sObject的/tooling/sobjects/StandardValueSet/[ID]路由不支持标准值集更新操作
  2. 查询与更新请求混用了不同API版本(v49.0查询、v53.0更新),存在元数据结构兼容问题

正确实现步骤

  • 统一API版本:查询、更新操作统一使用同一稳定API版本(推荐v53.0及以上)
  • 查询标准值集信息,请求示例:
GET /services/data/v58.0/tooling/query?q=SELECT+Id,DurableId,Metadata,FullName,MasterLabel+FROM+StandardValueSet+WHERE+MasterLabel='LeadSource'

LeadSource对应的标准值集DurableId固定为LeadSource,无需额外使用查询返回的18位Id字段

  • 发起更新请求,使用GlobalValueSet专用路由,不要使用StandardValueSet路由,请求格式:
PATCH /services/data/v58.0/tooling/sobjects/GlobalValueSet/LeadSource
Content-Type: application/json
  • 构造请求载荷:更新为全量覆盖逻辑,必须先携带查询返回的所有原有选项,再追加新增选项,示例结构:
{
  "Metadata": {
    "customValue": [
      // 此处放查询返回的所有原有customValue条目,不要遗漏
      {
        "default": false,
        "description": "Web",
        "label": "Web",
        "isActive": true,
        "valueName": "Web"
      },
      // 追加的新选项
      {
        "default": false,
        "description": "第三方活动导入",
        "label": "第三方活动导入",
        "isActive": true,
        "valueName": "Third_Party_Campaign"
      }
    ],
    "masterLabel": "LeadSource",
    "sorted": false
  }
}

注意事项

  • 发起请求的集成用户必须持有Customize Application、View Setup and Configuration权限,否则会返回权限类错误
  • 不要在更新载荷中只传新增选项,会清空所有原有LeadSource选项
  • 不要尝试使用StandardValueSet路由执行更新操作,该路由仅支持查询,不支持写入

内容的提问来源于stack exchange,提问作者Danny Tiesling

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 16:15:45