使用 Salesforce 数据导入向导导入联系人和转换潜在客户

Using Salesforce Data Import Wizard to Import Contacts and Convert Leads

我确信这是人们需要在 Salesforce 中完成的一项常见任务,但我终其一生都无法找到使用 Salesforce 数据导入向导完成此任务的好方法。我只需要将一堆线索批量转换为联系人。我可以导出我的潜在客户数据,然后将其作为联系人重新导入,但是我该如何更新所有旧的潜在客户并将它们标记为已转换? Salesforce 中有一个名为 "IsConverted" 的字段,但它不是导入向导中可映射字段列表中的一个选项。完成将潜在客户批量转换为联系人这一任务的最佳方法是什么?

IsConverted 字段是系统控制的,您不能修改它。无法通过数据导入来转换销售线索。有一个 Apex method 和 API 调用可用于转换潜在客户,但简单的更新不起作用。

您可以在 AppExchange 上试用已为您预先编写代码的应用。

您可以采取的直接方法是简单的触发器。您需要在线索上添加一个布尔字段,名称如 "API Convert"。此字段的目的是在更新为 true 时触发潜在客户的转换。这将使您能够通过标记 API_Convert__c = true.

来更新数据加载器中的线索

从 Salesforce Developer 社区借用的批量触发器示例,更新后将此字段添加为依赖项。

trigger AutoConvert on Lead (after update) {
    list<Lead> LeadsToConvert = new list<Lead>();
    for(Lead myLead: Trigger.new){
      if(!myLead.isConverted && myLead.API_Convert__c == true)
        LeadsToConvert.add(myLead);
    }

    list<Database.LeadConvert> leadConverts = new list<Database.LeadConvert>();
    for(Lead myLead : LeadsToConvert){
      Database.LeadConvert lc = new database.LeadConvert();
      lc.setLeadId(myLead.Id);
      lc.convertedStatus = 'Qualified';
      //Database.ConvertLead(lc,true);
      lc.setDoNotCreateOpportunity(true);
      leadConverts.add(lc);
    }

    if(!leadConverts.isEmpty()){
      for(Integer i = 0; i <= leadConverts.size()/100 ; i++){
        list<Database.LeadConvert> tempList = new list<Database.LeadConvert>();
        Integer startIndex = i*100;
        Integer endIndex = ((startIndex+100) < leadConverts.size()) ? startIndex+100: leadConverts.size();
        for(Integer j=startIndex;j<endIndex;j++){
          tempList.add(leadConverts[j]);
        }
        Database.LeadConvertResult[] lcrList = Database.convertLead(tempList, false);
        for(Database.LeadConvertResult lcr : lcrList)
          System.assert(lcr.isSuccess());
      }
    }
}