我确信这是人们需要在 Salesforce 中完成的一项常见任务,但我终其一生都无法找到使用 Salesforce 数据导入向导的好方法。我只需要将一堆潜在客户批量转换为联系人。我可以导出我的潜在客户数据,然后将其重新导入为联系人,但是如何更新所有旧的潜在客户并将它们标记为已转换?Salesforce 中有一个名为“IsConverted”的字段,但它不是导入向导的可映射字段列表中的选项。完成将潜在客户批量转换为联系人的任务的最佳方法是什么?
问问题
1386 次
2 回答
0
您可以为此采取的直接方法是一个简单的触发器。您需要在潜在客户上添加一个名为“API Convert”的布尔字段。此字段的目的是在更新为 true 时触发潜在客户的转换。这将允许您通过标记 API_Convert__c = true 来更新数据加载器中的潜在客户。
从 Salesforce 开发人员社区借用的批量化触发器示例,其中包含将此字段添加为依赖项的更新。
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());
}
}
}
于 2017-09-29T01:24:21.910 回答
0
IsConverted 字段是系统控制的,您不能修改它。无法通过数据导入来转换潜在客户。有一个Apex 方法和 API 调用可用于转换潜在客户,但简单的更新不起作用。
您可以在AppExchange上试用为您预先编写了代码的应用程序。
于 2017-09-26T21:32:30.520 回答