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

在Salesforce SFDX中通过JSON导入数据时如何避免重复记录

JSON导入联系人防重复操作方案

1. 直接沿用External ID逻辑,调用upsert接口

绝大多数支持External ID的业务系统/CRM,在API导入JSON的场景下都内置了upsert(更新+插入二合一)能力,逻辑和导入向导的去重规则完全一致:

  • 导入前在请求参数中指定将External ID作为匹配依据
  • 系统自动拿JSON中每条数据的External ID值和库中已有记录匹配
  • 匹配到相同值就更新对应记录的其余字段,不会生成新记录
  • 未匹配到则直接新增记录

以下是通用的JSON请求示例,可根据你使用的平台调整字段和请求规则:

{
  "allOrNone": false,
  "records": [
    {
      "type": "Contact",
      "ExternalID__c": "CONT0001",
      "FirstName": "张三",
      "LastName": "李四",
      "Email": "zhangsan@example.com"
    }
  ]
}

请求时在头信息中指定Upsert的匹配字段为ExternalID__c即可自动触发去重逻辑。

2. 导入前先对JSON文件本身做去重

如果你使用的系统不支持upsert操作,可以在导入前先清理JSON内的重复数据,步骤如下:

  • 确定唯一匹配规则,优先用External ID,也可以用邮箱、手机号等天然唯一的业务字段作为匹配依据
  • 遍历JSON中的联系人数组,用哈希表存储已出现的唯一值,重复数据直接过滤

以下是简单的JS去重示例:

const rawContacts = require('./待导入联系人.json')
const uniqueMap = new Map()
rawContacts.forEach(item => {
  // 此处可替换为你选定的唯一匹配字段
  const uniqueKey = item.ExternalID__c
  if (!uniqueMap.has(uniqueKey)) {
    uniqueMap.set(uniqueKey, item)
  }
})
// 最终导入去重后的数组即可
const deduplicatedContacts = Array.from(uniqueMap.values())

3. 存储层加唯一兜底约束

如果是自定义开发的导入系统,直接在联系人数据表给External ID字段加唯一索引,重复数据插入时会自动抛出冲突错误,导入脚本捕获该错误后直接跳过对应条目即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:06:01